diff options
author | Michal Čihař <michal@cihar.com> | 2011-02-10 15:32:59 +0100 |
---|---|---|
committer | Michal Čihař <michal@cihar.com> | 2011-02-10 15:32:59 +0100 |
commit | 66ce5a2dc79d6132a0db61f880782e56d4f8bfcf (patch) | |
tree | 60a4edadc2ad333cc9984f71f0a364bb7eab7c93 /gammu | |
parent | a92feb0ede986fd672d2fc6d642ac93084c4da62 (diff) |
Imported Upstream version 1.29.90
Diffstat (limited to 'gammu')
-rw-r--r-- | gammu/common.c | 1 | ||||
-rw-r--r-- | gammu/depend/nokia/dct3.c | 1 | ||||
-rw-r--r-- | gammu/depend/nokia/dct3trac/wmx.c | 2 | ||||
-rw-r--r-- | gammu/depend/nokia/dct4.c | 32 | ||||
-rw-r--r-- | gammu/depend/siemens/dsiemens.c | 4 | ||||
-rw-r--r-- | gammu/gammu.c | 5 | ||||
-rw-r--r-- | gammu/memory.c | 19 | ||||
-rw-r--r-- | gammu/misc.c | 80 | ||||
-rw-r--r-- | gammu/misc.h | 2 |
9 files changed, 100 insertions, 46 deletions
diff --git a/gammu/common.c b/gammu/common.c index 68b9a2e..3e9d88a 100644 --- a/gammu/common.c +++ b/gammu/common.c @@ -26,6 +26,7 @@ gboolean batchConn = FALSE; void interrupt(int sign) { signal(sign, SIG_IGN); + GSM_AbortOperation(gsm); gshutdown = TRUE; } diff --git a/gammu/depend/nokia/dct3.c b/gammu/depend/nokia/dct3.c index 21bcd09..6830fc0 100644 --- a/gammu/depend/nokia/dct3.c +++ b/gammu/depend/nokia/dct3.c @@ -142,6 +142,7 @@ void DCT3VibraTest(int argc, char *argv[]) SetLevel[3] = 0x00; error=GSM_WaitFor (gsm, SetLevel, 4, 0x40, 4, ID_User3); + Print_Error(error); } static GSM_Error DCT3_ReplyPhoneTests(GSM_Protocol_Message msg, GSM_StateMachine *sm UNUSED) diff --git a/gammu/depend/nokia/dct3trac/wmx.c b/gammu/depend/nokia/dct3trac/wmx.c index bb99282..903fe8b 100644 --- a/gammu/depend/nokia/dct3trac/wmx.c +++ b/gammu/depend/nokia/dct3trac/wmx.c @@ -435,9 +435,9 @@ void DCT3SetDebug(int argc, char *argv[]) Print_Error(error); signal(SIGINT, interrupt); printf("Press Ctrl+C to interrupt...\n"); - x=0; /* + x=0; while(x<100) { //printf(": %02x\n",x); gsm->Phone.Data.RequestID = ID_DebugTrace; diff --git a/gammu/depend/nokia/dct4.c b/gammu/depend/nokia/dct4.c index 0fb82b9..dadf6cd 100644 --- a/gammu/depend/nokia/dct4.c +++ b/gammu/depend/nokia/dct4.c @@ -1324,35 +1324,6 @@ void DCT4MakeCameraShoot(int argc, char *argv[]) GSM_Terminate(); } -int len; - -static GSM_Error DCT4_ReplyGetScreenDump(GSM_Protocol_Message msg, GSM_StateMachine *sm) -{ - if (msg.Buffer[7] == 0x0C) len = 1; - return ERR_NONE; -} - -void DCT4GetScreenDump(int argc, char *argv[]) -{ - unsigned char req[] = {N6110_FRAME_HEADER, 0x07, 0x01, 0x00}; - GSM_Error error; - //n6110_frameheader 06//screen info - - GSM_Init(TRUE); - - CheckDCT4(); - - gsm->User.UserReplyFunctions=UserReplyFunctions4; - - error=GSM_WaitFor (gsm, req, 6, 0x0E, 4, ID_User3); - Print_Error(error); - len = 2000; - while (len >= 200) { - GSM_ReadDevice(gsm,TRUE); - } - GSM_Terminate(); -} - static GSM_Error DCT4_ReplyGetPBKFeatures(GSM_Protocol_Message msg, GSM_StateMachine *sm) { int i,pos=6; @@ -1460,9 +1431,6 @@ GSM_Reply_Function UserReplyFunctions4[] = { {DCT4_ReplyResetSecurityCode, "\x08",0x03,0x06,ID_User2 }, #endif - {DCT4_ReplyGetScreenDump, "\x0E",0x00,0x00,ID_User3 }, - {DCT4_ReplyGetScreenDump, "\x0E",0x00,0x00,ID_IncomingFrame}, - {DCT4_ReplyGetADC, "\x17",0x03,0x10,ID_User3 }, {DCT4_ReplyGetADC, "\x17",0x03,0x12,ID_User3 }, diff --git a/gammu/depend/siemens/dsiemens.c b/gammu/depend/siemens/dsiemens.c index 78b5978..0a72b47 100644 --- a/gammu/depend/siemens/dsiemens.c +++ b/gammu/depend/siemens/dsiemens.c @@ -243,12 +243,14 @@ GSM_Error ATSIEMENS_GetSAT(GSM_StateMachine *sm) strcpy(req, "AT^SSTK=?\r"); error = GSM_WaitForAutoLen(sm, req, 0x00, 3, ID_User1); + Print_Error(error); for (i=0;i<3;i++){ len = strlen(reqSAT[i]); sm->Protocol.Data.AT.EditMode = TRUE; sprintf(req, "AT^SSTK=%i,1\r",len/2); error = GSM_WaitForAutoLen(sm, req, 0x00, 3, ID_User1); + Print_Error(error); sm->Phone.Data.DispatchError = ERR_TIMEOUT; sm->Phone.Data.RequestID = ID_User1; error = sm->Protocol.Functions->WriteMessage(sm, reqSAT[i], len, 0x00); @@ -315,8 +317,10 @@ void ATSIEMENSActivateNetmon(int argc, char *argv[]) pbk.Location = pbk_maxlocation; pbk.EntriesNum = 2; pbk.Entries[0].EntryType = PBK_Number_General; + pbk.Entries[0].Location = PBK_Location_Unknown; EncodeUnicode (pbk.Entries[0].Text,NetMonCode,strlen(NetMonCode)); pbk.Entries[1].EntryType = PBK_Text_Name; + pbk.Entries[1].Location = PBK_Location_Unknown; strcpy(NetMonCode, "Net Monitor"); EncodeUnicode (pbk.Entries[1].Text,NetMonCode,strlen(NetMonCode)); error = ATGEN_SetMemory (gsm, &pbk); diff --git a/gammu/gammu.c b/gammu/gammu.c index 82ba049..1476110 100644 --- a/gammu/gammu.c +++ b/gammu/gammu.c @@ -77,7 +77,7 @@ static void ListNetworks(int argc, char *argv[]) } i++; } - if (!*country) { + if (strlen(country) == 0) { printf(_("Unknown country name: %s."), argv[2]); printf("\n"); Terminate(2); @@ -487,6 +487,7 @@ static GSM_Parameters Parameters[] = { {"setautonetworklogin", 0, 0, SetAutoNetworkLogin, {H_Network,0}, ""}, {"listnetworks", 0, 1, ListNetworks, {H_Network,0}, "[country]"}, {"getgprspoint", 1, 2, GetGPRSPoint, {H_Network,0}, "start [stop]"}, + {"screenshot", 1, 1, Screenshot, {H_Other,0}, "filenamebase"}, {"getfilesystemstatus", 0, 0, GetFileSystemStatus, {H_Filesystem,0}, ""}, {"getfilesystem", 0, 1, GetFileSystem, {H_Filesystem,0}, "[-flatall|-flat]"}, {"getfilefolder", 1,40, GetFileFolder, {H_Filesystem,0}, "fileID, fileID, ..."}, @@ -653,6 +654,7 @@ static GSM_Parameters Parameters[] = { #if defined(WIN32) || defined(HAVE_PTHREAD) {"searchphone", 0, 1, SearchPhone, {H_Other,0}, "[-debug]"}, #endif + {"install", 0, 0, Install, {H_Other,0}, ""}, #ifdef GSM_ENABLE_BACKUP {"savefile", 4, 5, SaveFile, {H_Backup,H_Calendar,0}, "CALENDAR target.vcs file location"}, {"savefile", 4, 5, SaveFile, {H_Backup,H_ToDo,0}, "TODO target.vcs file location"}, @@ -692,7 +694,6 @@ static GSM_Parameters Parameters[] = { {"nokiatuneradio", 0, 0, DCT4TuneRadio, {H_Nokia,H_FM,0}, ""}, #endif {"nokiamakecamerashoot", 0, 0, DCT4MakeCameraShoot, {H_Nokia,H_Other,0}, ""}, - {"nokiagetscreendump", 0, 0, DCT4GetScreenDump, {H_Nokia,H_Other,0}, ""}, #endif #if defined(GSM_ENABLE_NOKIA_DCT3) || defined(GSM_ENABLE_NOKIA_DCT4) {"nokiavibratest", 0, 0, NokiaVibraTest, {H_Nokia,H_Tests,0}, ""}, diff --git a/gammu/memory.c b/gammu/memory.c index 1d2001b..6f387b8 100644 --- a/gammu/memory.c +++ b/gammu/memory.c @@ -192,25 +192,29 @@ void SearchOneEntry(GSM_MemoryEntry *Entry, const unsigned char *Text) switch (Entry->Entries[i].EntryType) { case PBK_Number_General : case PBK_Number_Mobile : - case PBK_Number_Mobile_Work : - case PBK_Number_Mobile_Home : - case PBK_Number_Work : case PBK_Number_Fax : - case PBK_Number_Home : case PBK_Number_Pager : case PBK_Number_Other : case PBK_Number_Messaging: + case PBK_Number_Video: case PBK_Text_Note : case PBK_Text_Postal : - case PBK_Text_WorkPostal: case PBK_Text_Email : case PBK_Text_Email2 : case PBK_Text_URL : case PBK_Text_LUID : + case PBK_Text_VOIP : + case PBK_Text_SWIS : + case PBK_Text_WVID : + case PBK_Text_SIP : + case PBK_Text_DTMF : case PBK_Text_Name : case PBK_Text_LastName : case PBK_Text_FirstName : + case PBK_Text_SecondName: case PBK_Text_FormalName : + case PBK_Text_NamePrefix : + case PBK_Text_NameSuffix : case PBK_Text_NickName : case PBK_Text_Company : case PBK_Text_JobTitle : @@ -219,11 +223,6 @@ void SearchOneEntry(GSM_MemoryEntry *Entry, const unsigned char *Text) case PBK_Text_State : case PBK_Text_Zip : case PBK_Text_Country : - case PBK_Text_WorkStreetAddress : - case PBK_Text_WorkCity : - case PBK_Text_WorkState : - case PBK_Text_WorkZip : - case PBK_Text_WorkCountry : case PBK_Text_Custom1 : case PBK_Text_Custom2 : case PBK_Text_Custom3 : diff --git a/gammu/misc.c b/gammu/misc.c index 597f42a..02ac2ca 100644 --- a/gammu/misc.c +++ b/gammu/misc.c @@ -481,6 +481,67 @@ void Battery(int argc UNUSED, char *argv[] UNUSED) GSM_Terminate(); } +void Screenshot(int argc UNUSED, char *argv[]) +{ + GSM_BinaryPicture pic; + const char *ext = NULL; + char *fname; + GSM_Error error; + FILE *f; + size_t written; + int ret; + + GSM_Init(TRUE); + + error = GSM_GetScreenshot(gsm, &pic); + Print_Error(error); + + switch (pic.Type) { + case PICTURE_BMP: + ext = ".bmp"; + break; + case PICTURE_GIF: + ext = ".gif"; + break; + case PICTURE_JPG: + ext = ".jpg"; + break; + case PICTURE_ICN: + ext = ".icn"; + break; + case PICTURE_PNG: + ext = ".png"; + break; + } + if (ext == NULL) { + printf_err("Unknown file type: %d\n", pic.Type); + return; + } + + fname = (char *)malloc(strlen(argv[2]) + strlen(ext) + 1); + strcpy(fname, argv[2]); + strcat(fname, ext); + + f = fopen(fname, "w"); + if (f == NULL) { + printf_err("Failed to open file: %s\n", fname); + return; + } + written = fwrite(pic.Buffer, 1, pic.Length, f); + ret = fclose(f); + if (ret != 0 || written != pic.Length) { + printf_err("Failed to write file: %s\n", fname); + return; + } + + printf_info("File saved as %s\n", fname); + + free(fname); + free(pic.Buffer); + + GSM_Terminate(); +} + void IncomingCall(GSM_StateMachine *sm UNUSED, GSM_Call call, void *user_data) { printf(LISTFORMAT, _("Call info")); @@ -2137,7 +2198,8 @@ void GetSpeedDial(int argc, char *argv[]) Phonebook.Location = SpeedDial.MemoryLocation; Phonebook.MemoryType = SpeedDial.MemoryType; - error=GSM_GetMemory(gsm,&Phonebook); + error = GSM_GetMemory(gsm,&Phonebook); + Print_Error(error); GSM_PhonebookFindDefaultNameNumberGroup(&Phonebook, &Name, &Number, &Group); @@ -2418,6 +2480,22 @@ void CancelAllDiverts(int argc UNUSED, char *argv[] UNUSED) GSM_Terminate(); } +void Install(int argc UNUSED, char *argv[] UNUSED) +{ + GSM_Error error; + + GSM_Init(FALSE); + + /* TODO: make search path configurable */ + error = GSM_Install(gsm, INI_GetValue(cfg, "gammu", "datapath", FALSE)); + Print_Error(error); + + printf("%s\n", _("The application has been successfully sent to the phone.")); + printf("%s\n", _("Please find received files in Inbox and install them.")); + + GSM_Terminate(); +} + /* How should editor hadle tabs in this file? Add editor commands here. * vim: noexpandtab sw=8 ts=8 sts=8: */ diff --git a/gammu/misc.h b/gammu/misc.h index 61522a9..6f20021 100644 --- a/gammu/misc.h +++ b/gammu/misc.h @@ -48,3 +48,5 @@ extern void CallDivert(int argc, char *argv[]); extern void CancelAllDiverts(int argc, char *argv[]); extern GSM_Error GSM_PlayRingtone(GSM_Ringtone ringtone); extern void Battery(int argc, char *argv[]); +extern void Screenshot(int argc, char *argv[]); +extern void Install(int argc, char *argv[]); |