annotate libpurple/media/backend-iface.c @ 31757:b863432e81d1

log_reader: Properly fix the QIP crash, and unbreak the Trillian reader (c is NULL the last time through, so just quit out early then) Woah, are my eyes bleary from staring at this code.
author Paul Aurich <paul@darkrain42.org>
date Thu, 21 Jul 2011 06:10:54 +0000
parents a4ba3b194ce3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
1 /**
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
2 * @file backend-iface.c Interface for media backend
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
3 * @ingroup core
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
4 */
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
5
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
6 /* purple
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
7 *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
10 * source distribution.
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
11 *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
15 * (at your option) any later version.
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
16 *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
20 * GNU General Public License for more details.
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
21 *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
25 */
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
26
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
27 #include "backend-iface.h"
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
28
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
29 #include "marshallers.h"
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
30
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
31 enum {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
32 S_ERROR,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
33 CANDIDATES_PREPARED,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
34 CODECS_CHANGED,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
35 NEW_CANDIDATE,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
36 ACTIVE_CANDIDATE_PAIR,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
37 LAST_SIGNAL
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
38 };
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
39
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
40 static guint purple_media_backend_signals[LAST_SIGNAL] = {0};
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
41
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
42 static void
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
43 purple_media_backend_base_init(gpointer iface)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
44 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
45 static gboolean is_initialized = FALSE;
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
46
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
47 if (is_initialized)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
48 return;
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
49
29152
9f16127441e8 This is an interface and not a class.
maiku@pidgin.im
parents: 29150
diff changeset
50 g_object_interface_install_property(iface,
29150
c9845a081a3a Fix parameter to actually be a string instead of an object.
maiku@pidgin.im
parents: 29148
diff changeset
51 g_param_spec_string("conference-type",
29148
af08588c06f5 Add the conference-type property to the media backend interface.
maiku@pidgin.im
parents: 29145
diff changeset
52 "Conference Type",
af08588c06f5 Add the conference-type property to the media backend interface.
maiku@pidgin.im
parents: 29145
diff changeset
53 "The type of conference that this backend "
af08588c06f5 Add the conference-type property to the media backend interface.
maiku@pidgin.im
parents: 29145
diff changeset
54 "has been created to provide.",
29150
c9845a081a3a Fix parameter to actually be a string instead of an object.
maiku@pidgin.im
parents: 29148
diff changeset
55 NULL,
29148
af08588c06f5 Add the conference-type property to the media backend interface.
maiku@pidgin.im
parents: 29145
diff changeset
56 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
29152
9f16127441e8 This is an interface and not a class.
maiku@pidgin.im
parents: 29150
diff changeset
57 g_object_interface_install_property(iface,
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
58 g_param_spec_object("media",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
59 "Purple Media",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
60 "The media object that this backend is bound to.",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
61 PURPLE_TYPE_MEDIA,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
62 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
63
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
64 purple_media_backend_signals[S_ERROR] =
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
65 g_signal_new("error", G_TYPE_FROM_CLASS(iface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
66 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
67 g_cclosure_marshal_VOID__STRING,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
68 G_TYPE_NONE, 1, G_TYPE_STRING);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
69 purple_media_backend_signals[CANDIDATES_PREPARED] =
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
70 g_signal_new("candidates-prepared",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
71 G_TYPE_FROM_CLASS(iface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
72 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
73 purple_smarshal_VOID__STRING_STRING,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
74 G_TYPE_NONE, 2, G_TYPE_STRING,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
75 G_TYPE_STRING);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
76 purple_media_backend_signals[CODECS_CHANGED] =
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
77 g_signal_new("codecs-changed",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
78 G_TYPE_FROM_CLASS(iface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
79 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
80 g_cclosure_marshal_VOID__STRING,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
81 G_TYPE_NONE, 1, G_TYPE_STRING);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
82 purple_media_backend_signals[NEW_CANDIDATE] =
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
83 g_signal_new("new-candidate",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
84 G_TYPE_FROM_CLASS(iface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
85 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
86 purple_smarshal_VOID__POINTER_POINTER_OBJECT,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
87 G_TYPE_NONE, 3, G_TYPE_POINTER,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
88 G_TYPE_POINTER, PURPLE_TYPE_MEDIA_CANDIDATE);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
89 purple_media_backend_signals[ACTIVE_CANDIDATE_PAIR] =
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
90 g_signal_new("active-candidate-pair",
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
91 G_TYPE_FROM_CLASS(iface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
92 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
93 purple_smarshal_VOID__STRING_STRING_OBJECT_OBJECT,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
94 G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
95 PURPLE_TYPE_MEDIA_CANDIDATE,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
96 PURPLE_TYPE_MEDIA_CANDIDATE);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
97
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
98 is_initialized = TRUE;
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
99 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
100
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
101 GType
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
102 purple_media_backend_get_type(void)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
103 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
104 static GType iface_type = 0;
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
105 if (iface_type == 0) {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
106 static const GTypeInfo info = {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
107 sizeof(PurpleMediaBackendIface),
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
108 purple_media_backend_base_init,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
109 NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
110 NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
111 NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
112 NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
113 0,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
114 0,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
115 NULL,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
116 NULL
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
117 };
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
118
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
119 iface_type = g_type_register_static (G_TYPE_INTERFACE,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
120 "PurpleMediaBackend", &info, 0);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
121 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
122
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
123 return iface_type;
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
124 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
125
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
126 gboolean
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
127 purple_media_backend_add_stream(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
128 const gchar *sess_id, const gchar *who,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
129 PurpleMediaSessionType type, gboolean initiator,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
130 const gchar *transmitter,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
131 guint num_params, GParameter *params)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
132 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
133 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), FALSE);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
134 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->add_stream(self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
135 sess_id, who, type, initiator, transmitter,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
136 num_params, params);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
137 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
138
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
139 void
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
140 purple_media_backend_add_remote_candidates(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
141 const gchar *sess_id, const gchar *participant,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
142 GList *remote_candidates)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
143 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
144 g_return_if_fail(PURPLE_IS_MEDIA_BACKEND(self));
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
145 PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->add_remote_candidates(self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
146 sess_id, participant, remote_candidates);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
147 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
148
29187
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
149 gboolean
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
150 purple_media_backend_codecs_ready(PurpleMediaBackend *self,
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
151 const gchar *sess_id)
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
152 {
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
153 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), FALSE);
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
154 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->codecs_ready(self,
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
155 sess_id);
f351e87b7af0 Add codecs_ready to the media backend interface.
maiku@pidgin.im
parents: 29180
diff changeset
156 }
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
157
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
158 GList *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
159 purple_media_backend_get_codecs(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
160 const gchar *sess_id)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
161 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
162 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), NULL);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
163 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->get_codecs(self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
164 sess_id);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
165 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
166
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
167 GList *
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
168 purple_media_backend_get_local_candidates(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
169 const gchar *sess_id, const gchar *participant)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
170 {
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
171 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), NULL);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
172 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
173 get_local_candidates(self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
174 sess_id, participant);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
175 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
176
29178
a7cad99144f0 Make the backend interface's set_remote_codecs function return gboolean.
maiku@pidgin.im
parents: 29152
diff changeset
177 gboolean
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
178 purple_media_backend_set_remote_codecs(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
179 const gchar *sess_id, const gchar *participant,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
180 GList *codecs)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
181 {
29178
a7cad99144f0 Make the backend interface's set_remote_codecs function return gboolean.
maiku@pidgin.im
parents: 29152
diff changeset
182 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), FALSE);
a7cad99144f0 Make the backend interface's set_remote_codecs function return gboolean.
maiku@pidgin.im
parents: 29152
diff changeset
183 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->set_remote_codecs(
a7cad99144f0 Make the backend interface's set_remote_codecs function return gboolean.
maiku@pidgin.im
parents: 29152
diff changeset
184 self, sess_id, participant, codecs);
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
185 }
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
186
29180
90c48f1e479a Change the media backend interface's set_send_codec to return gboolean to
maiku@pidgin.im
parents: 29178
diff changeset
187 gboolean
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
188 purple_media_backend_set_send_codec(PurpleMediaBackend *self,
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
189 const gchar *sess_id, PurpleMediaCodec *codec)
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
190 {
29180
90c48f1e479a Change the media backend interface's set_send_codec to return gboolean to
maiku@pidgin.im
parents: 29178
diff changeset
191 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), FALSE);
90c48f1e479a Change the media backend interface's set_send_codec to return gboolean to
maiku@pidgin.im
parents: 29178
diff changeset
192 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->set_send_codec(self,
29145
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
193 sess_id, codec);
0ae9306de1f6 Add a media backend interface to handle different backends in addition to
maiku@pidgin.im
parents:
diff changeset
194 }
31517
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
195
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
196 void
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
197 purple_media_backend_set_params(PurpleMediaBackend *self,
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
198 guint num_params, GParameter *params)
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
199 {
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
200 g_return_if_fail(PURPLE_IS_MEDIA_BACKEND(self));
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
201 PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->set_params(self, num_params, params);
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
202 }
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
203
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
204 const gchar **
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
205 purple_media_backend_get_available_params(PurpleMediaBackend *self)
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
206 {
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
207 static const gchar *NULL_ARRAY[] = { NULL };
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
208
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
209 g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND(self), NULL_ARRAY);
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
210 return PURPLE_MEDIA_BACKEND_GET_INTERFACE(self)->get_available_params();
a4ba3b194ce3 media: Allow setting SDES properties of RTP conferences. Fixes #12981.
jakub.adam@ktknet.cz
parents: 29187
diff changeset
211 }