summaryrefslogtreecommitdiffabout
path: root/gammu/emb/common/service/gsmmisc.h
Side-by-side diff
Diffstat (limited to 'gammu/emb/common/service/gsmmisc.h') (more/less context) (ignore whitespace changes)
-rw-r--r--gammu/emb/common/service/gsmmisc.h316
1 files changed, 316 insertions, 0 deletions
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:
+ */