summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo.moya@collabora.co.uk>2013-08-06 13:29:50 +0200
committerJonny Lamb <jonny.lamb@collabora.co.uk>2013-08-07 14:53:16 +0200
commitc751695c14d3508bb7aab190bb429ef44913a726 (patch)
treea8581fc883bb36f75dfb8a0c3c883554ed9b999f
parent7d8ddd7916a6c99ac17e8cc360e18d48d358b409 (diff)
Add skeletons for TpBaseCallChannel's method implementations
-rw-r--r--src/ring-call-channel.c66
1 files changed, 52 insertions, 14 deletions
diff --git a/src/ring-call-channel.c b/src/ring-call-channel.c
index b6bb9e2..d7ed8fc 100644
--- a/src/ring-call-channel.c
+++ b/src/ring-call-channel.c
@@ -207,8 +207,7 @@ static void ring_call_channel_update_state(RingMediaChannel *_self,
guint state, guint causetype, guint cause);
static void ring_call_channel_play_error_tone(RingCallChannel *self,
guint state, guint causetype, guint cause);
-static gboolean ring_call_channel_close(RingMediaChannel *_self,
- gboolean immediately);
+static void ring_call_channel_close(TpBaseChannel *self);
static void ring_call_channel_set_call_instance(RingCallChannel *_self,
ModemCall *ci);
static gboolean ring_call_channel_validate_media_handle (gpointer _self,
@@ -479,6 +478,44 @@ ring_call_channel_finalize(GObject *object)
DEBUG("exit");
}
+static GPtrArray *
+ring_call_channel_get_interfaces (TpBaseChannel *self)
+{
+ GPtrArray *interfaces;
+ gint i;
+
+ interfaces = TP_BASE_CHANNEL_CLASS (ring_call_channel_parent_class)->get_interfaces (self);
+
+ for (i = 0; i < G_N_ELEMENTS (ring_call_channel_interfaces); i++) {
+ g_ptr_array_add (interfaces, (gpointer) ring_call_channel_interfaces[i]);
+ }
+
+ return interfaces;
+}
+
+static void
+ring_call_channel_accept (TpBaseCallChannel *self)
+{
+}
+
+static TpBaseCallContent *
+ring_call_channel_add_content (TpBaseCallChannel *self,
+ const gchar *name,
+ TpMediaStreamType media,
+ TpMediaStreamDirection initial_direction,
+ GError **error)
+{
+ return NULL; /* FIXME */
+}
+
+static void
+ring_call_channel_hangup (TpBaseCallChannel *self,
+ TpCallStateChangeReason reason,
+ const gchar *detailed_reason,
+ const gchar *message)
+{
+}
+
/* ====================================================================== */
/* GObjectClass */
@@ -487,6 +524,7 @@ ring_call_channel_class_init(RingCallChannelClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
TpBaseChannelClass *base_chan_class = TP_BASE_CHANNEL_CLASS (klass);
+ TpBaseCallChannelClass *base_call_class = TP_BASE_CALL_CHANNEL_CLASS (klass);
g_type_class_add_private(klass, sizeof (RingCallChannelPrivate));
@@ -496,10 +534,15 @@ ring_call_channel_class_init(RingCallChannelClass *klass)
object_class->dispose = ring_call_channel_dispose;
object_class->finalize = ring_call_channel_finalize;
- base_chan_class->interfaces = ring_call_channel_interfaces;
base_chan_class->target_handle_type = TP_HANDLE_TYPE_CONTACT;
+ base_chan_class->get_interfaces = ring_call_channel_get_interfaces;
+ base_chan_class->close = ring_call_channel_close;
base_chan_class->fill_immutable_properties = ring_call_channel_fill_immutable_properties;
+ base_call_class->accept = ring_call_channel_accept;
+ base_call_class->add_content = ring_call_channel_add_content;
+ base_call_class->hangup = ring_call_channel_hangup;
+
klass->dbus_properties_class.interfaces =
ring_call_channel_dbus_property_interfaces;
tp_dbus_properties_mixin_class_init(object_class,
@@ -664,8 +707,8 @@ ring_call_channel_fill_immutable_properties(TpBaseChannel *base,
static ModemRequest *ring_call_channel_create(RingCallChannel *, GError **error);
/** Close channel */
-static gboolean
-ring_call_channel_close(RingMediaChannel *_self, gboolean immediately)
+static void
+ring_call_channel_close(TpBaseChannel *_self)
{
RingCallChannel *self = RING_CALL_CHANNEL(_self);
RingCallChannelPrivate *priv = RING_CALL_CHANNEL(self)->priv;
@@ -689,17 +732,12 @@ ring_call_channel_close(RingMediaChannel *_self, gboolean immediately)
if (!priv->release.message)
priv->release.message = g_strdup("Channel closed");
modem_call_request_release(self->call_instance, NULL, NULL);
- return immediately;
+ return;
}
else if (priv->creating_call) {
- if (immediately) {
- modem_request_cancel(priv->creating_call);
- priv->creating_call = NULL;
- g_object_unref(self);
- }
- else if (!priv->release.message)
- priv->release.message = g_strdup("Channel closed");
- return immediately;
+ modem_request_cancel(priv->creating_call);
+ priv->creating_call = NULL;
+ g_object_unref(self);
}
return TRUE;