-rw-r--r-- | gammu/emb/common/gsmstate.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/gammu/emb/common/gsmstate.h b/gammu/emb/common/gsmstate.h index cb17623..2b4806c 100644 --- a/gammu/emb/common/gsmstate.h +++ b/gammu/emb/common/gsmstate.h @@ -1,145 +1,153 @@ /* (c) 2002-2004 by Marcin Wiacek & Michal Cihar */ #ifndef __gsm_state_h #define __gsm_state_h #include <time.h> #include "config.h" #include "misc/cfg.h" +typedef struct _GSM_StateMachine GSM_StateMachine; +typedef struct _GSM_User GSM_User; +typedef struct _OnePhoneModel OnePhoneModel; +typedef struct _GSM_Reply_Function GSM_Reply_Function; + #ifdef GSM_ENABLE_NOKIA3320 # include "phone/nokia/dct4/n3320.h" #endif #ifdef GSM_ENABLE_NOKIA3650 # include "phone/nokia/dct4/n3650.h" #endif +#ifdef GSM_ENABLE_NOKIA650 +# include "phone/nokia/dct3/n0650.h" +#endif #ifdef GSM_ENABLE_NOKIA6110 # include "phone/nokia/dct3/n6110.h" #endif #ifdef GSM_ENABLE_NOKIA6510 # include "phone/nokia/dct4/n6510.h" #endif #ifdef GSM_ENABLE_NOKIA7110 # include "phone/nokia/dct3/n7110.h" #endif #ifdef GSM_ENABLE_NOKIA9210 # include "phone/nokia/dct3/n9210.h" #endif #ifdef GSM_ENABLE_ATGEN # include "phone/at/atgen.h" #endif #ifdef GSM_ENABLE_ALCATEL # include "phone/alcatel/alcatel.h" #endif #ifdef GSM_ENABLE_OBEXGEN # include "phone/obex/obexgen.h" #endif #ifdef GSM_ENABLE_MROUTERGEN # include "phone/symbian/mroutgen.h" #endif #ifndef GSM_USED_MBUS2 # undef GSM_ENABLE_MBUS2 #endif #ifndef GSM_USED_FBUS2 # undef GSM_ENABLE_FBUS2 #endif #ifndef GSM_USED_FBUS2DLR3 # undef GSM_ENABLE_FBUS2DLR3 #endif #ifndef GSM_USED_FBUS2DKU5 # undef GSM_ENABLE_FBUS2DKU5 #endif #ifndef GSM_USED_FBUS2PL2303 # undef GSM_ENABLE_FBUS2PL2303 #endif #ifndef GSM_USED_FBUS2BLUE # undef GSM_ENABLE_FBUS2BLUE #endif #ifndef GSM_USED_FBUS2IRDA # undef GSM_ENABLE_FBUS2IRDA #endif #ifndef GSM_USED_PHONETBLUE # undef GSM_ENABLE_PHONETBLUE #endif #ifndef GSM_USED_AT # undef GSM_ENABLE_AT #endif #ifndef GSM_USED_IRDAOBEX # undef GSM_ENABLE_IRDAOBEX #endif #ifndef GSM_USED_BLUEOBEX # undef GSM_ENABLE_BLUEOBEX #endif #ifndef GSM_USED_ALCABUS # undef GSM_ENABLE_ALCABUS #endif #ifndef GSM_USED_IRDAPHONET # undef GSM_ENABLE_IRDAPHONET #endif #ifndef GSM_USED_BLUEFBUS2 # undef GSM_ENABLE_BLUEFBUS2 #endif #ifndef GSM_USED_BLUEPHONET # undef GSM_ENABLE_BLUEPHONET #endif #ifndef GSM_USED_BLUEAT # undef GSM_ENABLE_BLUEAT #endif #ifndef GSM_USED_IRDAAT # undef GSM_ENABLE_IRDAAT #endif #ifndef GSM_USED_MROUTERBLUE # undef GSM_ENABLE_MROUTERBLUE #endif -#if defined(GSM_ENABLE_NOKIA3320) || defined(GSM_ENABLE_NOKIA6110) || defined(GSM_ENABLE_NOKIA7110) || defined(GSM_ENABLE_NOKIA9210) +#if defined(GSM_ENABLE_NOKIA3320) || defined(GSM_ENABLE_NOKIA650) || defined(GSM_ENABLE_NOKIA6110) || defined(GSM_ENABLE_NOKIA7110) || defined(GSM_ENABLE_NOKIA9210) # define GSM_ENABLE_NOKIA_DCT3 #endif #if defined(GSM_ENABLE_NOKIA3650) || defined(GSM_ENABLE_NOKIA6510) # define GSM_ENABLE_NOKIA_DCT4 #endif #include "protocol/protocol.h" #if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303) # include "protocol/nokia/fbus2.h" #endif #ifdef GSM_ENABLE_MBUS2 # include "protocol/nokia/mbus2.h" #endif #if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) # include "protocol/nokia/phonet.h" #endif #if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) # include "protocol/at/at.h" #endif #ifdef GSM_ENABLE_ALCABUS # include "protocol/alcatel/alcabus.h" #endif #if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) # include "protocol/obex/obex.h" #endif #if defined(GSM_ENABLE_MROUTERBLUE) # include "protocol/symbian/mrouter.h" #endif #define GSM_ENABLE_SERIALDEVICE #ifndef GSM_USED_SERIALDEVICE # undef GSM_ENABLE_SERIALDEVICE #endif #define GSM_ENABLE_IRDADEVICE #ifndef GSM_USED_IRDADEVICE # undef GSM_ENABLE_IRDADEVICE #endif #define GSM_ENABLE_BLUETOOTHDEVICE #ifndef GSM_USED_BLUETOOTHDEVICE # undef GSM_ENABLE_BLUETOOTHDEVICE #endif #ifdef DJGPP # undef GSM_ENABLE_IRDADEVICE # undef GSM_ENABLE_IRDAPHONET # undef GSM_ENABLE_IRDAOBEX # undef GSM_ENABLE_IRDAAT # undef GSM_ENABLE_FBUS2IRDA @@ -154,99 +162,96 @@ # undef GSM_ENABLE_MROUTERBLUE #endif #ifndef WIN32 # ifdef ENABLE_LGPL # undef GSM_ENABLE_IRDADEVICE # undef GSM_ENABLE_IRDAPHONET # undef GSM_ENABLE_IRDAOBEX # undef GSM_ENABLE_IRDAAT # undef GSM_ENABLE_FBUS2IRDA # undef GSM_ENABLE_BLUETOOTHDEVICE # undef GSM_ENABLE_BLUEPHONET # undef GSM_ENABLE_BLUEOBEX # undef GSM_ENABLE_BLUEAT # undef GSM_ENABLE_BLUEFBUS2 # undef GSM_ENABLE_PHONETBLUE # undef GSM_ENABLE_FBUS2BLUE # undef GSM_ENABLE_MROUTERBLUE # endif #endif #ifdef GSM_ENABLE_SERIALDEVICE # include "device/serial/ser_w32.h" # include "device/serial/ser_unx.h" # include "device/serial/ser_djg.h" #endif #ifdef GSM_ENABLE_IRDADEVICE # include "device/irda/irda.h" #endif #ifdef GSM_ENABLE_BLUETOOTHDEVICE # include "device/bluetoth/bluetoth.h" #endif #include "service/gsmpbk.h" #include "service/gsmnet.h" #include "service/gsmring.h" #include "service/gsmcal.h" #include "service/gsmdata.h" #include "service/gsmlogo.h" #include "service/gsmmisc.h" #include "service/gsmprof.h" #include "service/gsmcall.h" #include "service/sms/gsmsms.h" #include "service/sms/gsmems.h" #include "service/sms/gsmmulti.h" #include "service/backup/gsmback.h" -typedef struct _GSM_StateMachine GSM_StateMachine; -typedef struct _GSM_User GSM_User; -typedef struct _OnePhoneModel OnePhoneModel; /* ------------------------- Device layer ---------------------------------- */ /** * Device functions, each device has to provide these. */ typedef struct { /** * Opens device. */ GSM_Error (*OpenDevice) (GSM_StateMachine *s); /** * Closes device. */ GSM_Error (*CloseDevice) (GSM_StateMachine *s); /** * Sets parity for device. */ GSM_Error (*DeviceSetParity) (GSM_StateMachine *s, bool parity); /** * Sets dtr (data to read) and rts (ready to send) flags. */ GSM_Error (*DeviceSetDtrRts) (GSM_StateMachine *s, bool dtr, bool rts); /** * Sets device speed. */ GSM_Error (*DeviceSetSpeed) (GSM_StateMachine *s, int speed); /** * Attempts to read nbytes from device. */ int (*ReadDevice) (GSM_StateMachine *s, void *buf, size_t nbytes); /** * Attempts to read nbytes from device. */ int (*WriteDevice) (GSM_StateMachine *s, void *buf, size_t nbytes); } GSM_Device_Functions; #ifdef GSM_ENABLE_SERIALDEVICE extern GSM_Device_Functions SerialDevice; #endif #ifdef GSM_ENABLE_IRDADEVICE extern GSM_Device_Functions IrdaDevice; #endif #ifdef GSM_ENABLE_BLUETOOTHDEVICE extern GSM_Device_Functions BlueToothDevice; #endif /** @@ -326,163 +331,166 @@ typedef struct { struct { char fake; #ifdef GSM_ENABLE_MBUS2 GSM_Protocol_MBUS2Data MBUS2; #endif #if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) GSM_Protocol_FBUS2Data FBUS2; #endif #if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) GSM_Protocol_PHONETData PHONET; #endif #if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) GSM_Protocol_ATData AT; #endif #ifdef GSM_ENABLE_ALCABUS GSM_Protocol_ALCABUSData ALCABUS; #endif #if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) GSM_Protocol_OBEXData OBEX; #endif #if defined(GSM_ENABLE_MROUTERBLUE) GSM_Protocol_MROUTERData MROUTER; #endif } Data; GSM_Protocol_Functions *Functions; } GSM_Protocol; /* -------------------------- Phone layer ---------------------------------- */ /** * Phone requests identificators, these are used for internally identifying * which operation is being performed. */ typedef enum { ID_None=1, ID_GetModel, ID_GetFirmware, ID_EnableSecurity, ID_GetIMEI, ID_GetDateTime, ID_GetAlarm, ID_GetMemory, ID_GetMemoryStatus, ID_GetSMSC, ID_GetSMSMessage, ID_EnableEcho, ID_EnableErrorInfo, ID_SetOBEX, + ID_SetUSSD, + ID_GetNote, ID_GetSignalQuality, ID_GetBatteryCharge, ID_GetSMSFolders, ID_GetSMSFolderStatus, ID_GetSMSStatus, ID_AddSMSFolder, ID_GetNetworkInfo, ID_GetRingtone, ID_DialVoice, ID_GetCalendarNotesInfo, ID_GetCalendarNote, ID_GetSecurityCode, ID_GetWAPBookmark, ID_GetBitmap, ID_SaveSMSMessage, ID_CancelCall, ID_SetDateTime, ID_SetAlarm, ID_DisableConnectFunc, ID_EnableConnectFunc, ID_AnswerCall, ID_SetBitmap, ID_SetRingtone, ID_DeleteSMSMessage, ID_DeleteCalendarNote, ID_SetPath, ID_SetSMSC, ID_SetProfile, ID_SetMemory, ID_DeleteMemory, ID_SetCalendarNote, ID_SetIncomingSMS, ID_SetIncomingCB, ID_GetCalendarNotePos, ID_Initialise, ID_GetConnectSet, ID_SetWAPBookmark, ID_GetLocale, ID_SetLocale, ID_GetCalendarSettings, ID_SetCalendarSettings, ID_GetGPRSPoint, ID_SetGPRSPoint, ID_EnableGPRSPoint, ID_DeleteWAPBookmark, ID_Netmonitor, ID_HoldCall, ID_UnholdCall, ID_ConferenceCall, ID_SplitCall, ID_TransferCall, ID_SwitchCall, ID_GetManufactureMonth, ID_GetProductCode, ID_GetOriginalIMEI, ID_GetHardware, ID_GetPPM, ID_GetSMSMode, ID_GetSMSMemories, ID_GetManufacturer, ID_SetMemoryType, ID_SetMemoryCharset, ID_GetMMSSettings, ID_SetSMSParameters, ID_GetFMStation, ID_SetFMStation, ID_GetLanguage, + ID_SetFastSMSSending, ID_Reset, ID_GetToDo, ID_PressKey, ID_DeleteAllToDo, ID_SetLight, ID_Divert, ID_SetToDo, ID_PlayTone, ID_GetChatSettings, ID_GetSyncMLSettings, ID_GetSyncMLName, ID_GetSecurityStatus, ID_EnterSecurityCode, ID_GetProfile, ID_GetRingtonesInfo, ID_MakeAuthentication, ID_GetSpeedDial, ID_ResetPhoneSettings, ID_SendDTMF, ID_GetDisplayStatus, ID_SetAutoNetworkLogin, ID_SetConnectSet, ID_SetMMSSettings, ID_GetSIMIMSI, ID_GetFileInfo, ID_FileSystemStatus, ID_GetFile, ID_AddFile, ID_AddFolder, ID_DeleteFile, #ifdef GSM_ENABLE_ALCATEL /* AT mode */ ID_SetFlowControl, ID_AlcatelConnect, ID_AlcatelProtocol, /* Binary mode */ ID_AlcatelAttach, ID_AlcatelDetach, ID_AlcatelCommit, ID_AlcatelCommit2, ID_AlcatelEnd, ID_AlcatelClose, ID_AlcatelStart, ID_AlcatelSelect1, ID_AlcatelSelect2, ID_AlcatelSelect3, ID_AlcatelBegin1, @@ -624,96 +632,97 @@ typedef struct { /** * Pointer to structure used internally by phone drivers. */ GSM_SignalQuality *SignalQuality; /** * Pointer to structure used internally by phone drivers. */ GSM_BatteryCharge *BatteryCharge; /** * Pointer to structure used internally by phone drivers. */ GSM_NetworkInfo *NetworkInfo; /** * Pointer to structure used internally by phone drivers. */ GSM_Ringtone *Ringtone; /** * Pointer to structure used internally by phone drivers. */ GSM_CalendarEntry *Cal; /** * Used internally by phone drivers. */ unsigned char *SecurityCode; /** * Pointer to structure used internally by phone drivers. */ GSM_WAPBookmark *WAPBookmark; /** * Pointer to structure used internally by phone drivers. */ GSM_MultiWAPSettings *WAPSettings; /** * Pointer to structure used internally by phone drivers. */ GSM_Bitmap *Bitmap; /** * Used internally by phone drivers. */ unsigned char *Netmonitor; /** * Pointer to structure used internally by phone drivers. */ GSM_MultiCallDivert *Divert; /** * Pointer to structure used internally by phone drivers. */ GSM_ToDoEntry *ToDo; + GSM_NoteEntry *Note; /** * Used internally by phone drivers. */ bool PressKey; /** * Pointer to structure used internally by phone drivers. */ GSM_SecurityCodeType *SecurityStatus; /** * Pointer to structure used internally by phone drivers. */ GSM_Profile *Profile; /** * Pointer to structure used internally by phone drivers. */ GSM_AllRingtonesInfo *RingtonesInfo; /** * Pointer to structure used internally by phone drivers. */ GSM_DisplayFeatures *DisplayFeatures; /** * Pointer to structure used internally by phone drivers. */ GSM_FMStation *FMStation; /** * Pointer to structure used internally by phone drivers. */ GSM_Locale *Locale; /** * Pointer to structure used internally by phone drivers. */ GSM_CalendarSettings *CalendarSettings; /** * Used internally by phone drivers. */ unsigned char *PhoneString; /** * Used internally by phone drivers. */ int StartPhoneString; /** * Pointer to structure used internally by phone drivers. */ GSM_File *FileInfo; /** * Pointer to structure used internally by phone drivers. */ GSM_File *File; @@ -725,155 +734,158 @@ typedef struct { GSM_SyncMLSettings *SyncMLSettings; /** * Should phone notify about incoming calls? */ bool EnableIncomingCall; /** * Should phone notify about incoming SMSes? */ bool EnableIncomingSMS; /** * Should phone notify about incoming CBs? */ bool EnableIncomingCB; /** * Should phone notify about incoming USSDs? */ bool EnableIncomingUSSD; /** * Last message received from phone. */ GSM_Protocol_Message *RequestMsg; /** * Last message sent by Gammu. */ GSM_Protocol_Message *SentMsg; /** * What operation is being performed now, see @ref GSM_Phone_RequestID * for possible values. */ GSM_Phone_RequestID RequestID; /** * Error returned by function in phone module. */ GSM_Error DispatchError; /** * Structure with private phone modules data. */ struct { int fake; #ifdef GSM_ENABLE_NOKIA3320 GSM_Phone_N3320Data N3320; #endif #ifdef GSM_ENABLE_NOKIA3650 GSM_Phone_N3650Data N3650; #endif +#ifdef GSM_ENABLE_NOKIA650 + GSM_Phone_N650Data N650; +#endif #ifdef GSM_ENABLE_NOKIA6110 GSM_Phone_N6110Data N6110; #endif #ifdef GSM_ENABLE_NOKIA6510 GSM_Phone_N6510Data N6510; #endif #ifdef GSM_ENABLE_NOKIA7110 GSM_Phone_N7110Data N7110; #endif #ifdef GSM_ENABLE_ATGEN GSM_Phone_ATGENData ATGEN; #endif #ifdef GSM_ENABLE_ALCATEL GSM_Phone_ALCATELData ALCATEL; #endif #ifdef GSM_ENABLE_OBEXGEN GSM_Phone_OBEXGENData OBEXGEN; #endif #ifdef GSM_ENABLE_MROUTERGEN GSM_Phone_MROUTERGENData MROUTERGEN; #endif } Priv; } GSM_Phone_Data; /** * Structure for defining reply functions. * * Function is called when requestID matches current operation or is * ID_IncomingFrame and msgtype matches start message and (if msgtype is just * one character) subtypechar is zero or subtypechar-th character of message * matches subtype. * * Should be used in array with last element containing ID_None as requestID. */ -typedef struct { +struct _GSM_Reply_Function { /** * Pointer to function that should be executed. */ GSM_Error (*Function) (GSM_Protocol_Message msg, GSM_StateMachine *s); /** * Message type, if it is longer than 1 character, it disables subtype * checking. */ unsigned char *msgtype; /** * Which character of message should be checked as subtype. Zero to * disable subtype checking. */ int subtypechar; /** * Subtype to be checked. */ unsigned char subtype; /** * Phone request when this can be called, use ID_IncomingFrame when * you want to use this in any state. */ GSM_Phone_RequestID requestID; -} GSM_Reply_Function; +}; /** * Structure defining phone functions. */ typedef struct { /** * Names of supported models separated by |. Must contain at least one * name. */ char *models; /** * Array of reply functions for the phone, see * @ref GSM_Reply_Function for details about it. */ GSM_Reply_Function *ReplyFunctions; /** * Initializes phone. */ GSM_Error (*Initialise) (GSM_StateMachine *s); /** * Terminates phone communication. */ GSM_Error (*Terminate) (GSM_StateMachine *s); /** * Dispatches messages from phone, at the end it should call * @ref GSM_DispatchMessage. */ GSM_Error (*DispatchMessage) (GSM_StateMachine *s); /** * Enables showing information on phone display. */ GSM_Error (*ShowStartInfo) (GSM_StateMachine *s, bool enable); /** * Reads manufacturer from phone. */ GSM_Error (*GetManufacturer) (GSM_StateMachine *s); /** * Reads model from phone. */ GSM_Error (*GetModel) (GSM_StateMachine *s); /** * Reads firmware information from phone. */ GSM_Error (*GetFirmware) (GSM_StateMachine *s); /** * Reads IMEI/serial number from phone. */ GSM_Error (*GetIMEI) (GSM_StateMachine *s); @@ -1014,96 +1026,97 @@ typedef struct { */ GSM_Error (*GetSpeedDial) (GSM_StateMachine *s, GSM_SpeedDial *Speed); /** * Sets speed dial. */ GSM_Error (*SetSpeedDial) (GSM_StateMachine *s, GSM_SpeedDial *Speed); /** * Gets SMS Service Center number and SMS settings. */ GSM_Error (*GetSMSC) (GSM_StateMachine *s, GSM_SMSC *smsc); /** * Sets SMS Service Center number and SMS settings. */ GSM_Error (*SetSMSC) (GSM_StateMachine *s, GSM_SMSC *smsc); /** * Gets information about SMS memory (read/unread/size of memory for * both SIM and phone). */ GSM_Error (*GetSMSStatus) (GSM_StateMachine *s, GSM_SMSMemoryStatus *status); /** * Reads SMS message. */ GSM_Error (*GetSMS) (GSM_StateMachine *s, GSM_MultiSMSMessage *sms); /** * Reads next (or first if start set) SMS message. This might be * faster for some phones than using @ref GetSMS for each message. */ GSM_Error (*GetNextSMS) (GSM_StateMachine *s, GSM_MultiSMSMessage *sms, bool start); /** * Sets SMS. */ GSM_Error (*SetSMS) (GSM_StateMachine *s, GSM_SMSMessage *sms); /** * Adds SMS to specified folder. */ GSM_Error (*AddSMS) (GSM_StateMachine *s, GSM_SMSMessage *sms); /** * Deletes SMS. */ GSM_Error (*DeleteSMS) (GSM_StateMachine *s, GSM_SMSMessage *sms); /** * Sends SMS. */ GSM_Error (*SendSMS) (GSM_StateMachine *s, GSM_SMSMessage *sms); /** * Sends SMS already saved in phone. */ GSM_Error (*SendSavedSMS) (GSM_StateMachine *s, int Folder, int Location); + GSM_Error (*SetFastSMSSending) (GSM_StateMachine *s, bool enable); /** * Enable/disable notification on incoming SMS. */ GSM_Error (*SetIncomingSMS) (GSM_StateMachine *s, bool enable); /** * Gets network information from phone. */ GSM_Error (*SetIncomingCB) (GSM_StateMachine *s, bool enable); /** * Returns SMS folders information. */ GSM_Error (*GetSMSFolders) (GSM_StateMachine *s, GSM_SMSFolders *folders); /** * Creates SMS folder. */ GSM_Error (*AddSMSFolder) (GSM_StateMachine *s, unsigned char *name); /** * Deletes SMS folder. */ GSM_Error (*DeleteSMSFolder) (GSM_StateMachine *s, int ID); /** * Dials number and starts voice call. */ GSM_Error (*DialVoice) (GSM_StateMachine *s, char *Number, GSM_CallShowNumber ShowNumber); /** * Accept current incoming call. */ GSM_Error (*AnswerCall) (GSM_StateMachine *s, int ID, bool all); /** * Deny current incoming call. */ GSM_Error (*CancelCall) (GSM_StateMachine *s, int ID, bool all); /** * Holds call. */ GSM_Error (*HoldCall) (GSM_StateMachine *s, int ID); /** * Unholds call. */ GSM_Error (*UnholdCall) (GSM_StateMachine *s, int ID); /** * Initiates conference call. */ GSM_Error (*ConferenceCall) (GSM_StateMachine *s, int ID); /** * Splits call. */ GSM_Error (*SplitCall) (GSM_StateMachine *s, int ID); @@ -1234,161 +1247,164 @@ typedef struct { /** * Deletes ToDo entry in phone. */ GSM_Error (*DeleteToDo) (GSM_StateMachine *s, GSM_ToDoEntry *ToDo); /** * Deletes all todo entries in phone. */ GSM_Error (*DeleteAllToDo) (GSM_StateMachine *s); /** * Retrieves calendar status (number of used entries). */ GSM_Error (*GetCalendarStatus) (GSM_StateMachine *s, GSM_CalendarStatus *Status); /** * Retrieves calendar entry. */ GSM_Error (*GetCalendar) (GSM_StateMachine *s, GSM_CalendarEntry *Note); /** * Retrieves calendar entry. This is useful for continuous reading of all * calendar entries. */ GSM_Error (*GetNextCalendar) (GSM_StateMachine *s, GSM_CalendarEntry *Note, bool start); /** * Sets calendar entry */ GSM_Error (*SetCalendar) (GSM_StateMachine *s, GSM_CalendarEntry *Note); /** * Adds calendar entry. */ GSM_Error (*AddCalendar) (GSM_StateMachine *s, GSM_CalendarEntry *Note); /** * Deletes calendar entry. */ GSM_Error (*DeleteCalendar) (GSM_StateMachine *s, GSM_CalendarEntry *Note); /** * Deletes all calendar entries. */ GSM_Error (*DeleteAllCalendar) (GSM_StateMachine *s); /** * Reads calendar settings. */ GSM_Error (*GetCalendarSettings)(GSM_StateMachine *s, GSM_CalendarSettings *settings); /** * Sets calendar settings. */ GSM_Error (*SetCalendarSettings)(GSM_StateMachine *s, GSM_CalendarSettings *settings); /** * Gets note. */ - GSM_Error (*GetNote) (GSM_StateMachine *s, GSM_NoteEntry *Note, bool refresh); + GSM_Error (*GetNextNote) (GSM_StateMachine *s, GSM_NoteEntry *Note, bool refresh); /** * Reads profile. */ GSM_Error (*GetProfile) (GSM_StateMachine *s, GSM_Profile *Profile); /** * Updates profile. */ GSM_Error (*SetProfile) (GSM_StateMachine *s, GSM_Profile *Profile); /** * Reads FM station. */ GSM_Error (*GetFMStation) (GSM_StateMachine *s, GSM_FMStation *FMStation); /** * Sets FM station. */ GSM_Error (*SetFMStation) (GSM_StateMachine *s, GSM_FMStation *FMStation); /** * Clears defined FM stations. */ GSM_Error (*ClearFMStations) (GSM_StateMachine *s); /** * Gets next filename from filesystem. */ GSM_Error (*GetNextFileFolder) (GSM_StateMachine *s, GSM_File *File, bool start); /** * Gets file part from filesystem. */ GSM_Error (*GetFilePart) (GSM_StateMachine *s, GSM_File *File); /** * Adds file part to filesystem. */ GSM_Error (*AddFilePart) (GSM_StateMachine *s, GSM_File *File, int *Pos); /** * Acquires filesystem status. */ GSM_Error (*GetFileSystemStatus)(GSM_StateMachine *s, GSM_FileSystemStatus *Status); /** * Deletes file from filessytem. */ GSM_Error (*DeleteFile) (GSM_StateMachine *s, unsigned char *ID); /** * Adds folder to filesystem. */ GSM_Error (*AddFolder) (GSM_StateMachine *s, GSM_File *File); /** * Gets GPRS access point. */ GSM_Error (*GetGPRSAccessPoint) (GSM_StateMachine *s, GSM_GPRSAccessPoint *point); /** * Sets GPRS access point. */ GSM_Error (*SetGPRSAccessPoint) (GSM_StateMachine *s, GSM_GPRSAccessPoint *point); } GSM_Phone_Functions; extern GSM_Phone_Functions NAUTOPhone; #ifdef GSM_ENABLE_NOKIA3320 extern GSM_Phone_Functions N3320Phone; #endif #ifdef GSM_ENABLE_NOKIA3650 extern GSM_Phone_Functions N3650Phone; #endif #ifdef GSM_ENABLE_NOKIA6110 extern GSM_Phone_Functions N6110Phone; #endif +#ifdef GSM_ENABLE_NOKIA650 + extern GSM_Phone_Functions N650Phone; +#endif #ifdef GSM_ENABLE_NOKIA6510 extern GSM_Phone_Functions N6510Phone; #endif #ifdef GSM_ENABLE_NOKIA7110 extern GSM_Phone_Functions N7110Phone; #endif #ifdef GSM_ENABLE_NOKIA9210 extern GSM_Phone_Functions N9210Phone; #endif #ifdef GSM_ENABLE_ATGEN extern GSM_Phone_Functions ATGENPhone; #endif #ifdef GSM_ENABLE_ALCATEL extern GSM_Phone_Functions ALCATELPhone; #endif #ifdef GSM_ENABLE_OBEXGEN extern GSM_Phone_Functions OBEXGENPhone; #endif #ifdef GSM_ENABLE_MROUTERGEN extern GSM_Phone_Functions MROUTERGENPhone; #endif typedef struct { GSM_Phone_Data Data; GSM_Phone_Functions *Functions; } GSM_Phone; /* --------------------------- User layer ---------------------------------- */ struct _GSM_User { GSM_Reply_Function *UserReplyFunctions; void (*IncomingCall) (char *Device, GSM_Call call); void (*IncomingSMS) (char *Device, GSM_SMSMessage sms); void (*IncomingCB) (char *Device, GSM_CBMessage cb); void (*IncomingUSSD) (char *Device, char *Text); void (*SendSMSStatus) (char *Device, int status, int MessageReference); }; /* --------------------------- Statemachine layer -------------------------- */ typedef enum { GCT_MBUS2=1, GCT_FBUS2, GCT_FBUS2DLR3, GCT_FBUS2DKU5, GCT_FBUS2PL2303, GCT_FBUS2BLUE, @@ -1478,85 +1494,86 @@ void GSM_DumpMessageLevel3 (GSM_StateMachine *s, unsigned char *message, int typedef enum { /* n6110.c */ F_CAL33 = 1, /* Calendar,3310 style - 10 reminders, Unicode, 3 coding types */ F_CAL52, /* Calendar,5210 style - full Unicode, etc. */ F_CAL82, /* Calendar,8250 style - "normal", but with Unicode */ F_RING_SM, /* Ringtones returned in SM format - 33xx */ F_NORING, /* No ringtones */ F_NOPBKUNICODE, /* No phonebook in Unicode */ F_NOWAP, /* No WAP */ F_NOCALLER, /* No caller groups */ F_NOPICTURE, /* No Picture Images */ F_NOPICTUREUNI, /* No Picture Images text in Unicode */ F_NOSTARTUP, /* No startup logo */ F_NOCALENDAR, /* No calendar */ F_NOSTARTANI, /* Startup logo is not animated */ F_POWER_BATT, /* Network and battery level get from netmonitor */ F_PROFILES33, /* Phone profiles in 3310 style */ F_PROFILES51, /* Phone profiles in 5110 style */ F_MAGICBYTES, /* Phone can make authentication with magic bytes */ F_NODTMF, /* Phone can't send DTMF */ F_DISPSTATUS, /* Phone return display status */ F_NOCALLINFO, /* n3320.c */ F_DAYMONTH, /* Day and month reversed in pbk, when compare to GSM models */ /* n6510.c */ F_PBK35, /* Phonebook in 3510 style with ringtones ID */ F_PBKIMG, /* Phonebook in 7250 style with picture ID */ F_PBKTONEGAL, /* Phonebook with selecting ringtones from gallery */ F_PBKSMSLIST, /* Phonebook with SMS list */ F_PBKUSER, /* Phonebook with user ID */ F_RADIO, /* Phone with FM radio */ F_TODO63, /* ToDo in 6310 style - 0x55 msg type */ F_TODO66, /* ToDo in 6610 style - like calendar, with date and other */ F_NOMIDI, /* No ringtones in MIDI */ F_BLUETOOTH, /* Bluetooth support */ F_NOFILESYSTEM, /* No images, ringtones, java saved in special filesystem */ F_NOMMS, /* No MMS sets in phone */ F_NOGPRSPOINT, /* GPRS point are not useable */ F_CAL35, /* Calendar,3510 style - Reminder,Call,Birthday */ F_CAL65, /* Calendar,6510 style - CBMM, method 3 */ F_WAPMMSPROXY, /* WAP & MMS settings contains first & second proxy */ /* n6510.c && n7110.c */ F_VOICETAGS, /* Voice tags available */ F_CAL62, /* Calendar,6210 style - Call,Birthday,Memo,Meeting */ + F_NOTES, /* AT modules */ F_SMSONLYSENT, /* Phone supports only sent/unsent messages */ F_BROKENCPBS, /* CPBS on some memories can hang phone */ F_M20SMS, /* Siemens M20 like SMS handling */ F_SLOWWRITE, /* Use slower writing which some phone need */ F_SMSME900, /* SMS in ME start from location 900 - case of Sagem */ F_ALCATEL /* Phone supports Alcatel protocol */ } Feature; /* For models table */ struct _OnePhoneModel { char *model; char *number; char *irdamodel; Feature features[12]; }; bool IsPhoneFeatureAvailable (OnePhoneModel *model, Feature feature); OnePhoneModel *GetModelData (char *model, char *number, char *irdamodel); #ifdef __GNUC__ __attribute__((format(printf, 2, 3))) #endif int smprintf(GSM_StateMachine *s, const char *format, ...); void GSM_OSErrorInfo(GSM_StateMachine *s, char *description); #ifdef GSM_ENABLE_BACKUP void GSM_GetPhoneFeaturesForBackup(GSM_StateMachine *s, GSM_Backup_Info *info); #endif #endif /* How should editor hadle tabs in this file? Add editor commands here. * vim: noexpandtab sw=8 ts=8 sts=8: */ |