diff --git a/plugins/dummy/calls-dummy-origin.c b/plugins/dummy/calls-dummy-origin.c index b0e1b89..7367146 100644 --- a/plugins/dummy/calls-dummy-origin.c +++ b/plugins/dummy/calls-dummy-origin.c @@ -59,6 +59,7 @@ enum { PROP_CALLS, PROP_COUNTRY_CODE, + PROP_NUMERIC, PROP_LAST_PROP, }; static GParamSpec *props[PROP_LAST_PROP]; @@ -214,6 +215,10 @@ get_property (GObject *object, g_value_set_string (value, NULL); break; + case PROP_NUMERIC: + g_value_set_boolean (value, TRUE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -269,6 +274,7 @@ calls_dummy_origin_class_init (CallsDummyOriginClass *klass) IMPLEMENTS (PROP_NAME, "name"); IMPLEMENTS (PROP_CALLS, "calls"); IMPLEMENTS (PROP_COUNTRY_CODE, "country-code"); + IMPLEMENTS (PROP_NUMERIC, "numeric-addresses"); #undef IMPLEMENTS } diff --git a/plugins/mm/calls-mm-origin.c b/plugins/mm/calls-mm-origin.c index 647a4e2..5e30bb8 100644 --- a/plugins/mm/calls-mm-origin.c +++ b/plugins/mm/calls-mm-origin.c @@ -72,6 +72,7 @@ enum { PROP_CALLS, PROP_MODEM, PROP_COUNTRY_CODE, + PROP_NUMERIC, PROP_LAST_PROP, }; static GParamSpec *props[PROP_LAST_PROP]; @@ -666,6 +667,10 @@ get_property (GObject *object, g_value_set_string (value, self->country_code); break; + case PROP_NUMERIC: + g_value_set_boolean (value, TRUE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -881,6 +886,7 @@ calls_mm_origin_class_init (CallsMMOriginClass *klass) IMPLEMENTS (PROP_NAME, "name"); IMPLEMENTS (PROP_CALLS, "calls"); IMPLEMENTS (PROP_COUNTRY_CODE, "country-code"); + IMPLEMENTS (PROP_NUMERIC, "numeric-addresses"); #undef IMPLEMENTS diff --git a/plugins/ofono/calls-ofono-origin.c b/plugins/ofono/calls-ofono-origin.c index a97cfff..abfe6af 100644 --- a/plugins/ofono/calls-ofono-origin.c +++ b/plugins/ofono/calls-ofono-origin.c @@ -59,6 +59,7 @@ enum { PROP_CALLS, PROP_MODEM, PROP_COUNTRY_CODE, + PROP_NUMERIC, PROP_LAST_PROP, }; static GParamSpec *props[PROP_LAST_PROP]; @@ -176,6 +177,10 @@ get_property (GObject *object, g_value_set_string (value, NULL); break; + case PROP_NUMERIC: + g_value_set_boolean (value, TRUE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -572,6 +577,7 @@ calls_ofono_origin_class_init (CallsOfonoOriginClass *klass) IMPLEMENTS (PROP_NAME, "name"); IMPLEMENTS (PROP_CALLS, "calls"); IMPLEMENTS (PROP_COUNTRY_CODE, "country-code"); + IMPLEMENTS (PROP_NUMERIC, "numeric-addresses"); #undef IMPLEMENTS diff --git a/plugins/sip/calls-sip-origin.c b/plugins/sip/calls-sip-origin.c index ceac592..1557e77 100644 --- a/plugins/sip/calls-sip-origin.c +++ b/plugins/sip/calls-sip-origin.c @@ -73,6 +73,7 @@ enum { PROP_ACC_ADDRESS, PROP_CALLS, PROP_COUNTRY_CODE, + PROP_NUMERIC, PROP_LAST_PROP, }; static GParamSpec *props[PROP_LAST_PROP]; @@ -1184,6 +1185,10 @@ calls_sip_origin_get_property (GObject *object, g_value_set_string (value, NULL); break; + case PROP_NUMERIC: + g_value_set_boolean (value, FALSE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -1365,6 +1370,7 @@ calls_sip_origin_class_init (CallsSipOriginClass *klass) IMPLEMENTS (PROP_NAME, "name"); IMPLEMENTS (PROP_CALLS, "calls"); IMPLEMENTS (PROP_COUNTRY_CODE, "country-code"); + IMPLEMENTS (PROP_NUMERIC, "numeric-addresses"); #undef IMPLEMENTS } diff --git a/src/calls-origin.c b/src/calls-origin.c index 82bbdc6..9eb0de3 100644 --- a/src/calls-origin.c +++ b/src/calls-origin.c @@ -70,6 +70,14 @@ calls_origin_default_init (CallsOriginInterface *iface) NULL, G_PARAM_READABLE)); + g_object_interface_install_property ( + iface, + g_param_spec_boolean ("numeric-addresses", + "Numeric addresses", + "Whether this origin can only dial numeric addresses (aka numbers)", + TRUE, + G_PARAM_READABLE)); + signals[SIGNAL_CALL_ADDED] = g_signal_newv ("call-added", G_TYPE_FROM_INTERFACE (iface), @@ -113,6 +121,23 @@ DEFINE_ORIGIN_GETTER(name, char *, NULL); */ DEFINE_ORIGIN_GETTER(calls, GList *, NULL); +/** + * calls_origin_get_numeric_addresses: + * @self: a #CallsOrigin + * + * Returns: %TRUE if this origin can only dial numeric addresses (i.e. telephone numbers), + * %FALSE otherwise. + */ +gboolean +calls_origin_get_numeric_addresses (CallsOrigin *origin) +{ + gboolean numeric; + + g_return_val_if_fail (CALLS_IS_ORIGIN (origin), FALSE); + + g_object_get (origin, "numeric-addresses", &numeric, NULL); + return numeric; +} /** * calls_origin_foreach_call: diff --git a/src/calls-origin.h b/src/calls-origin.h index d237fd3..3461e84 100644 --- a/src/calls-origin.h +++ b/src/calls-origin.h @@ -52,6 +52,7 @@ typedef void (*CallsOriginForeachCallFunc) (gpointer param, CallsCall* call, Cal char * calls_origin_get_name (CallsOrigin *self); GList * calls_origin_get_calls (CallsOrigin *self); +gboolean calls_origin_get_numeric_addresses (CallsOrigin *self); void calls_origin_foreach_call (CallsOrigin *self, CallsOriginForeachCallFunc callback, gpointer param);