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