1 /** 2 * \file gammu-callback.h 3 * \author Michal Čihař 4 * 5 * Callback handlers. 6 */ 7 #ifndef __gammu_callback_h 8 #define __gammu_callback_h 9 10 /** 11 * \defgroup Callback Callback 12 * Generic state machine callback layer. 13 */ 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 #include <gammu-types.h> 20 #include <gammu-message.h> 21 #include <gammu-call.h> 22 23 /** 24 * Callback for incoming calls. 25 * 26 * \ingroup Callback 27 */ 28 typedef void (*IncomingCallCallback) (GSM_StateMachine * s, GSM_Call *call, 29 void *user_data); 30 31 /** 32 * Callback for incoming SMS. 33 * 34 * \ingroup Callback 35 */ 36 typedef void (*IncomingSMSCallback) (GSM_StateMachine * s, GSM_SMSMessage *sms, 37 void *user_data); 38 39 /** 40 * Callback for incoming cell broadcast. 41 * 42 * \ingroup Callback 43 */ 44 typedef void (*IncomingCBCallback) (GSM_StateMachine * s, GSM_CBMessage *cb, 45 void *user_data); 46 47 /** 48 * Callback for icoming USSD. 49 * 50 * \ingroup Callback 51 */ 52 typedef void (*IncomingUSSDCallback) (GSM_StateMachine * s, 53 GSM_USSDMessage *ussd, void *user_data); 54 55 /** 56 * Callback for sending SMS. 57 * 58 * \ingroup Callback 59 */ 60 typedef void (*SendSMSStatusCallback) (GSM_StateMachine * s, int status, 61 int MessageReference, void *user_data); 62 63 /** 64 * Sets callback for incoming calls. 65 * 66 * \param s State machine. 67 * \param callback Pointer to callback function. 68 * \param user_data Second parameter which will be passed to callback. 69 * 70 * \ingroup Callback 71 */ 72 void GSM_SetIncomingCallCallback(GSM_StateMachine * s, 73 IncomingCallCallback callback, 74 void *user_data); 75 76 /** 77 * Sets callback for incoming SMSes. 78 * 79 * \param s State machine. 80 * \param callback Pointer to callback function. 81 * \param user_data Second parameter which will be passed to callback. 82 * 83 * \ingroup Callback 84 */ 85 void GSM_SetIncomingSMSCallback(GSM_StateMachine * s, 86 IncomingSMSCallback callback, void *user_data); 87 88 /** 89 * Sets callback for incoming CB. 90 * 91 * \param s State machine. 92 * \param callback Pointer to callback function. 93 * \param user_data Second parameter which will be passed to callback. 94 * 95 * \ingroup Callback 96 */ 97 void GSM_SetIncomingCBCallback(GSM_StateMachine * s, 98 IncomingCBCallback callback, void *user_data); 99 100 /** 101 * Sets callback for incoming USSD. 102 * 103 * \param s State machine. 104 * \param callback Pointer to callback function. 105 * \param user_data Second parameter which will be passed to callback. 106 * 107 * \ingroup Callback 108 */ 109 void GSM_SetIncomingUSSDCallback(GSM_StateMachine * s, 110 IncomingUSSDCallback callback, 111 void *user_data); 112 113 /** 114 * Sets callback for sending SMS. 115 * 116 * \param s State machine. 117 * \param callback Pointer to callback function. 118 * \param user_data Second parameter which will be passed to callback. 119 * 120 * \ingroup Callback 121 */ 122 void GSM_SetSendSMSStatusCallback(GSM_StateMachine * s, 123 SendSMSStatusCallback callback, 124 void *user_data); 125 #ifdef __cplusplus 126 } 127 #endif 128 #endif 129 130 /* Editor configuration 131 * vim: noexpandtab sw=8 ts=8 sts=8 tw=72: 132 */ 133