ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
app_callbacks.h File Reference

Application-level callbacks for library code. More...

Go to the source code of this file.

Data Structures

struct  app_callbacks_t
 

Macros

#define APP_CALLBACK_VOID(callback_name)
 
#define APP_CALLBACK_BOOL(callback_name)
 
#define APP_CALLBACK_INT(callback_name)
 
#define APP_CALLBACK_UINT64(callback_name)
 
#define APP_CALLBACK_INT_TRANSPORT(callback_name, transport)
 
#define APP_CALLBACK_VOID_UINT8(callback_name, value)
 
#define APP_CALLBACK_VOID_UINT(callback_name, value)
 
#define APP_CALLBACK_VOID_STR(callback_name, value)
 
#define APP_CALLBACK_VOID_INT(callback_name, value)
 
#define APP_CALLBACK_PTR(callback_name)
 

Typedefs

typedef struct acip_transport acip_transport_t
 

Functions

void app_callbacks_register (const app_callbacks_t *callbacks)
 
const app_callbacks_t * app_callbacks_get (void)
 

Detailed Description

Application-level callbacks for library code.

Allows lib/ code to call application-level functions without direct dependency.

Definition in file app_callbacks.h.

Macro Definition Documentation

◆ APP_CALLBACK_BOOL

#define APP_CALLBACK_BOOL (   callback_name)
Value:
({ \
(__cb && __cb->callback_name) ? __cb->callback_name() : false; \
})
const app_callbacks_t * app_callbacks_get(void)

Call a void(void) callback and return bool Usage: bool result = APP_CALLBACK_BOOL(should_exit)

Definition at line 71 of file app_callbacks.h.

72 { \
73 const app_callbacks_t *__cb = app_callbacks_get(); \
74 (__cb && __cb->callback_name) ? __cb->callback_name() : false; \
75 })

◆ APP_CALLBACK_INT

#define APP_CALLBACK_INT (   callback_name)
Value:
({ \
(__cb && __cb->callback_name) ? __cb->callback_name() : -1; \
})

Call a void(void) callback and return int Usage: int result = APP_CALLBACK_INT(client_crypto_init)

Definition at line 81 of file app_callbacks.h.

82 { \
83 const app_callbacks_t *__cb = app_callbacks_get(); \
84 (__cb && __cb->callback_name) ? __cb->callback_name() : -1; \
85 })

◆ APP_CALLBACK_INT_TRANSPORT

#define APP_CALLBACK_INT_TRANSPORT (   callback_name,
  transport 
)
Value:
({ \
(__cb && __cb->callback_name) ? __cb->callback_name(transport) : -1; \
})

Call a int(acip_transport_t *) callback Usage: int result = APP_CALLBACK_INT_TRANSPORT(client_crypto_handshake, transport)

Definition at line 101 of file app_callbacks.h.

102 { \
103 const app_callbacks_t *__cb = app_callbacks_get(); \
104 (__cb && __cb->callback_name) ? __cb->callback_name(transport) : -1; \
105 })

◆ APP_CALLBACK_PTR

#define APP_CALLBACK_PTR (   callback_name)
Value:
({ \
(__cb && __cb->callback_name) ? __cb->callback_name() : NULL; \
})

Get a pointer return value from callback Usage: const crypto_context_t *ctx = APP_CALLBACK_PTR(crypto_client_get_context)

Definition at line 159 of file app_callbacks.h.

160 { \
161 const app_callbacks_t *__cb = app_callbacks_get(); \
162 (__cb && __cb->callback_name) ? __cb->callback_name() : NULL; \
163 })

◆ APP_CALLBACK_UINT64

#define APP_CALLBACK_UINT64 (   callback_name)
Value:
({ \
(__cb && __cb->callback_name) ? __cb->callback_name() : 0ULL; \
})

Call a uint64_t(void) callback Usage: uint64_t now = APP_CALLBACK_UINT64(platform_get_monotonic_time_us)

