gnokii-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] libgnokii and core programs branch, master, updated. rel_0_6_29-21


From: Pawel Kot
Subject: [SCM] libgnokii and core programs branch, master, updated. rel_0_6_29-215-gef4fa2d
Date: Fri, 22 Apr 2011 21:04:32 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "libgnokii and core programs".

The branch, master has been updated
       via  ef4fa2dfb44feb2f0c88efedfa2ed0e015ebee34 (commit)
      from  b2d201a6ae09cfb52b7a402a54856299548e69b9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/gnokii.git/commit/?id=ef4fa2dfb44feb2f0c88efedfa2ed0e015ebee34


commit ef4fa2dfb44feb2f0c88efedfa2ed0e015ebee34
Author: Pawel Kot <address@hidden>
Date:   Fri Apr 22 23:01:43 2011 +0200

    fake: add support for --writephonebook
    
    Add support for GN_OP_WritePhonebook and GN_OP_ReadPhonebook (which returns
    always empty location).  GN_OP_WritePhonebook uses AT driver code with UCS2
    encoding.

diff --git a/ChangeLog b/ChangeLog
index 126f75a..056b0f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,7 @@
     o allow to specify custom path for gnokii-errors    (Paweł Kot)
  * fake driver updates
     o add multipart message to SMS inbox                (Paweł Kot)
+    o add ability to use --writephonebook               (Paweł Kot)
 
 0.6.30
 ======
diff --git a/common/phones/fake.c b/common/phones/fake.c
index 0123ff2..f4839a1 100644
--- a/common/phones/fake.c
+++ b/common/phones/fake.c
@@ -34,6 +34,7 @@
 #include "gnokii.h"
 #include "phones/generic.h"
 #include "gnokii-internal.h"
+#include "phones/atgen.h"
 
 /* Some globals */
 
@@ -420,6 +421,59 @@ static gn_error at_get_model(gn_data *data, struct 
gn_statemachine *state)
        return GN_ERR_NONE;
 }
 
+size_t fake_encode(at_charset charset, char *dst, size_t dst_len, const char 
*src, size_t len)
+{
+       size_t ret;
+
+       switch (charset) {
+       case AT_CHAR_GSM:
+               ret = char_ascii_encode(dst, dst_len, src, len);
+               break;
+       case AT_CHAR_HEXGSM:
+               ret = char_hex_encode(dst, dst_len, src, len);
+               break;
+       case AT_CHAR_UCS2:
+               ret = char_ucs2_encode(dst, dst_len, src, len);
+               break;
+       default:
+               memcpy(dst, src, dst_len >= len ? len : dst_len);
+               ret = len;
+               break;
+       }
+       if (ret < dst_len)
+               dst[ret] = '\0';
+       return ret+1;
+}
+
+static gn_error fake_writephonebook(gn_data *data, struct gn_statemachine 
*state)
+{
+       int len, ofs;
+       char req[256], *tmp;
+       char number[64];
+
+       memset(number, 0, sizeof(number));
+#if 1 
+       fake_encode(AT_CHAR_UCS2, number, sizeof(number),
+               data->phonebook_entry->number,
+               strlen(data->phonebook_entry->number));
+#else
+       strncpy(number, data->phonebook_entry->number, sizeof(number));
+#endif
+       ofs = snprintf(req, sizeof(req), "AT+CPBW=%d,\"%s\",%s,\"",
+                      data->phonebook_entry->location,
+                      number,
+                      data->phonebook_entry->number[0] == '+' ? "145" : "129");
+       tmp = req + ofs;
+       len = fake_encode(AT_CHAR_UCS2, tmp, sizeof(req) - ofs,
+                       data->phonebook_entry->name,
+                       strlen(data->phonebook_entry->name));
+       tmp[len-1] = '"';
+       tmp[len++] = '\r';
+       len += ofs;
+       dprintf("%s\n", req);
+       return GN_ERR_NONE;
+}
+
 static gn_error fake_functions(gn_operation op, gn_data *data, struct 
gn_statemachine *state)
 {
        switch (op) {
@@ -444,6 +498,10 @@ static gn_error fake_functions(gn_operation op, gn_data 
*data, struct gn_statema
                return at_get_model(data, state);
        case GN_OP_GetSMSStatus:
                return at_sms_get_sms_status(data, state);
+       case GN_OP_ReadPhonebook:
+               return GN_ERR_EMPTYLOCATION;
+       case GN_OP_WritePhonebook:
+               return fake_writephonebook(data, state);
        default:
                return GN_ERR_NOTIMPLEMENTED;
        }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog            |    1 +
 common/phones/fake.c |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
libgnokii and core programs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]