diff options
-rw-r--r-- | libempathy/empathy-tp-call.c | 10 | ||||
-rw-r--r-- | src/empathy-call-window.c | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/libempathy/empathy-tp-call.c b/libempathy/empathy-tp-call.c index 4dab14a1e..1f3371eea 100644 --- a/libempathy/empathy-tp-call.c +++ b/libempathy/empathy-tp-call.c @@ -25,6 +25,7 @@ #include <telepathy-glib/proxy-subclass.h> #include <telepathy-glib/dbus.h> +#include <telepathy-glib/_gen/telepathy-interfaces.h> #include <extensions/extensions.h> @@ -61,6 +62,7 @@ enum PROP_CHANNEL, PROP_CONTACT, PROP_IS_INCOMING, + PROP_HAS_DTMF, PROP_STATUS, PROP_AUDIO_STREAM, PROP_VIDEO_STREAM @@ -571,6 +573,10 @@ tp_call_get_property (GObject *object, case PROP_IS_INCOMING: g_value_set_boolean (value, priv->is_incoming); break; + case PROP_HAS_DTMF: + g_value_set_boolean (value, tp_proxy_has_interface_by_id (priv->channel, + TP_IFACE_QUARK_CHANNEL_INTERFACE_DTMF)); + break; case PROP_STATUS: g_value_set_uint (value, priv->status); break; @@ -613,6 +619,10 @@ empathy_tp_call_class_init (EmpathyTpCallClass *klass) g_param_spec_boolean ("is-incoming", "Is media stream incoming", "Is media stream incoming", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + g_object_class_install_property (object_class, PROP_HAS_DTMF, + g_param_spec_boolean ("has-dtmf", "Has the media channel DTMF", + "Has the media channel DTMF", FALSE, G_PARAM_READABLE | + G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class, PROP_STATUS, g_param_spec_uint ("status", "Call status", "Call status", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_NICK | diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 67a3d87a8..8a33e4639 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -340,6 +340,7 @@ call_window_update (EmpathyCallWindow *window) EmpathyTpCallStream *audio_stream; EmpathyTpCallStream *video_stream; gboolean is_incoming; + gboolean has_dtmf; gchar *title; g_object_get (window->call, @@ -348,6 +349,7 @@ call_window_update (EmpathyCallWindow *window) "video-stream", &video_stream, "contact", &contact, "is-incoming", &is_incoming, + "has-dtmf", &has_dtmf, NULL); if (video_stream->state > audio_stream->state) @@ -359,6 +361,15 @@ call_window_update (EmpathyCallWindow *window) "is-incoming: %d video-stream direction: %d", window->status, stream_state, is_incoming, video_stream->direction); + if (has_dtmf) + { + gtk_widget_show (window->keypad_expander); + } + else + { + gtk_widget_hide (window->keypad_expander); + } + /* Depending on the status we have to set: * - window's title * - status's label |