Definition at line 91 of file app_callbacks.h.

92 { \
93 const app_callbacks_t *__cb = app_callbacks_get(); \
94 (__cb && __cb->callback_name) ? __cb->callback_name() : 0ULL; \
95 })

◆ APP_CALLBACK_VOID

#define APP_CALLBACK_VOID (   callback_name)
Value:
do { \
if (__cb && __cb->callback_name) { \
__cb->callback_name(); \
} \
} while (0)

Call a void(void) callback safely Usage: APP_CALLBACK_VOID(audio_stop_thread)

Definition at line 59 of file app_callbacks.h.

60 { \
61 const app_callbacks_t *__cb = app_callbacks_get(); \
62 if (__cb && __cb->callback_name) { \
63 __cb->callback_name(); \
64 } \
65 } while (0)

◆ APP_CALLBACK_VOID_INT

#define APP_CALLBACK_VOID_INT (   callback_name,
  value 
)
Value:
do { \
if (__cb && __cb->callback_name) { \
__cb->callback_name(value); \
} \
} while (0)

Call a void(int) callback Usage: APP_CALLBACK_VOID_INT(server_connection_set_port, port)

Definition at line 147 of file app_callbacks.h.

148 { \
149 const app_callbacks_t *__cb = app_callbacks_get(); \
150 if (__cb && __cb->callback_name) { \
151 __cb->callback_name(value); \
152 } \
153 } while (0)

◆ APP_CALLBACK_VOID_STR

#define APP_CALLBACK_VOID_STR (   callback_name,
  value 
)
Value:
do { \
if (__cb && __cb->callback_name) { \
__cb->callback_name(value); \
} \
} while (0)

Call a void(const char *) callback Usage: APP_CALLBACK_VOID_STR(server_connection_set_ip, ip_addr)

Definition at line 135 of file app_callbacks.h.

136 { \
137 const app_callbacks_t *__cb = app_callbacks_get(); \
138 if (__cb && __cb->callback_name) { \
139 __cb->callback_name(value); \
140 } \
141 } while (0)

◆ APP_CALLBACK_VOID_UINT

#define APP_CALLBACK_VOID_UINT (   callback_name,
  value 
)
Value:
do { \
if (__cb && __cb->callback_name) { \
__cb->callback_name(value); \
} \
} while (0)

Call a void(unsigned int) callback Usage: APP_CALLBACK_VOID_UINT(platform_sleep_ms, ms)

Definition at line 123 of file app_callbacks.h.

124 { \
125 const app_callbacks_t *__cb = app_callbacks_get(); \
126 if (__cb && __cb->callback_name) { \
127 __cb->callback_name(value); \
128 } \
129 } while (0)

◆ APP_CALLBACK_VOID_UINT8

#define APP_CALLBACK_VOID_UINT8 (   callback_name,
  value 
)
Value:
do { \
if (__cb && __cb->callback_name) { \
__cb->callback_name(value); \
} \
} while (0)

Call a void(uint8_t) callback Usage: APP_CALLBACK_VOID_UINT8(client_crypto_set_mode, mode)

Definition at line 111 of file app_callbacks.h.

112 { \
113 const app_callbacks_t *__cb = app_callbacks_get(); \
114 if (__cb && __cb->callback_name) { \
115 __cb->callback_name(value); \
116 } \
117 } while (0)

Typedef Documentation

◆ acip_transport_t

Definition at line 16 of file app_callbacks.h.

Function Documentation

◆ app_callbacks_get()

const app_callbacks_t * app_callbacks_get ( void  )

Get registered callbacks (returns NULL if not registered)

Definition at line 15 of file app_callbacks.c.

15 {
16 return g_app_callbacks;
17}

◆ app_callbacks_register()

void app_callbacks_register ( const app_callbacks_t *  callbacks)

Register application callbacks

Definition at line 11 of file app_callbacks.c.

11 {
12 g_app_callbacks = callbacks;
13}

Referenced by client_main(), and main().