summaryrefslogtreecommitdiff
path: root/gammu
diff options
context:
space:
mode:
authorMichal Čihař <michal@cihar.com>2011-02-10 15:32:59 +0100
committerMichal Čihař <michal@cihar.com>2011-02-10 15:32:59 +0100
commit66ce5a2dc79d6132a0db61f880782e56d4f8bfcf (patch)
tree60a4edadc2ad333cc9984f71f0a364bb7eab7c93 /gammu
parenta92feb0ede986fd672d2fc6d642ac93084c4da62 (diff)
Imported Upstream version 1.29.90
Diffstat (limited to 'gammu')
-rw-r--r--gammu/common.c1
-rw-r--r--gammu/depend/nokia/dct3.c1
-rw-r--r--gammu/depend/nokia/dct3trac/wmx.c2
-rw-r--r--gammu/depend/nokia/dct4.c32
-rw-r--r--gammu/depend/siemens/dsiemens.c4
-rw-r--r--gammu/gammu.c5
-rw-r--r--gammu/memory.c19
-rw-r--r--gammu/misc.c80
-rw-r--r--gammu/misc.h2
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[]);