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