arcdps\extras/
callbacks.rs
1use super::{
4 keybinds::{KeybindChange, RawKeybindChange},
5 message::{Message, MessageType, RawMessage, SquadMessage},
6 user::{UserInfo, UserInfoIter},
7 ExtrasAddonInfo, ExtrasSubscriberInfo, RawExtrasAddonInfo,
8};
9use crate::{evtc::Language, util::abi};
10
11pub type ExtrasInitFunc = fn(extras_info: ExtrasAddonInfo, account_name: Option<&str>);
12
13pub type ExtrasSquadUpdateCallback = fn(updated_users: UserInfoIter);
14
15pub type ExtrasLanguageChangedCallback = fn(language: Language);
16
17pub type ExtrasKeybindChangedCallback = fn(changed: KeybindChange);
18
19pub type ExtrasSquadChatMessageCallback = fn(message: &SquadMessage);
20
21pub type ExtrasChatMessageCallback = fn(message: Message);
22
23abi! {
24 pub type RawExtrasSubscriberInit = unsafe extern fn(
25 extras_info: *const RawExtrasAddonInfo,
26 subscriber_info: *mut ExtrasSubscriberInfo,
27 );
28
29 pub type RawExtrasSquadUpdateCallback =
30 unsafe extern fn(updated_users: *const UserInfo, updated_users_count: u64);
31
32 pub type RawExtrasLanguageChangedCallback = unsafe extern fn(language: Language);
33
34 pub type RawExtrasKeybindChangedCallback = unsafe extern fn(changed: RawKeybindChange);
35
36 pub type RawExtrasSquadChatMessageCallback =
37 unsafe extern fn(message: *const SquadMessage);
38
39 pub type RawExtrasChatMessageCallback =
40 unsafe extern fn(message_type: MessageType, message: RawMessage);
41}