1 /* 2 3 $Id$ 4 5 X G N O K I I 6 7 A Linux/Unix GUI for the mobile phones. 8 9 This file is part of gnokii. 10 11 Gnokii is free software; you can redistribute it and/or modify 12 it under the terms of the GNU General Public License as published by 13 the Free Software Foundation; either version 2 of the License, or 14 (at your option) any later version. 15 16 Gnokii is distributed in the hope that it will be useful, 17 but WITHOUT ANY WARRANTY; without even the implied warranty of 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 GNU General Public License for more details. 20 21 You should have received a copy of the GNU General Public License 22 along with gnokii; if not, write to the Free Software 23 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 25 Copyright (C) 1999 Pavel Jan�k ml., Hugh Blemings 26 & 1999-2005 Jan Derfinak. 27 Copyright (C) 2002 Markus Plail 28 Copyright (C) 2002-2003 Pawel Kot, BORBELY Zoltan 29 Copyright (C) 2003 Tomi Ollila 30 31 */ 32 33 #ifndef XGNOKII_LOWLEVEL_H 34 #define XGNOKII_LOWLEVEL_H 35 36 #include <pthread.h> 37 #include <glib.h> 38 #include "gnokii.h" 39 40 #define INCALL_NUMBER_LENGTH 20 41 #define NETMON_SCREEN_LENGTH 60 42 43 typedef enum { 44 CS_Idle, 45 CS_Waiting, 46 CS_InProgress 47 } CallState; 48 49 typedef enum { 50 Event_GetMemoryStatus, 51 Event_GetMemoryLocation, 52 Event_GetMemoryLocationAll, 53 Event_WriteMemoryLocation, 54 Event_WriteMemoryLocationAll, 55 Event_DeleteMemoryLocation, 56 Event_GetCalendarNote, 57 Event_GetCalendarNoteAll, 58 Event_WriteCalendarNote, 59 Event_DeleteCalendarNote, 60 Event_GetCallerGroup, 61 Event_SendCallerGroup, 62 Event_GetSMSCenter, 63 Event_SetSMSCenter, 64 Event_SendSMSMessage, 65 Event_DeleteSMSMessage, 66 Event_GetSpeedDial, 67 Event_SendSpeedDial, 68 Event_SendDTMF, 69 Event_NetMonitorOnOff, 70 Event_NetMonitor, 71 Event_DialVoice, 72 Event_GetAlarm, 73 Event_SetAlarm, 74 Event_PressKey, 75 Event_ReleaseKey, 76 Event_GetBitmap, 77 Event_SetBitmap, 78 Event_GetNetworkInfo, 79 Event_PlayTone, 80 Event_GetRingtone, 81 Event_SetRingtone, 82 Event_DeleteRingtone, 83 Event_GetRingtoneList, 84 Event_Exit 85 } PhoneAction; 86 87 typedef struct { 88 PhoneAction event; 89 gpointer data; 90 } PhoneEvent; 91 92 typedef struct { 93 gn_speed_dial entry; 94 gn_error status; 95 } D_SpeedDial; 96 97 typedef struct { 98 gn_sms *sms; 99 gn_error status; 100 } D_SMSMessage; 101 102 typedef struct { 103 gn_sms_message_center *center; 104 gn_error status; 105 } D_SMSCenter; 106 107 typedef struct { 108 guchar number; 109 gchar text[256]; 110 gint status; 111 } D_CallerGroup; 112 113 typedef struct { 114 gn_calnote_alarm alarm; 115 gint status; 116 } D_Alarm; 117 118 typedef struct { 119 gn_memory_status memoryStatus; 120 gint status; 121 } D_MemoryStatus; 122 123 typedef struct { 124 gn_phonebook_entry *entry; 125 gint status; 126 } D_MemoryLocation; 127 128 typedef struct { 129 gint min; 130 gint max; 131 gint used; 132 gn_memory_type type; 133 gint status; 134 gint (*InsertEntry)(gn_phonebook_entry *); 135 gint(*ReadFailed) (gint); 136 } D_MemoryLocationAll; 137 138 typedef struct { 139 gn_calnote *entry; 140 gint status; 141 } D_CalendarNote; 142 143 typedef struct { 144 gint status; 145 gint (*InsertEntry)(gn_calnote *); 146 gint(*ReadFailed) (gint); 147 } D_CalendarNoteAll; 148 149 typedef struct { 150 gn_error status; 151 gn_bmp *bitmap; 152 } D_Bitmap; 153 154 typedef struct { 155 gn_error status; 156 gn_network_info *info; 157 } D_NetworkInfo; 158 159 typedef struct { 160 int frequency; 161 int volume; 162 int usec; 163 } D_PlayTone; 164 165 typedef struct { 166 gn_ringtone *ringtone; 167 gn_error status; 168 } D_Ringtone; 169 170 typedef struct { 171 gfloat rfLevel; 172 gfloat batteryLevel; 173 gn_power_source powerSource; 174 gchar *working; 175 bool alarm; 176 struct { 177 gchar *model; 178 gchar *imei; 179 gchar *revision; 180 gchar *product_name; 181 } phone; 182 struct { 183 gint unRead; 184 gint number; 185 gint changed; 186 GSList *messages; 187 } sms; 188 struct { 189 CallState callInProgress; 190 gchar callNum[INCALL_NUMBER_LENGTH]; 191 } call; 192 struct { 193 gint number; 194 gchar screen[NETMON_SCREEN_LENGTH]; 195 gchar screen3[NETMON_SCREEN_LENGTH]; 196 gchar screen4[NETMON_SCREEN_LENGTH]; 197 gchar screen5[NETMON_SCREEN_LENGTH]; 198 } netmonitor; 199 gint supported; 200 } PhoneMonitor; 201 202 extern pthread_t monitor_th; 203 extern PhoneMonitor phoneMonitor; 204 extern pthread_mutex_t memoryMutex; 205 extern pthread_cond_t memoryCond; 206 extern pthread_mutex_t calendarMutex; 207 extern pthread_cond_t calendarCond; 208 extern pthread_mutex_t smsMutex; 209 extern pthread_mutex_t sendSMSMutex; 210 extern pthread_cond_t sendSMSCond; 211 extern pthread_mutex_t callMutex; 212 extern pthread_mutex_t netMonMutex; 213 extern pthread_mutex_t speedDialMutex; 214 extern pthread_cond_t speedDialCond; 215 extern pthread_mutex_t callerGroupMutex; 216 extern pthread_cond_t callerGroupCond; 217 extern pthread_mutex_t smsCenterMutex; 218 extern pthread_cond_t smsCenterCond; 219 extern pthread_mutex_t alarmMutex; 220 extern pthread_cond_t alarmCond; 221 extern pthread_mutex_t getBitmapMutex; 222 extern pthread_cond_t getBitmapCond; 223 extern pthread_mutex_t setBitmapMutex; 224 extern pthread_cond_t setBitmapCond; 225 extern pthread_mutex_t getNetworkInfoMutex; 226 extern pthread_cond_t getNetworkInfoCond; 227 extern pthread_mutex_t ringtoneMutex; 228 extern pthread_cond_t ringtoneCond; 229 extern void GUI_InitPhoneMonitor(void); 230 extern void *GUI_Connect(void *a); 231 extern void GUI_InsertEvent(PhoneEvent * event); 232 extern gn_error GUI_InitSMSFolders(void); 233 extern int isSMSactivated; 234 extern struct gn_statemachine *statemachine; 235 236 #endif 237