From 88b0d33b8b0b1f6ae320cfc863ca6a47fa8fec22 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 07 Aug 2004 17:24:40 +0000 Subject: Initial revision --- (limited to 'gammu/emb/common/service/gsmmisc.h') diff --git a/gammu/emb/common/service/gsmmisc.h b/gammu/emb/common/service/gsmmisc.h new file mode 100644 index 0000000..37501ad --- a/dev/null +++ b/gammu/emb/common/service/gsmmisc.h @@ -0,0 +1,316 @@ +/* (c) 2001-2004 by Marcin Wiacek, Walek and Michal Cihar */ + +#ifndef __gsm_misc_h +#define __gsm_misc_h + +#include "../gsmcomon.h" + +/** + * Enum defines ID for various phone and SIM memories. + * Phone modules can translate them to values specific for concrete models + * Two letter codes (excluding VM) are from GSM 07.07 + */ +typedef enum { + /** + * Internal memory of the mobile equipment + */ + MEM_ME=1, + /** + * SIM card memory + */ + MEM_SM, + /** + * Own numbers + */ + MEM_ON, + /** + * Dialled calls + */ + MEM_DC, + /** + * Received calls + */ + MEM_RC, + /** + * Missed calls + */ + MEM_MC, + /** + * Combined ME and SIM phonebook + */ + MEM_MT, + /** + * Fixed dial + */ + MEM_FD, + + /** + * Voice mailbox + */ + MEM_VM +} GSM_MemoryType; + +/* --------------------------- resetting phone settings ------------------- */ + +typedef enum { + GSM_RESET_PHONESETTINGS = 1, + GSM_RESET_USERINTERFACE, + GSM_RESET_USERINTERFACE_PHONESETTINGS, + GSM_RESET_DEVICE, + GSM_RESET_FULLFACTORY +} GSM_ResetSettingsType; + +/* --------------------------- security codes ------------------------------ */ + +/** + * Definition of security codes. + */ +typedef enum { + /** + * Security code. + */ + SEC_SecurityCode = 0x01, + /** + * PIN. + */ + SEC_Pin, + /** + * PIN 2. + */ + SEC_Pin2, + /** + * PUK. + */ + SEC_Puk, + /** + * PUK 2. + */ + SEC_Puk2, + /** + * Code not needed. + */ + SEC_None +} GSM_SecurityCodeType; + +#define GSM_SECURITY_CODE_LEN 15 + +/** + * Security code definition. + */ +typedef struct { + /** + * Actual code. + */ + char Code[GSM_SECURITY_CODE_LEN+1]; + /** + * Type of the code. + */ + GSM_SecurityCodeType Type; +} GSM_SecurityCode; + +/* ---------------------------- keyboard ----------------------------------- */ + +typedef enum { + GSM_KEY_NONE = 0x00, + GSM_KEY_1 = 0x01, + GSM_KEY_2, + GSM_KEY_3, + GSM_KEY_4, + GSM_KEY_5, + GSM_KEY_6, + GSM_KEY_7, + GSM_KEY_8, + GSM_KEY_9, + GSM_KEY_0, + /** + * # + */ + GSM_KEY_HASH, + /** + * * + */ + GSM_KEY_ASTERISK, + GSM_KEY_POWER, + /** + * in some phone ie. N5110 sometimes works identical to POWER + */ + GSM_KEY_GREEN, + /** + * (c) key in some phone: ie. N5110 + */ + GSM_KEY_RED, + /** + * doesn't available in some phones as separate button: ie. N5110 + */ + GSM_KEY_INCREASEVOLUME, + /** + * doesn't available in some phones as separate button: ie. N5110 + */ + GSM_KEY_DECREASEVOLUME, + GSM_KEY_UP = 0x17, + GSM_KEY_DOWN, + GSM_KEY_MENU, + /** + * doesn't available in some phone: ie. N5110 + */ + GSM_KEY_NAMES +} GSM_KeyCode; + +GSM_Error MakeKeySequence(char *text, GSM_KeyCode *KeyCode, int *Length); + +/* ------------------------------- display features ------------------------ */ + +typedef enum { + GSM_CallActive = 1, + /** + * blinking envelope + */ + GSM_SMSMemoryFull, + GSM_FaxCall, + GSM_UnreadSMS, + GSM_DataCall, + GSM_VoiceCall, + GSM_KeypadLocked +} GSM_DisplayFeature; + +typedef struct { + int Number; + GSM_DisplayFeature Feature[7]; +} GSM_DisplayFeatures; + +/* ----------------------------- power source ------------------------------ */ + +typedef enum { + GSM_BatteryPowered = 1, + GSM_BatteryConnected, + GSM_BatteryNotConnected, + GSM_PowerFault +} GSM_ChargeState; + +typedef struct { + /** + * Signal strength in percent, -1 = unknown + */ + int BatteryPercent; + /** + * Charge state + */ + GSM_ChargeState ChargeState; +} GSM_BatteryCharge; + +/* ------------------------------ categories ------------------------------- */ + +#define GSM_MAX_CATEGORY_NAME_LENGTH 50 + +typedef enum { + Category_ToDo = 1, + Category_Phonebook +} GSM_CategoryType; + +typedef struct { + GSM_CategoryType Type; + int Location; + unsigned char Name[(GSM_MAX_CATEGORY_NAME_LENGTH + 1)*2]; +} GSM_Category; + +typedef struct { + GSM_CategoryType Type; + int Used; +} GSM_CategoryStatus; + +/* ------------------- radio FM stations ---------------------------------- */ + +#define GSM_MAX_FMSTATION_LENGTH 12 +#define GSM_MAX_FM_STATION 20 + +typedef struct { + int Location; + char StationName [(GSM_MAX_FMSTATION_LENGTH+1)*2]; + double Frequency; +} GSM_FMStation; + +/* ----------------------- filesystem ------------------------------------- */ + +typedef enum { + GSM_File_Java_JAR = 1, + GSM_File_Image_JPG, + GSM_File_Image_BMP, + GSM_File_Image_GIF, + GSM_File_Image_PNG, + GSM_File_Image_WBMP, + GSM_File_Video_3GP, + GSM_File_Sound_AMR, + GSM_File_Sound_NRT, /* DCT4 binary format */ + GSM_File_Sound_MIDI, +#ifdef DEVELOP + GSM_File_MMS, +#endif + GSM_File_Other +} GSM_FileType; + +typedef struct { + int Used; /* how many bytes used */ + unsigned char Name[300]; /* Name */ + bool Folder; /* true, when folder */ + int Level; + GSM_FileType Type; + unsigned char ID_FullName[400]; + unsigned char *Buffer; + + GSM_DateTime Modified; + bool ModifiedEmpty; + + /* File attributes */ + bool Protected; + bool ReadOnly; + bool Hidden; + bool System; +} GSM_File; + +GSM_Error GSM_ReadFile(char *FileName, GSM_File *File); + +GSM_Error GSM_JADFindData(GSM_File File, char *Vendor, char *Name, char *JAR, char *Version, int *Size); + +void GSM_IdentifyFileFormat(GSM_File *File); + +typedef struct { + int Free; + int Used; +} GSM_FileSystemStatus; + +/* ----------------------------- GPRS access points ----------------------- */ + +typedef struct { + int Location; + unsigned char Name[300]; + unsigned char URL[500]; + bool Active; +} GSM_GPRSAccessPoint; + +/* ------------------------------------------------------------------------ */ + +typedef enum { + GSM_Date_DDMMYYYY = 1, + GSM_Date_MMDDYYYY, + GSM_Date_YYYYMMDD +} GSM_DateFormat; + +typedef struct { + unsigned char DateSeparator; + GSM_DateFormat DateFormat; + bool AMPMTime; +} GSM_Locale; + +/* ------------------------------------------------------------------------ */ + +void ReadVCALDateTime(char *Buffer, GSM_DateTime *dt); +void SaveVCALDateTime(char *Buffer, int *Length, GSM_DateTime *Date, char *Start); + +void SaveVCALText(char *Buffer, int *Length, char *Text, char *Start); +bool ReadVCALText(char *Buffer, char *Start, char *Value); + +#endif + +/* How should editor hadle tabs in this file? Add editor commands here. + * vim: noexpandtab sw=8 ts=8 sts=8: + */ -- cgit v0.9.0.2