summaryrefslogtreecommitdiffstats
path: root/gatchat/gatserver.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-31 08:22:40 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-03-31 08:22:40 -0500
commit2ec19b67a2039e5bd8183c9d1ba689908f18e760 (patch)
tree23125bf6de62dd80c034c16e7babed7d02726ac6 /gatchat/gatserver.c
parentb046142044e8f2729713f56c20aeb8c4a8ab4e21 (diff)
downloadofono-2ec19b67a2039e5bd8183c9d1ba689908f18e760.tar.bz2
Refactor: Simplify gatserver s-register functions
Diffstat (limited to 'gatchat/gatserver.c')
-rw-r--r--gatchat/gatserver.c68
1 files changed, 16 insertions, 52 deletions
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c
index a47d46c3..983bd62d 100644
--- a/gatchat/gatserver.c
+++ b/gatchat/gatserver.c
@@ -281,67 +281,28 @@ static gboolean get_result_value(GAtServer *server, GAtResult *result,
return TRUE;
}
-static void set_s_value(GAtServer *server, const char *prefix, int val)
-{
- switch (prefix[1]) {
- case '3':
- server->v250.s3 = val;
- break;
- case '4':
- server->v250.s4 = val;
- break;
- case '5':
- server->v250.s5 = val;
- break;
- default:
- break;
- }
-}
-
-static int get_s_value(GAtServer *server, const char *prefix)
-{
- int val = 0;
-
- switch (prefix[1]) {
- case '3':
- val = server->v250.s3;
- break;
- case '4':
- val = server->v250.s4;
- break;
- case '5':
- val = server->v250.s5;
- break;
- default:
- break;
- }
-
- return val;
-}
-
static void s_template_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data, const char *prefix,
- int min, int max)
+ GAtServer *server, char *sreg,
+ const char *prefix, int min, int max)
{
- GAtServer *server = user_data;
char buf[20];
- int val;
+ int tmp;
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
- if (!get_result_value(server, result, prefix, min, max, &val)) {
+ if (!get_result_value(server, result, prefix, min, max, &tmp)) {
g_at_server_send_final(server,
G_AT_SERVER_RESULT_ERROR);
return;
}
- set_s_value(server, prefix, val);
+ *sreg = tmp;
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
break;
case G_AT_SERVER_REQUEST_TYPE_QUERY:
- val = get_s_value(server, prefix);
- sprintf(buf, "%03d", val);
+ tmp = *sreg;
+ sprintf(buf, "%03d", tmp);
g_at_server_send_info(server, buf, TRUE);
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
break;
@@ -359,21 +320,24 @@ static void s_template_cb(GAtServerRequestType type, GAtResult *result,
}
static void at_s3_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+ gpointer user_data)
{
- s_template_cb(type, result, user_data, "S3", 0, 127);
+ GAtServer *server = user_data;
+ s_template_cb(type, result, server, &server->v250.s3, "S3", 0, 127);
}
static void at_s4_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+ gpointer user_data)
{
- s_template_cb(type, result, user_data, "S4", 0, 127);
+ GAtServer *server = user_data;
+ s_template_cb(type, result, server, &server->v250.s4, "S4", 0, 127);
}
static void at_s5_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+ gpointer user_data)
{
- s_template_cb(type, result, user_data, "S5", 0, 127);
+ GAtServer *server = user_data;
+ s_template_cb(type, result, server, &server->v250.s5, "S5", 0, 127);
}
static void set_v250_value(GAtServer *server, const char *prefix, int val)