--- /dev/null
+/*
+
+ G N O K I I
+
+ A Linux/Unix toolset and driver for Nokia mobile phones.
+
+ Released under the terms of the GNU GPL, see file COPYING for more details.
+
+ Header file for test utility.
+
+*/
+
+/* Prototypes */
+
+int monitormode(int argc, char *argv[]);
+
+#ifdef SECURITY
+ int entersecuritycode(char *type);
+ int getsecuritycodestatus(void);
+ int getsecuritycode(char *type);
+#endif
+
+#ifdef DEBUG
+ int sniff(int nargc, char *nargv[]);
+ int decodefile(int nargc, char *nargv[]);
+#endif
+
+int getmemory(int argc, char *argv[]);
+int writephonebook(int argc, char *argv[]);
+int getspeeddial(char *number);
+int setspeeddial(char *argv[]);
+int getsms(int argc, char *argv[]);
+int renamesmsc(int argc, char *argv[]);
+int deletesms(int argc, char *argv[]);
+int sendsms(int argc, char *argv[]);
+int savesms(int argc, char *argv[]);
+int sendlogo(int argc, char *argv[]);
+int savelogo(int argc, char *argv[]);
+int sendringtone(int argc, char *argv[]);
+int saveringtone(int argc, char *argv[]);
+int getsmsc(char *mcn);
+int setdatetime(int argc, char *argv[]);
+int getdatetime(void);
+int setalarm(char *argv[]);
+int getalarm(void);
+int dialvoice(char *number);
+int cancelcall(void);
+int getcalendarnote(int argc, char *argv[]);
+int writecalendarnote(char *argv[]);
+int deletecalendarnote(char *index);
+int getdisplaystatus();
+int netmonitor(char *_mode);
+int identify(void);
+int senddtmf(char *String);
+int foogle(char *argv[]);
+int pmon(void);
+int setlogo(int argc, char *argv[]);
+int getlogo(int argc, char *argv[]);
+int binringtoneconvert(int argc, char *argv[]);
+int setringtone(int argc, char *argv[]);
+int getringtone(int argc, char *argv[]);
+int reset(int argc, char *argv[]);
+int getprofile(int argc, char *argv[]);
+int setprofile(int argc, char *argv[]);
+int allringtones();
+int displayoutput();
+int presskeysequence(char *argv[]);
+int restoresettings(char *argv[]);
+int backupsettings(char *argv[]);
+int playringtone(int argc, char *argv[]);
+int ringtoneconvert(int argc, char *argv[]);
+int bitmapconvert(int argc, char *argv[]);
+int composer(int argc, char *argv[]);
+int getphoneprofile();
+int setphoneprofile(int argc, char *argv[]);
+int getoperatorname();
+int setoperatorname(int argc, char *argv[]);
+int getvoicemailbox();
+int phonetests();
+int simlockinfo();
+int geteeprom ();
+int setsimlock ();
+int getsmsfolders ();
+int resetphonesettings ();
+int sendprofile(int argc, char *argv[]);
+int showbitmap(int argc, char *argv[]);
+int nm_collect(int argc, char *argv[]);
+int netmonitordata(int argc, char *argv[]);
+int getwapbookmark(int argc, char *argv[]);
+int setwapbookmark(int argc, char *argv[]);
+int savewapbookmark(int argc, char *argv[]);
+int sendwapbookmark(int argc, char *argv[]);
+int getwapsettings(int argc, char *argv[]);
+int savewapsettings(int argc, char *argv[]);
+int sendwapsettings(int argc, char *argv[]);
+int savecalendarnote(int argc, char *argv[]);
+int sendcalendarnote(int argc, char *argv[]);
+int receivesms(int argc, char *argv[]);
+int getsmsstatus(int argc, char *argv[]);
+int divert(int argc, char *argv[]);
+int savephonebookentry(int argc, char *argv[]);
+int sendphonebookentry(int argc, char *argv[]);
+
+typedef enum {
+ OPT_HELP,
+ OPT_VERSION,
+ OPT_MONITOR,
+ OPT_ENTERSECURITYCODE,
+ OPT_GETSECURITYCODESTATUS,
+ OPT_GETSECURITYCODE,
+ OPT_SETDATETIME,
+ OPT_GETDATETIME,
+ OPT_SETALARM,
+ OPT_GETALARM,
+ OPT_DIALVOICE,
+ OPT_CANCELCALL,
+ OPT_GETCALENDARNOTE,
+ OPT_WRITECALENDARNOTE,
+ OPT_DELCALENDARNOTE,
+ OPT_GETDISPLAYSTATUS,
+ OPT_GETMEMORY,
+ OPT_WRITEPHONEBOOK,
+ OPT_GETSPEEDDIAL,
+ OPT_SETSPEEDDIAL,
+ OPT_GETSMS,
+ OPT_DELETESMS,
+ OPT_SENDSMS,
+ OPT_SAVESMS,
+ OPT_GETSMSC,
+ OPT_RENAMESMSC,
+ OPT_PMON,
+ OPT_NETMONITOR,
+ OPT_NM_COLLECT,
+ OPT_NETMONITORDATA,
+ OPT_IDENTIFY,
+ OPT_SENDDTMF,
+ OPT_RESET,
+ OPT_SETLOGO,
+ OPT_GETLOGO,
+ OPT_SENDLOGO,
+ OPT_SAVELOGO,
+ OPT_BITMAPCONVERT,
+ OPT_SENDRINGTONE,
+ OPT_SAVERINGTONE,
+ OPT_SETRINGTONE,
+ OPT_PLAYRINGTONE,
+ OPT_RINGTONECONVERT,
+ OPT_COMPOSER,
+ OPT_ALLRINGTONES,
+ OPT_GETRINGTONE,
+ OPT_SNIFFER,
+ OPT_GETPROFILE,
+ OPT_SETPROFILE,
+ OPT_DISPLAYOUTPUT,
+ OPT_PRESSKEYSEQUENCE,
+ OPT_RESTORESETTINGS,
+ OPT_BACKUPSETTINGS,
+ OPT_GETPHONEPROFILE,
+ OPT_SETPHONEPROFILE,
+ OPT_GETOPERATORNAME,
+ OPT_SETOPERATORNAME,
+ OPT_GETVOICEMAILBOX,
+ OPT_PHONETESTS,
+ OPT_FOOGLE,
+ OPT_SIMLOCKINFO,
+ OPT_SETSIMLOCK,
+ OPT_GETEEPROM=128,
+ OPT_GETSMSFOLDERS=129,
+ OPT_RESETPHONESETTINGS=130,
+ OPT_SENDPROFILE=131,
+ OPT_SHOWBITMAP=132,
+ OPT_BINRINGTONECONVERT=133,
+ OPT_GETWAPBOOKMARK=134,
+ OPT_SAVEWAPBOOKMARK=135,
+ OPT_SENDWAPBOOKMARK=136,
+ OPT_GETWAPSETTINGS=137,
+ OPT_SAVEWAPSETTINGS=138,
+ OPT_SAVECALENDARNOTE=139,
+ OPT_SENDCALENDARNOTE=140,
+ OPT_SAVEPHONEBOOKENTRY=141,
+ OPT_SENDPHONEBOOKENTRY=142,
+ OPT_DECODEFILE=143,
+ OPT_RECEIVESMS=144,
+ OPT_GETSMSSTATUS=145,
+ OPT_DIVERT=146,
+ OPT_SENDWAPSETTINGS=147,
+ OPT_SETWAPBOOKMARK=148
+} opt_index;
+
+struct gnokii_arg_len {
+ int gal_opt;
+ int gal_min;
+ int gal_max;
+ int gal_flags;
+};
+
+/* This is used for checking correct argument count. If it is used then if
+ the user specifies some argument, their count should be equivalent to the
+ count the programmer expects. */
+
+#define GAL_XOR 0x01
+
+/* for --presskeysequence */
+struct keys_table_position {
+ char whatchar;
+ int whatcode;
+};
+
+/* for --presskeysequence */
+struct keys_table_position Keys[] = {
+{'m',PHONEKEY_MENU},
+{'M',PHONEKEY_MENU},
+{'n',PHONEKEY_NAMES},
+{'N',PHONEKEY_NAMES},
+{'p',PHONEKEY_POWER},
+{'P',PHONEKEY_POWER},
+{'u',PHONEKEY_UP},
+{'U',PHONEKEY_UP},
+{'d',PHONEKEY_DOWN},
+{'D',PHONEKEY_DOWN},
+{'+',PHONEKEY_INCREASEVOLUME},
+{'-',PHONEKEY_DECREASEVOLUME},
+{'1',PHONEKEY_1},
+{'2',PHONEKEY_2},
+{'3',PHONEKEY_3},
+{'4',PHONEKEY_4},
+{'5',PHONEKEY_5},
+{'6',PHONEKEY_6},
+{'7',PHONEKEY_7},
+{'8',PHONEKEY_8},
+{'9',PHONEKEY_9},
+{'*',PHONEKEY_ASTERISK},
+{'0',PHONEKEY_0},
+{'#',PHONEKEY_HASH},
+{'g',PHONEKEY_GREEN},
+{'G',PHONEKEY_GREEN},
+{'r',PHONEKEY_RED},
+{'R',PHONEKEY_RED},
+{' ',0}
+};
+
+/* for NETMONITOR */
+
+//maximal number of screens for --nm_collect
+#define MAX_NM_COLLECT 20
+
+/* 255 used internally by functions */
+#define NM_MAX_SCREEN 254
+
+/* in 6150 v4.13 effectively used was 296 FIELDS + date + time ... */
+#define NM_MAX_FIELDS 512
+
+typedef struct {
+ char *name;
+ int x;
+ int y;
+ int len;
+ char *mname;
+ int s_nr;
+ char type;
+ char value[NM_MAX_SCREEN_WIDTH];
+ void *next;
+} PARAM_INFO_MON;
+
+// info for make ouput, filled in by parse_process()
+typedef struct {
+ int req_header;
+ unsigned long req_wait;
+ int req_n;
+ char req_fs[11];
+ char req_ls[11];
+ PARAM_INFO_MON *data[NM_MAX_FIELDS];
+ char out_f[NM_MAX_FIELDS];
+ unsigned char req_screen[NM_MAX_SCREEN];
+} OUT_INFO_MON;
+
+int semicolon_pipe_substitution( GSM_PhonebookEntry *pentry, unsigned int direction );
+int str_substch( char *str, const char toric, const char sost );