Add modem properties for booleans

This commit is contained in:
Marcel Holtmann 2009-09-08 09:12:19 +02:00
parent 7b00e73caf
commit 154102e873
2 changed files with 31 additions and 0 deletions

View File

@ -26,6 +26,8 @@
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#include <ofono/types.h> #include <ofono/types.h>
struct ofono_modem; struct ofono_modem;
@ -56,6 +58,10 @@ int ofono_modem_set_integer(struct ofono_modem *modem,
const char *key, int value); const char *key, int value);
int ofono_modem_get_integer(struct ofono_modem *modem, const char *key); int ofono_modem_get_integer(struct ofono_modem *modem, const char *key);
int ofono_modem_set_boolean(struct ofono_modem *modem,
const char *key, bool value);
bool ofono_modem_get_boolean(struct ofono_modem *modem, const char *key);
struct ofono_modem_driver { struct ofono_modem_driver {
const char *name; const char *name;

View File

@ -44,6 +44,7 @@ enum ofono_property_type {
OFONO_PROPERTY_TYPE_INVALID = 0, OFONO_PROPERTY_TYPE_INVALID = 0,
OFONO_PROPERTY_TYPE_STRING, OFONO_PROPERTY_TYPE_STRING,
OFONO_PROPERTY_TYPE_INTEGER, OFONO_PROPERTY_TYPE_INTEGER,
OFONO_PROPERTY_TYPE_BOOLEAN,
}; };
struct ofono_modem { struct ofono_modem {
@ -951,6 +952,9 @@ static int set_modem_property(struct ofono_modem *modem, const char *name,
case OFONO_PROPERTY_TYPE_INTEGER: case OFONO_PROPERTY_TYPE_INTEGER:
property->value = g_memdup(value, sizeof(int)); property->value = g_memdup(value, sizeof(int));
break; break;
case OFONO_PROPERTY_TYPE_BOOLEAN:
property->value = g_memdup(value, sizeof(bool));
break;
default: default:
break; break;
} }
@ -983,6 +987,9 @@ static gboolean get_modem_property(struct ofono_modem *modem, const char *name,
case OFONO_PROPERTY_TYPE_INTEGER: case OFONO_PROPERTY_TYPE_INTEGER:
memcpy(value, property->value, sizeof(int)); memcpy(value, property->value, sizeof(int));
return TRUE; return TRUE;
case OFONO_PROPERTY_TYPE_BOOLEAN:
memcpy(value, property->value, sizeof(bool));
return TRUE;
default: default:
return FALSE; return FALSE;
} }
@ -1002,6 +1009,13 @@ int ofono_modem_set_integer(struct ofono_modem *modem,
OFONO_PROPERTY_TYPE_INTEGER, &value); OFONO_PROPERTY_TYPE_INTEGER, &value);
} }
int ofono_modem_set_boolean(struct ofono_modem *modem,
const char *key, bool value)
{
return set_modem_property(modem, key,
OFONO_PROPERTY_TYPE_BOOLEAN, &value);
}
const char *ofono_modem_get_string(struct ofono_modem *modem, const char *key) const char *ofono_modem_get_string(struct ofono_modem *modem, const char *key)
{ {
const char *value; const char *value;
@ -1024,6 +1038,17 @@ int ofono_modem_get_integer(struct ofono_modem *modem, const char *key)
return value; return value;
} }
bool ofono_modem_get_boolean(struct ofono_modem *modem, const char *key)
{
bool value;
if (get_modem_property(modem, key,
OFONO_PROPERTY_TYPE_BOOLEAN, &value) == FALSE)
return FALSE;
return value;
}
struct ofono_modem *ofono_modem_create(const char *type) struct ofono_modem *ofono_modem_create(const char *type)
{ {
struct ofono_modem *modem; struct ofono_modem *modem;