1 #ifndef UTOX_H
2 #define UTOX_H
3 
4 #include <stdint.h>
5 
6 /* uTox client thread messages (received by the client thread) */
7 typedef enum utox_msg_id {
8     /* General core and networking messages */
9     TOX_DONE, // 0
10     DHT_CONNECTED,
11 
12     /* OS interaction/integration messages*/
13     AUDIO_IN_DEVICE,
14     AUDIO_OUT_DEVICE,
15 
16     /* Client/User Interface messages. */
17     REDRAW,
18     TOOLTIP_SHOW,
19     SELF_AVATAR_SET,
20     UPDATE_TRAY,
21     PROFILE_DID_LOAD,
22 
23     /* File transfer messages */
24     FILE_SEND_NEW,
25     FILE_INCOMING_NEW,
26     FILE_INCOMING_NEW_INLINE,
27     FILE_INCOMING_NEW_INLINE_DONE,
28     FILE_INCOMING_ACCEPT,
29     FILE_STATUS_UPDATE,
30     FILE_STATUS_UPDATE_DATA,
31     FILE_STATUS_DONE,
32 
33     /* Friend interaction messages. */
34     /* Handshake */
35     FRIEND_ONLINE,
36     FRIEND_NAME,
37     FRIEND_STATUS_MESSAGE,
38     FRIEND_STATE,
39     FRIEND_AVATAR_SET,
40     FRIEND_AVATAR_UNSET,
41     /* Interactions */
42     FRIEND_TYPING,
43     FRIEND_MESSAGE,
44     FRIEND_MESSAGE_UPDATE,
45     /* Adding and deleting */
46     FRIEND_INCOMING_REQUEST,
47     FRIEND_ACCEPT_REQUEST,
48     FRIEND_SEND_REQUEST,
49     FRIEND_ADD_NO_REQ,
50     FRIEND_REMOVE,
51 
52     /* Audio & Video calls, */
53     AV_CALL_INCOMING,
54     AV_CALL_RINGING,
55     AV_CALL_ACCEPTED,
56     AV_CALL_DISCONNECTED,
57     AV_VIDEO_FRAME,
58     AV_INLINE_FRAME,
59     AV_CLOSE_WINDOW,
60 
61     /* Group interactions, commented out for the new groupchats (coming soon maybe?) */
62     GROUP_ADD,
63     GROUP_MESSAGE,
64     GROUP_PEER_ADD,
65     GROUP_PEER_DEL,
66     GROUP_PEER_NAME,
67     GROUP_PEER_CHANGE,
68     GROUP_TOPIC,
69     GROUP_AUDIO_START,
70     GROUP_AUDIO_END,
71     GROUP_UPDATE,
72 } UTOX_MSG;
73 
74 void postmessage_utox(UTOX_MSG msg, uint16_t param1, uint16_t param2, void *data);
75 
76 void utox_message_dispatch(UTOX_MSG utox_msg_id, uint16_t param1, uint16_t param2, void *data);
77 
78 #endif
79