\r\n -> \n
[gnokii.git] / xgnokii / xgnokii_lowlevel.h
1 /*
2
3   X G N O K I I
4
5   A Linux/Unix GUI for Nokia mobile phones.
6
7   Released under the terms of the GNU GPL, see file COPYING for more details.
8
9 */
10
11 #ifndef XGNOKII_LOWLEVEL_H
12 #define XGNOKII_LOWLEVEL_H
13
14 #include <pthread.h>
15 #include <glib.h>
16 #include "gsm-api.h"
17
18 #define INCALL_NUMBER_LENGTH    20
19 #define NETMON_SCREEN_LENGTH    60
20
21 typedef enum {
22   CS_Idle,
23   CS_Waiting,
24   CS_InProgress
25 } CallState;
26
27 typedef enum {
28   Event_GetMemoryStatus,
29   Event_GetMemoryLocation,
30   Event_GetMemoryLocationAll,
31   Event_WriteMemoryLocation,
32   Event_WriteMemoryLocationAll,
33   Event_GetCalendarNote,
34   Event_GetCalendarNoteAll,
35   Event_WriteCalendarNote,
36   Event_DeleteCalendarNote,
37   Event_GetCallerGroup,
38   Event_SendCallerGroup,
39   Event_GetSMSCenter,
40   Event_SetSMSCenter,
41   Event_SendSMSMessage,
42   Event_DeleteSMSMessage,
43   Event_GetSpeedDial,
44   Event_SendSpeedDial,
45   Event_SendDTMF,
46   Event_NetMonitorOnOff,
47   Event_NetMonitor,
48   Event_DialVoice,
49   Event_GetAlarm,
50   Event_SetAlarm,
51   Event_SendKeyStroke,
52   Event_GetBitmap,
53   Event_SetBitmap,
54   Event_GetNetworkInfo,
55   Event_Exit
56 } PhoneAction;
57
58 typedef struct {
59   PhoneAction event;
60   gpointer    data;
61 } PhoneEvent;
62
63 typedef struct {
64   GSM_SpeedDial entry;
65   GSM_Error status;
66 } D_SpeedDial;
67
68 typedef struct {
69   GSM_SMSMessage *sms;
70   GSM_Error status;
71 } D_SMSMessage;
72
73 typedef struct {
74   GSM_MessageCenter *center;
75   GSM_Error status;
76 } D_SMSCenter;
77
78 typedef struct {
79   guchar number;
80   gchar  text[256];
81   gint   status;
82 } D_CallerGroup;
83
84 typedef struct {
85   GSM_DateTime time;
86   gint status;
87 } D_Alarm;
88
89 typedef struct {
90   GSM_MemoryStatus memoryStatus;
91   gint status;
92 } D_MemoryStatus;
93
94 typedef struct {
95   GSM_PhonebookEntry *entry;
96   gint status;
97 } D_MemoryLocation;
98
99 typedef struct {
100   gint min;
101   gint max;
102   gint used;
103   GSM_MemoryType type;
104   gint status;
105   gint (*InsertEntry)(GSM_PhonebookEntry *);
106   gint (*ReadFailed)(gint);
107 } D_MemoryLocationAll;
108
109 typedef struct {
110   GSM_CalendarNote *entry;
111   gint status;
112 } D_CalendarNote;
113
114 typedef struct {
115   gint status;
116   gint (*InsertEntry)(GSM_CalendarNote *);
117   gint (*ReadFailed)(gint);
118 } D_CalendarNoteAll;
119
120 typedef struct {
121   GSM_Error status;
122   GSM_Bitmap *bitmap;
123 } D_Bitmap;
124
125 typedef struct {
126   GSM_Error status;
127   GSM_NetworkInfo *info;
128 } D_NetworkInfo;
129
130 typedef struct {
131   gfloat rfLevel;
132   gfloat batteryLevel;
133   GSM_PowerSource powerSource;
134   gchar *working;
135   bool alarm;
136   struct {
137     gchar *model;
138     gchar *imei;
139     gchar *revision;
140     gchar *version;
141   } phone;
142   struct {
143     gint    unRead;
144     gint    number;
145     gint    number2;
146     GSList *messages;
147   } sms;
148   struct {
149     CallState callInProgress;
150     gchar     callNum[INCALL_NUMBER_LENGTH];
151   } call;
152   struct {
153     gint  number;
154     gchar screen[NETMON_SCREEN_LENGTH];
155     gchar screen3[NETMON_SCREEN_LENGTH];
156     gchar screen4[NETMON_SCREEN_LENGTH];
157     gchar screen5[NETMON_SCREEN_LENGTH];
158   } netmonitor;
159 } PhoneMonitor;
160
161 extern pthread_t monitor_th;
162 extern PhoneMonitor phoneMonitor;
163 extern pthread_mutex_t memoryMutex;
164 extern pthread_cond_t  memoryCond;
165 extern pthread_mutex_t calendarMutex;
166 extern pthread_cond_t  calendarCond;
167 extern pthread_mutex_t smsMutex;
168 extern pthread_mutex_t sendSMSMutex;
169 extern pthread_cond_t  sendSMSCond;
170 extern pthread_mutex_t callMutex;
171 extern pthread_mutex_t netMonMutex;
172 extern pthread_mutex_t speedDialMutex;
173 extern pthread_cond_t  speedDialCond;
174 extern pthread_mutex_t callerGroupMutex;
175 extern pthread_cond_t  callerGroupCond;
176 extern pthread_mutex_t smsCenterMutex;
177 extern pthread_cond_t  smsCenterCond;
178 extern pthread_mutex_t alarmMutex;
179 extern pthread_cond_t  alarmCond;
180 extern pthread_mutex_t getBitmapMutex;
181 extern pthread_cond_t  getBitmapCond;
182 extern pthread_mutex_t setBitmapMutex;
183 extern pthread_cond_t  setBitmapCond;
184 extern pthread_mutex_t getNetworkInfoMutex;
185 extern pthread_cond_t  getNetworkInfoCond;
186 extern void GUI_InitPhoneMonitor (void);
187 extern void *GUI_Connect (void *a);
188 extern void GUI_InsertEvent (PhoneEvent *event);
189
190 extern void RefreshSMS (const gint number);
191
192 #endif