Code cleanup

This commit is contained in:
Pierre Pronchery 2010-06-03 15:35:59 +00:00
parent 304b358f9d
commit 226b07c6be
2 changed files with 35 additions and 17 deletions

View File

@ -1498,7 +1498,7 @@ static int _gsm_trigger_cmgr(GSM * gsm, char const * result)
free(p);
p = q;
}
*length = l;
gsm->event.message.length = l;
gsm->event.message.number = gsm->number; /* XXX ugly */
gsm->event.message.content = p;
_gsm_event_send(gsm, GSM_EVENT_TYPE_MESSAGE);

View File

@ -2300,6 +2300,7 @@ static void _phone_track(Phone * phone, PhoneTrack what, gboolean track)
/* callbacks */
/* phone_gsm_event */
static int _gsm_event_error(Phone * phone, GSMEvent * event);
static int _gsm_event_message(Phone * phone, GSMEvent * event);
static int _gsm_event_phone_activity(Phone * phone, GSMPhoneActivity activity);
static void _on_sim_pin_valid_response(GtkWidget * widget, gint response,
gpointer data);
@ -2308,8 +2309,6 @@ static int _phone_gsm_event(GSMEvent * event, gpointer data)
{
Phone * phone = data;
GSMRegistrationReport report;
GSMEncoding encoding;
char * content;
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s(%d)\n", __func__, event->type);
@ -2374,20 +2373,7 @@ static int _phone_gsm_event(GSMEvent * event, gpointer data)
event->incoming_message.index);
return 0;
case GSM_EVENT_TYPE_MESSAGE:
encoding = event->message.encoding;
if((content = malloc(event->message.length)) == NULL)
return 1; /* XXX report error */
memcpy(content, event->message.content,
event->message.length);
phone_event(phone, PHONE_EVENT_SMS_RECEIVING, &encoding,
&content, &event->message.length);
phone_event(phone, PHONE_EVENT_SMS_RECEIVED);
/* FIXME may be unsuitable (eg not UTF-8...) */
phone_messages_set(phone, event->message.index,
event->message.number,
event->message.date, content);
free(content);
return 0;
return _gsm_event_message(phone, event);
case GSM_EVENT_TYPE_MESSAGE_LIST:
_phone_fetch_messages(phone, event->message_list.start,
event->message_list.end);
@ -2477,6 +2463,38 @@ static int _gsm_event_error(Phone * phone, GSMEvent * event)
return 0;
}
static int _gsm_event_message(Phone * phone, GSMEvent * event)
{
GSMEncoding encoding;
char * content;
size_t length;
encoding = event->message.encoding;
length = event->message.length;
if((content = malloc(length)) == NULL)
return 1; /* XXX report error */
memcpy(content, event->message.content, length);
phone_event(phone, PHONE_EVENT_SMS_RECEIVING, &encoding, &content,
&length);
phone_event(phone, PHONE_EVENT_SMS_RECEIVED);
switch(encoding)
{
case GSM_ENCODING_UTF8:
phone_messages_set(phone, event->message.index,
event->message.number,
event->message.date, content);
break;
case GSM_ENCODING_RAW_DATA:
phone_messages_set(phone, event->message.index,
event->message.number,
event->message.date,
"Raw data (not shown)");
break;
}
free(content);
return 0;
}
static int _gsm_event_phone_activity(Phone * phone, GSMPhoneActivity activity)
{
switch(activity)