-rw-r--r-- | gammu/emb/common/gsmstate.h | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/gammu/emb/common/gsmstate.h b/gammu/emb/common/gsmstate.h index 2b4806c..6861fbc 100644 --- a/gammu/emb/common/gsmstate.h +++ b/gammu/emb/common/gsmstate.h @@ -253,256 +253,257 @@ typedef struct { #ifdef GSM_ENABLE_BLUETOOTHDEVICE extern GSM_Device_Functions BlueToothDevice; #endif /** * Structure containing device specific data and pointer to device functions - * @ref GSM_Device_Functions. The data are in a union, so you can use only * one device at one time. */ typedef struct { union { char fake; #ifdef GSM_ENABLE_SERIALDEVICE GSM_Device_SerialData Serial; #endif #ifdef GSM_ENABLE_IRDADEVICE GSM_Device_IrdaData Irda; #endif #ifdef GSM_ENABLE_BLUETOOTHDEVICE GSM_Device_BlueToothData BlueTooth; #endif } Data; GSM_Device_Functions *Functions; } GSM_Device; /* ---------------------- Protocol layer ----------------------------------- */ /** * Protocol functions, each protocol has to implement these. */ typedef struct { /** * Writes message to device. */ GSM_Error (*WriteMessage) (GSM_StateMachine *s, unsigned char *buffer, int length, unsigned char type); /** * This one is called when character is received from device. */ GSM_Error (*StateMachine) (GSM_StateMachine *s, unsigned char rx_char); /** * Protocol initialisation. */ GSM_Error (*Initialise) (GSM_StateMachine *s); /** * Protocol termination. */ GSM_Error (*Terminate) (GSM_StateMachine *s); } GSM_Protocol_Functions; #ifdef GSM_ENABLE_MBUS2 extern GSM_Protocol_Functions MBUS2Protocol; #endif #if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2PL2303) extern GSM_Protocol_Functions FBUS2Protocol; #endif #if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) extern GSM_Protocol_Functions PHONETProtocol; #endif #if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) extern GSM_Protocol_Functions ATProtocol; #endif #ifdef GSM_ENABLE_ALCABUS extern GSM_Protocol_Functions ALCABUSProtocol; #endif #if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) extern GSM_Protocol_Functions OBEXProtocol; #endif #if defined(GSM_ENABLE_MROUTERBLUE) extern GSM_Protocol_Functions MROUTERProtocol; #endif /** * Structure containing protocol specific data and pointer to protocol * functions - @ref GSM_Protocol_Functions. The data are in a structure, so * you may use more protocols at once and switch between them. */ 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_SetNote, 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, ID_AlcatelBegin2, ID_AlcatelGetIds1, ID_AlcatelGetIds2, ID_AlcatelGetCategories1, ID_AlcatelGetCategories2, ID_AlcatelGetCategoryText1, ID_AlcatelGetCategoryText2, ID_AlcatelAddCategoryText1, ID_AlcatelAddCategoryText2, ID_AlcatelGetFields1, ID_AlcatelGetFields2, ID_AlcatelGetFieldValue1, @@ -1165,259 +1166,284 @@ typedef struct { */ GSM_Error (*GetRingtonesInfo) (GSM_StateMachine *s, GSM_AllRingtonesInfo *Info); /** * Deletes user defined ringtones from phone. */ GSM_Error (*DeleteUserRingtones)(GSM_StateMachine *s); /** * Plays tone. */ GSM_Error (*PlayTone) (GSM_StateMachine *s, int Herz, unsigned char Volume, bool start); /** * Reads WAP bookmark. */ GSM_Error (*GetWAPBookmark) (GSM_StateMachine *s, GSM_WAPBookmark *bookmark); /** * Sets WAP bookmark. */ GSM_Error (*SetWAPBookmark) (GSM_StateMachine *s, GSM_WAPBookmark *bookmark); /** * Deletes WAP bookmark. */ GSM_Error (*DeleteWAPBookmark) (GSM_StateMachine *s, GSM_WAPBookmark *bookmark); /** * Acquires WAP settings. */ GSM_Error (*GetWAPSettings) (GSM_StateMachine *s, GSM_MultiWAPSettings *settings); /** * Changes WAP settings. */ GSM_Error (*SetWAPSettings) (GSM_StateMachine *s, GSM_MultiWAPSettings *settings); /** * Acquires MMS settings. */ GSM_Error (*GetMMSSettings) (GSM_StateMachine *s, GSM_MultiWAPSettings *settings); /** * Changes MMS settings. */ GSM_Error (*SetMMSSettings) (GSM_StateMachine *s, GSM_MultiWAPSettings *settings); /** * Acquires SyncML settings. */ GSM_Error (*GetSyncMLSettings) (GSM_StateMachine *s, GSM_SyncMLSettings *settings); /** * Changes SyncML settings. */ GSM_Error (*SetSyncMLSettings) (GSM_StateMachine *s, GSM_SyncMLSettings *settings); /** * Acquires chat/presence settings. */ GSM_Error (*GetChatSettings) (GSM_StateMachine *s, GSM_ChatSettings *settings); /** * Changes chat/presence settings. */ GSM_Error (*SetChatSettings) (GSM_StateMachine *s, GSM_ChatSettings *settings); /** * Gets bitmap. */ GSM_Error (*GetBitmap) (GSM_StateMachine *s, GSM_Bitmap *Bitmap); /** * Sets bitmap. */ GSM_Error (*SetBitmap) (GSM_StateMachine *s, GSM_Bitmap *Bitmap); /** * Gets status of ToDos (count of used entries). */ GSM_Error (*GetToDoStatus) (GSM_StateMachine *s, GSM_ToDoStatus *status); /** * Reads ToDo from phone. */ GSM_Error (*GetToDo) (GSM_StateMachine *s, GSM_ToDoEntry *ToDo); /** * Reads ToDo from phone. */ GSM_Error (*GetNextToDo) (GSM_StateMachine *s, GSM_ToDoEntry *ToDo, bool start); /** * Sets ToDo in phone. */ GSM_Error (*SetToDo) (GSM_StateMachine *s, GSM_ToDoEntry *ToDo); /** * Adds ToDo in phone. */ GSM_Error (*AddToDo) (GSM_StateMachine *s, GSM_ToDoEntry *ToDo); /** * 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. + * Retrieves notes status (number of used entries). */ - GSM_Error (*GetNextNote) (GSM_StateMachine *s, GSM_NoteEntry *Note, bool refresh); + GSM_Error (*GetNotesStatus) (GSM_StateMachine *s, GSM_ToDoStatus *status); + /** + * Retrieves notes entry. + */ + GSM_Error (*GetNote) (GSM_StateMachine *s, GSM_NoteEntry *Note); + /** + * Retrieves note entry. This is useful for continuous reading of all + * notes entries. + */ + GSM_Error (*GetNextNote) (GSM_StateMachine *s, GSM_NoteEntry *Note, bool start); + /** + * Sets note entry + */ + GSM_Error (*SetNote) (GSM_StateMachine *s, GSM_NoteEntry *Note); + /** + * Adds note entry. + */ + GSM_Error (*AddNote) (GSM_StateMachine *s, GSM_NoteEntry *Note); + /** + * Deletes note entry. + */ + GSM_Error (*DeleteNote) (GSM_StateMachine *s, GSM_NoteEntry *Note); + /** + * Deletes all notes entries. + */ + GSM_Error (*DeleteAllNotes) (GSM_StateMachine *s); /** * 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, GCT_FBUS2IRDA, GCT_PHONETBLUE, GCT_AT, GCT_MROUTERBLUE, GCT_IRDAOBEX, GCT_IRDAAT, GCT_IRDAPHONET, GCT_BLUEFBUS2, GCT_BLUEAT, GCT_BLUEPHONET, GCT_BLUEOBEX } GSM_ConnectionType; |