All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH 3/4] Add alphabet support to SMS atom
Date: Thu, 02 Sep 2010 12:00:43 -0500	[thread overview]
Message-ID: <4C7FD83B.8060207@gmail.com> (raw)
In-Reply-To: <1283413960-31490-3-git-send-email-aki.niemi@nokia.com>

[-- Attachment #1: Type: text/plain, Size: 5342 bytes --]

Hi Aki,

On 09/02/2010 02:52 AM, Aki Niemi wrote:
> ---
>  src/sms.c |   87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 85 insertions(+), 2 deletions(-)
> 
> diff --git a/src/sms.c b/src/sms.c
> index 2012fe5..8262d0c 100644
> --- a/src/sms.c
> +++ b/src/sms.c
> @@ -65,6 +65,7 @@ struct ofono_sms {
>  	GKeyFile *settings;
>  	char *imsi;
>  	int bearer;
> +	int alphabet;

You might want to use the enum here

>  	const struct ofono_sms_driver *driver;
>  	void *driver_data;
>  	struct ofono_atom *atom;
> @@ -121,6 +122,39 @@ static int sms_bearer_from_string(const char *str)
>  	return -1;
>  }
>  
> +static const char *sms_alphabet_to_string(int alphabet)
> +{
> +	switch (alphabet) {
> +	case SMS_ALPHABET_TURKISH:
> +		return "turkish";
> +	case SMS_ALPHABET_SPANISH:
> +		return "spanish";
> +	case SMS_ALPHABET_PORTUGUESE:
> +		return "portuguese";
> +	case SMS_ALPHABET_REDUCED:
> +		return "reduced";
> +	case SMS_ALPHABET_DEFAULT:
> +	default:
> +		return "default";
> +	}

I suggest dropping the default label and returning NULL here.

> +}
> +
> +static int sms_alphabet_from_string(const char *str)
> +{
> +	if (g_str_equal(str, "default"))
> +		return SMS_ALPHABET_DEFAULT;
> +	else if (g_str_equal(str, "turkish"))
> +		return SMS_ALPHABET_TURKISH;
> +	else if (g_str_equal(str, "spanish"))
> +		return SMS_ALPHABET_SPANISH;
> +	else if (g_str_equal(str, "portuguese"))
> +		return SMS_ALPHABET_PORTUGUESE;
> +	else if (g_str_equal(str, "reduced"))
> +		return SMS_ALPHABET_REDUCED;
> +
> +	return -1;
> +}
> +

You might want to do:
static gboolean sms_alphabet_from_string(const char *str,
						enum *alphabet)

>  static void set_bearer(struct ofono_sms *sms, int bearer)
>  {
>  	DBusConnection *conn = ofono_dbus_get_connection();
> @@ -140,6 +174,25 @@ static void set_bearer(struct ofono_sms *sms, int bearer)
>  						DBUS_TYPE_STRING, &value);
>  }
>  
> +static void set_alphabet(struct ofono_sms *sms, int alphabet)
> +{
> +	DBusConnection *conn = ofono_dbus_get_connection();
> +	const char *path = __ofono_atom_get_path(sms->atom);
> +	const char *value;
> +
> +	if (sms->alphabet == alphabet)
> +		return;
> +
> +	sms->alphabet = alphabet;
> +
> +	value = sms_alphabet_to_string(sms->alphabet);
> +
> +	ofono_dbus_signal_property_changed(conn, path,
> +						OFONO_MESSAGE_MANAGER_INTERFACE,
> +						"Alphabet",
> +						DBUS_TYPE_STRING, &value);
> +}
> +
>  static void set_sca(struct ofono_sms *sms,
>  			const struct ofono_phone_number *sca)
>  {
> @@ -171,6 +224,7 @@ static DBusMessage *generate_get_properties_reply(struct ofono_sms *sms,
>  	DBusMessageIter dict;
>  	const char *sca;
>  	const char *bearer;
> +	const char *alphabet;
>  
>  	reply = dbus_message_new_method_return(msg);
>  
> @@ -194,6 +248,9 @@ static DBusMessage *generate_get_properties_reply(struct ofono_sms *sms,
>  	bearer = sms_bearer_to_string(sms->bearer);
>  	ofono_dbus_dict_append(&dict, "Bearer", DBUS_TYPE_STRING, &bearer);
>  
> +	alphabet = sms_alphabet_to_string(sms->alphabet);
> +	ofono_dbus_dict_append(&dict, "Alphabet", DBUS_TYPE_STRING, &alphabet);
> +
>  	dbus_message_iter_close_container(&iter, &dict);
>  
>  	return reply;
> @@ -403,6 +460,25 @@ static DBusMessage *sms_set_property(DBusConnection *conn, DBusMessage *msg,
>  		return NULL;
>  	}
>  
> +	if (!strcmp(property, "Alphabet")) {
> +		const char *value;
> +		int alphabet;
> +
> +		if (dbus_message_iter_get_arg_type(&var) != DBUS_TYPE_STRING)
> +			return __ofono_error_invalid_args(msg);
> +
> +		dbus_message_iter_get_basic(&var, &value);
> +
> +		alphabet = sms_alphabet_from_string(value);
> +		if (alphabet < 0)
> +			return __ofono_error_invalid_format(msg);
> +
> +		set_alphabet(sms, alphabet);
> +
> +		g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);
> +		return NULL;
> +	}
> +
>  	return __ofono_error_invalid_args(msg);
>  }
>  
> @@ -620,8 +696,10 @@ static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg,
>  	if (valid_phone_number_format(to) == FALSE)
>  		return __ofono_error_invalid_format(msg);
>  
> -	msg_list = sms_text_prepare(text, 0, TRUE, &ref_offset,
> -					sms->use_delivery_reports);
> +	msg_list = sms_text_prepare_with_alphabet(text, 0, TRUE,
> +						&ref_offset,
> +						sms->use_delivery_reports,
> +						sms->alphabet);
>  
>  	if (!msg_list)
>  		return __ofono_error_invalid_format(msg);
> @@ -1146,6 +1224,8 @@ static void sms_remove(struct ofono_atom *atom)
>  					sms->use_delivery_reports);
>  		g_key_file_set_integer(sms->settings, SETTINGS_GROUP,
>  					"Bearer", sms->bearer);
> +		g_key_file_set_integer(sms->settings, SETTINGS_GROUP,
> +					"Alphabet", sms->alphabet);
>  
>  		storage_close(sms->imsi, SETTINGS_STORE, sms->settings, TRUE);
>  
> @@ -1251,6 +1331,9 @@ static void sms_load_settings(struct ofono_sms *sms, const char *imsi)
>  							"Bearer", &error);
>  	if (error)
>  		sms->bearer = 3; /* Default to CS then PS */
> +
> +	sms->alphabet = g_key_file_get_integer(sms->settings, SETTINGS_GROUP,
> +						"Alphabet", &error);
>  }
>  
>  static void bearer_init_callback(const struct ofono_error *error, void *data)

Regards,
-Denis

  reply	other threads:[~2010-09-02 17:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-02  7:52 [PATCH 1/4] Add so called reduced charset support to SMS Aki Niemi
2010-09-02  7:52 ` [PATCH 2/4] Enable alphabets in smsutils Aki Niemi
2010-09-02 16:55   ` Denis Kenzior
2010-09-03 12:15     ` Aki Niemi
2010-09-03 14:05       ` Denis Kenzior
2010-09-03 14:12         ` Aki Niemi
2010-09-03 14:40   ` Pekka Pessi
2010-09-03 15:08     ` Denis Kenzior
2010-09-03 17:09     ` Aki Niemi
2010-09-02  7:52 ` [PATCH 3/4] Add alphabet support to SMS atom Aki Niemi
2010-09-02 17:00   ` Denis Kenzior [this message]
2010-09-02  7:52 ` [PATCH 4/4] Add documentation for the Alphabet property Aki Niemi
2010-09-02 17:01   ` Denis Kenzior
2010-09-02 18:19     ` Marcel Holtmann
2010-09-02 19:08       ` Aki Niemi
2010-09-02 16:43 ` [PATCH 1/4] Add so called reduced charset support to SMS Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C7FD83B.8060207@gmail.com \
    --to=denkenz@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.