|
zacw@1759
|
1 |
/** |
|
zacw@1759
|
2 |
* @file media.h Media API |
|
zacw@1759
|
3 |
* @ingroup core |
|
zacw@1759
|
4 |
*/ |
|
zacw@1759
|
5 |
|
|
zacw@1759
|
6 |
/* purple |
|
zacw@1759
|
7 |
* |
|
zacw@1759
|
8 |
* Purple is the legal property of its developers, whose names are too numerous |
|
zacw@1759
|
9 |
* to list here. Please refer to the COPYRIGHT file distributed with this |
|
zacw@1759
|
10 |
* source distribution. |
|
zacw@1759
|
11 |
* |
|
zacw@1759
|
12 |
* This program is free software; you can redistribute it and/or modify |
|
zacw@1759
|
13 |
* it under the terms of the GNU General Public License as published by |
|
zacw@1759
|
14 |
* the Free Software Foundation; either version 2 of the License, or |
|
zacw@1759
|
15 |
* (at your option) any later version. |
|
zacw@1759
|
16 |
* |
|
zacw@1759
|
17 |
* This program is distributed in the hope that it will be useful, |
|
zacw@1759
|
18 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
zacw@1759
|
19 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
zacw@1759
|
20 |
* GNU General Public License for more details. |
|
zacw@1759
|
21 |
* |
|
zacw@1759
|
22 |
* You should have received a copy of the GNU General Public License |
|
zacw@1759
|
23 |
* along with this program; if not, write to the Free Software |
|
zacw@1759
|
24 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
zacw@1759
|
25 |
*/ |
|
zacw@1759
|
26 |
|
|
zacw@1759
|
27 |
#ifndef _PURPLE_MEDIA_H_ |
|
zacw@1759
|
28 |
#define _PURPLE_MEDIA_H_ |
|
zacw@1759
|
29 |
|
|
zacw@1759
|
30 |
#include <glib.h> |
|
zacw@1759
|
31 |
#include <glib-object.h> |
|
zacw@1759
|
32 |
|
|
zacw@1759
|
33 |
G_BEGIN_DECLS |
|
zacw@1759
|
34 |
|
|
zacw@1759
|
35 |
#define PURPLE_TYPE_MEDIA_CANDIDATE (purple_media_candidate_get_type()) |
|
zacw@1759
|
36 |
#define PURPLE_MEDIA_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate)) |
|
zacw@1759
|
37 |
#define PURPLE_MEDIA_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate)) |
|
zacw@1759
|
38 |
#define PURPLE_IS_MEDIA_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_CANDIDATE)) |
|
zacw@1759
|
39 |
#define PURPLE_IS_MEDIA_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_CANDIDATE)) |
|
zacw@1759
|
40 |
#define PURPLE_MEDIA_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate)) |
|
zacw@1759
|
41 |
|
|
zacw@1759
|
42 |
#define PURPLE_TYPE_MEDIA_CODEC (purple_media_codec_get_type()) |
|
zacw@1759
|
43 |
#define PURPLE_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec)) |
|
zacw@1759
|
44 |
#define PURPLE_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec)) |
|
zacw@1759
|
45 |
#define PURPLE_IS_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_CODEC)) |
|
zacw@1759
|
46 |
#define PURPLE_IS_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_CODEC)) |
|
zacw@1759
|
47 |
#define PURPLE_MEDIA_CODEC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec)) |
|
zacw@1759
|
48 |
|
|
zacw@1759
|
49 |
#define PURPLE_TYPE_MEDIA_SESSION_TYPE (purple_media_session_type_get_type()) |
|
zacw@1759
|
50 |
#define PURPLE_TYPE_MEDIA (purple_media_get_type()) |
|
zacw@1759
|
51 |
#define PURPLE_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA, PurpleMedia)) |
|
zacw@1759
|
52 |
#define PURPLE_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA, PurpleMediaClass)) |
|
zacw@1759
|
53 |
#define PURPLE_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA)) |
|
zacw@1759
|
54 |
#define PURPLE_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA)) |
|
zacw@1759
|
55 |
#define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass)) |
|
zacw@1759
|
56 |
|
|
zacw@1759
|
57 |
#define PURPLE_TYPE_MEDIA_CANDIDATE_TYPE (purple_media_candidate_type_get_type()) |
|
zacw@1759
|
58 |
#define PURPLE_TYPE_MEDIA_NETWORK_PROTOCOL (purple_media_network_protocol_get_type()) |
|
zacw@1759
|
59 |
#define PURPLE_MEDIA_TYPE_STATE (purple_media_state_changed_get_type()) |
|
zacw@1759
|
60 |
#define PURPLE_MEDIA_TYPE_INFO_TYPE (purple_media_info_type_get_type()) |
|
zacw@1759
|
61 |
|
|
zacw@1759
|
62 |
/** @copydoc _PurpleMedia */ |
|
zacw@1759
|
63 |
typedef struct _PurpleMedia PurpleMedia; |
|
zacw@1759
|
64 |
/** @copydoc _PurpleMediaCandidate */ |
|
zacw@1759
|
65 |
typedef struct _PurpleMediaCandidate PurpleMediaCandidate; |
|
zacw@1759
|
66 |
/** @copydoc _PurpleMediaCodec */ |
|
zacw@1759
|
67 |
typedef struct _PurpleMediaCodec PurpleMediaCodec; |
|
zacw@1759
|
68 |
|
|
zacw@1759
|
69 |
/** Media caps */ |
|
zacw@1759
|
70 |
typedef enum { |
|
zacw@1759
|
71 |
PURPLE_MEDIA_CAPS_NONE = 0, |
|
zacw@1759
|
72 |
PURPLE_MEDIA_CAPS_AUDIO = 1, |
|
zacw@1759
|
73 |
PURPLE_MEDIA_CAPS_AUDIO_SINGLE_DIRECTION = 1 << 1, |
|
zacw@1759
|
74 |
PURPLE_MEDIA_CAPS_VIDEO = 1 << 2, |
|
zacw@1759
|
75 |
PURPLE_MEDIA_CAPS_VIDEO_SINGLE_DIRECTION = 1 << 3, |
|
zacw@1759
|
76 |
PURPLE_MEDIA_CAPS_AUDIO_VIDEO = 1 << 4, |
|
zacw@1759
|
77 |
PURPLE_MEDIA_CAPS_MODIFY_SESSION = 1 << 5, |
|
zacw@1759
|
78 |
PURPLE_MEDIA_CAPS_CHANGE_DIRECTION = 1 << 6, |
|
zacw@1759
|
79 |
} PurpleMediaCaps; |
|
zacw@1759
|
80 |
|
|
zacw@1759
|
81 |
/** Media session types */ |
|
zacw@1759
|
82 |
typedef enum { |
|
zacw@1759
|
83 |
PURPLE_MEDIA_NONE = 0, |
|
zacw@1759
|
84 |
PURPLE_MEDIA_RECV_AUDIO = 1 << 0, |
|
zacw@1759
|
85 |
PURPLE_MEDIA_SEND_AUDIO = 1 << 1, |
|
zacw@1759
|
86 |
PURPLE_MEDIA_RECV_VIDEO = 1 << 2, |
|
zacw@1759
|
87 |
PURPLE_MEDIA_SEND_VIDEO = 1 << 3, |
|
zacw@1759
|
88 |
PURPLE_MEDIA_AUDIO = PURPLE_MEDIA_RECV_AUDIO | PURPLE_MEDIA_SEND_AUDIO, |
|
zacw@1759
|
89 |
PURPLE_MEDIA_VIDEO = PURPLE_MEDIA_RECV_VIDEO | PURPLE_MEDIA_SEND_VIDEO |
|
zacw@1759
|
90 |
} PurpleMediaSessionType; |
|
zacw@1759
|
91 |
|
|
zacw@1759
|
92 |
/** Media state-changed types */ |
|
zacw@1759
|
93 |
typedef enum { |
|
zacw@1759
|
94 |
PURPLE_MEDIA_STATE_NEW = 0, |
|
zacw@1759
|
95 |
PURPLE_MEDIA_STATE_CONNECTED, |
|
zacw@1759
|
96 |
PURPLE_MEDIA_STATE_END, |
|
zacw@1759
|
97 |
} PurpleMediaState; |
|
zacw@1759
|
98 |
|
|
zacw@1759
|
99 |
/** Media info types */ |
|
zacw@1759
|
100 |
typedef enum { |
|
zacw@1759
|
101 |
PURPLE_MEDIA_INFO_HANGUP = 0, |
|
zacw@1759
|
102 |
PURPLE_MEDIA_INFO_ACCEPT, |
|
zacw@1759
|
103 |
PURPLE_MEDIA_INFO_REJECT, |
|
zacw@1759
|
104 |
PURPLE_MEDIA_INFO_MUTE, |
|
zacw@1759
|
105 |
PURPLE_MEDIA_INFO_UNMUTE, |
|
zacw@2592
|
106 |
PURPLE_MEDIA_INFO_PAUSE, |
|
zacw@2592
|
107 |
PURPLE_MEDIA_INFO_UNPAUSE, |
|
zacw@1759
|
108 |
PURPLE_MEDIA_INFO_HOLD, |
|
zacw@1759
|
109 |
PURPLE_MEDIA_INFO_UNHOLD, |
|
zacw@1759
|
110 |
} PurpleMediaInfoType; |
|
zacw@1759
|
111 |
|
|
zacw@1759
|
112 |
typedef enum { |
|
zacw@1759
|
113 |
PURPLE_MEDIA_CANDIDATE_TYPE_HOST, |
|
zacw@1759
|
114 |
PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX, |
|
zacw@1759
|
115 |
PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX, |
|
zacw@1759
|
116 |
PURPLE_MEDIA_CANDIDATE_TYPE_RELAY, |
|
zacw@1759
|
117 |
PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST, |
|
zacw@1759
|
118 |
} PurpleMediaCandidateType; |
|
zacw@1759
|
119 |
|
|
zacw@1759
|
120 |
typedef enum { |
|
zacw@1759
|
121 |
PURPLE_MEDIA_COMPONENT_NONE = 0, |
|
zacw@1759
|
122 |
PURPLE_MEDIA_COMPONENT_RTP = 1, |
|
zacw@1759
|
123 |
PURPLE_MEDIA_COMPONENT_RTCP = 2, |
|
zacw@1759
|
124 |
} PurpleMediaComponentType; |
|
zacw@1759
|
125 |
|
|
zacw@1759
|
126 |
typedef enum { |
|
zacw@1759
|
127 |
PURPLE_MEDIA_NETWORK_PROTOCOL_UDP, |
|
zacw@1759
|
128 |
PURPLE_MEDIA_NETWORK_PROTOCOL_TCP, |
|
zacw@1759
|
129 |
} PurpleMediaNetworkProtocol; |
|
zacw@1759
|
130 |
|
|
zacw@1759
|
131 |
#include "signals.h" |
|
zacw@1759
|
132 |
#include "util.h" |
|
zacw@1759
|
133 |
|
|
zacw@1759
|
134 |
#ifdef __cplusplus |
|
zacw@1759
|
135 |
extern "C" { |
|
zacw@1759
|
136 |
#endif |
|
zacw@1759
|
137 |
|
|
zacw@1759
|
138 |
/** |
|
zacw@1759
|
139 |
* Gets the media session type's GType |
|
zacw@1759
|
140 |
* |
|
zacw@1759
|
141 |
* @return The media session type's GType. |
|
zacw@1759
|
142 |
* |
|
zacw@1759
|
143 |
* @since 2.6.0 |
|
zacw@1759
|
144 |
*/ |
|
zacw@1759
|
145 |
GType purple_media_session_type_get_type(void); |
|
zacw@1759
|
146 |
|
|
zacw@1759
|
147 |
/** |
|
zacw@1759
|
148 |
* Gets the media candidate type's GType |
|
zacw@1759
|
149 |
* |
|
zacw@1759
|
150 |
* @return The media candidate type's GType. |
|
zacw@1759
|
151 |
* |
|
zacw@1759
|
152 |
* @since 2.6.0 |
|
zacw@1759
|
153 |
*/ |
|
zacw@1759
|
154 |
GType purple_media_candidate_type_get_type(void); |
|
zacw@1759
|
155 |
|
|
zacw@1759
|
156 |
/** |
|
zacw@1759
|
157 |
* Gets the media network protocol's GType |
|
zacw@1759
|
158 |
* |
|
zacw@1759
|
159 |
* @return The media network protocol's GType. |
|
zacw@1759
|
160 |
* |
|
zacw@1759
|
161 |
* @since 2.6.0 |
|
zacw@1759
|
162 |
*/ |
|
zacw@1759
|
163 |
GType purple_media_network_protocol_get_type(void); |
|
zacw@1759
|
164 |
|
|
zacw@1759
|
165 |
/** |
|
zacw@1759
|
166 |
* Gets the media class's GType |
|
zacw@1759
|
167 |
* |
|
zacw@1759
|
168 |
* @return The media class's GType. |
|
zacw@1759
|
169 |
* |
|
zacw@1759
|
170 |
* @since 2.6.0 |
|
zacw@1759
|
171 |
*/ |
|
zacw@1759
|
172 |
GType purple_media_get_type(void); |
|
zacw@1759
|
173 |
|
|
zacw@1759
|
174 |
/** |
|
zacw@1759
|
175 |
* Gets the type of the state-changed enum |
|
zacw@1759
|
176 |
* |
|
zacw@1759
|
177 |
* @return The state-changed enum's GType |
|
zacw@1759
|
178 |
* |
|
zacw@1759
|
179 |
* @since 2.6.0 |
|
zacw@1759
|
180 |
*/ |
|
zacw@1759
|
181 |
GType purple_media_state_changed_get_type(void); |
|
zacw@1759
|
182 |
|
|
zacw@1759
|
183 |
/** |
|
zacw@1759
|
184 |
* Gets the type of the info type enum |
|
zacw@1759
|
185 |
* |
|
zacw@1759
|
186 |
* @return The info type enum's GType |
|
zacw@1759
|
187 |
* |
|
zacw@1759
|
188 |
* @since 2.6.0 |
|
zacw@1759
|
189 |
*/ |
|
zacw@1759
|
190 |
GType purple_media_info_type_get_type(void); |
|
zacw@1759
|
191 |
|
|
zacw@1759
|
192 |
/** |
|
zacw@1759
|
193 |
* Gets the type of the media candidate structure. |
|
zacw@1759
|
194 |
* |
|
zacw@1759
|
195 |
* @return The media canditate's GType |
|
zacw@1759
|
196 |
* |
|
zacw@1759
|
197 |
* @since 2.6.0 |
|
zacw@1759
|
198 |
*/ |
|
zacw@1759
|
199 |
GType purple_media_candidate_get_type(void); |
|
zacw@1759
|
200 |
|
|
zacw@1759
|
201 |
/** |
|
zacw@1759
|
202 |
* Creates a PurpleMediaCandidate instance. |
|
zacw@1759
|
203 |
* |
|
zacw@1759
|
204 |
* @param foundation The foundation of the candidate. |
|
zacw@1759
|
205 |
* @param component_id The component this candidate is for. |
|
zacw@1759
|
206 |
* @param type The type of candidate. |
|
zacw@1759
|
207 |
* @param proto The protocol this component is for. |
|
zacw@1759
|
208 |
* @param ip The IP address of this component. |
|
zacw@1759
|
209 |
* @param port The network port. |
|
zacw@1759
|
210 |
* |
|
zacw@1759
|
211 |
* @return The newly created PurpleMediaCandidate instance. |
|
zacw@1759
|
212 |
* |
|
zacw@1759
|
213 |
* @since 2.6.0 |
|
zacw@1759
|
214 |
*/ |
|
zacw@1759
|
215 |
PurpleMediaCandidate *purple_media_candidate_new( |
|
zacw@1759
|
216 |
const gchar *foundation, guint component_id, |
|
zacw@1759
|
217 |
PurpleMediaCandidateType type, |
|
zacw@1759
|
218 |
PurpleMediaNetworkProtocol proto, |
|
zacw@1759
|
219 |
const gchar *ip, guint port); |
|
zacw@1759
|
220 |
|
|
zacw@1759
|
221 |
/** |
|
zacw@1759
|
222 |
* Copies a GList of PurpleMediaCandidate and its contents. |
|
zacw@1759
|
223 |
* |
|
zacw@1759
|
224 |
* @param candidates The list of candidates to be copied. |
|
zacw@1759
|
225 |
* |
|
zacw@1759
|
226 |
* @return The copy of the GList. |
|
zacw@1759
|
227 |
* |
|
zacw@1759
|
228 |
* @since 2.6.0 |
|
zacw@1759
|
229 |
*/ |
|
zacw@1759
|
230 |
GList *purple_media_candidate_list_copy(GList *candidates); |
|
zacw@1759
|
231 |
|
|
zacw@1759
|
232 |
/** |
|
zacw@1759
|
233 |
* Frees a GList of PurpleMediaCandidate and its contents. |
|
zacw@1759
|
234 |
* |
|
zacw@1759
|
235 |
* @param candidates The list of candidates to be freed. |
|
zacw@1759
|
236 |
* |
|
zacw@1759
|
237 |
* @since 2.6.0 |
|
zacw@1759
|
238 |
*/ |
|
zacw@1759
|
239 |
void purple_media_candidate_list_free(GList *candidates); |
|
zacw@1759
|
240 |
|
|
zacw@1759
|
241 |
gchar *purple_media_candidate_get_foundation(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
242 |
guint purple_media_candidate_get_component_id(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
243 |
gchar *purple_media_candidate_get_ip(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
244 |
guint16 purple_media_candidate_get_port(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
245 |
gchar *purple_media_candidate_get_base_ip(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
246 |
guint16 purple_media_candidate_get_base_port(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
247 |
PurpleMediaNetworkProtocol purple_media_candidate_get_protocol( |
|
zacw@1759
|
248 |
PurpleMediaCandidate *candidate); |
|
zacw@1759
|
249 |
guint32 purple_media_candidate_get_priority(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
250 |
PurpleMediaCandidateType purple_media_candidate_get_candidate_type( |
|
zacw@1759
|
251 |
PurpleMediaCandidate *candidate); |
|
zacw@1759
|
252 |
gchar *purple_media_candidate_get_username(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
253 |
gchar *purple_media_candidate_get_password(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
254 |
guint purple_media_candidate_get_ttl(PurpleMediaCandidate *candidate); |
|
zacw@1759
|
255 |
|
|
zacw@1759
|
256 |
/** |
|
zacw@1759
|
257 |
* Gets the type of the media codec structure. |
|
zacw@1759
|
258 |
* |
|
zacw@1759
|
259 |
* @return The media codec's GType |
|
zacw@1759
|
260 |
* |
|
zacw@1759
|
261 |
* @since 2.6.0 |
|
zacw@1759
|
262 |
*/ |
|
zacw@1759
|
263 |
GType purple_media_codec_get_type(void); |
|
zacw@1759
|
264 |
|
|
zacw@1759
|
265 |
/** |
|
zacw@1759
|
266 |
* Creates a new PurpleMediaCodec instance. |
|
zacw@1759
|
267 |
* |
|
zacw@1759
|
268 |
* @param id Codec identifier. |
|
zacw@1759
|
269 |
* @param encoding_name Name of the media type this encodes. |
|
zacw@1759
|
270 |
* @param media_type PurpleMediaSessionType of this codec. |
|
zacw@1759
|
271 |
* @param clock_rate The clock rate this codec encodes at, if applicable. |
|
zacw@1759
|
272 |
* |
|
zacw@1759
|
273 |
* @return The newly created PurpleMediaCodec. |
|
zacw@1759
|
274 |
* |
|
zacw@1759
|
275 |
* @since 2.6.0 |
|
zacw@1759
|
276 |
*/ |
|
zacw@1759
|
277 |
PurpleMediaCodec *purple_media_codec_new(int id, const char *encoding_name, |
|
zacw@1759
|
278 |
PurpleMediaSessionType media_type, guint clock_rate); |
|
zacw@1759
|
279 |
|
|
zacw@1759
|
280 |
guint purple_media_codec_get_id(PurpleMediaCodec *codec); |
|
zacw@1759
|
281 |
gchar *purple_media_codec_get_encoding_name(PurpleMediaCodec *codec); |
|
zacw@1759
|
282 |
guint purple_media_codec_get_clock_rate(PurpleMediaCodec *codec); |
|
zacw@1759
|
283 |
guint purple_media_codec_get_channels(PurpleMediaCodec *codec); |
|
zacw@1759
|
284 |
GList *purple_media_codec_get_optional_parameters(PurpleMediaCodec *codec); |
|
zacw@1759
|
285 |
|
|
zacw@1759
|
286 |
/** |
|
zacw@1759
|
287 |
* Creates a string representation of the codec. |
|
zacw@1759
|
288 |
* |
|
zacw@1759
|
289 |
* @param codec The codec to create the string of. |
|
zacw@1759
|
290 |
* |
|
zacw@1759
|
291 |
* @return The new string representation. |
|
zacw@1759
|
292 |
* |
|
zacw@1759
|
293 |
* @since 2.6.0 |
|
zacw@1759
|
294 |
*/ |
|
zacw@1759
|
295 |
gchar *purple_media_codec_to_string(const PurpleMediaCodec *codec); |
|
zacw@1759
|
296 |
|
|
zacw@1759
|
297 |
/** |
|
zacw@1759
|
298 |
* Adds an optional parameter to the codec. |
|
zacw@1759
|
299 |
* |
|
zacw@1759
|
300 |
* @param codec The codec to add the parameter to. |
|
zacw@1759
|
301 |
* @param name The name of the parameter to add. |
|
zacw@1759
|
302 |
* @param value The value of the parameter to add. |
|
zacw@1759
|
303 |
* |
|
zacw@1759
|
304 |
* @since 2.6.0 |
|
zacw@1759
|
305 |
*/ |
|
zacw@1759
|
306 |
void purple_media_codec_add_optional_parameter(PurpleMediaCodec *codec, |
|
zacw@1759
|
307 |
const gchar *name, const gchar *value); |
|
zacw@1759
|
308 |
|
|
zacw@1759
|
309 |
/** |
|
zacw@1759
|
310 |
* Removes an optional parameter from the codec. |
|
zacw@1759
|
311 |
* |
|
zacw@1759
|
312 |
* @param codec The codec to remove the parameter from. |
|
zacw@1759
|
313 |
* @param param A pointer to the parameter to remove. |
|
zacw@1759
|
314 |
* |
|
zacw@1759
|
315 |
* @since 2.6.0 |
|
zacw@1759
|
316 |
*/ |
|
zacw@1759
|
317 |
void purple_media_codec_remove_optional_parameter(PurpleMediaCodec *codec, |
|
zacw@1759
|
318 |
PurpleKeyValuePair *param); |
|
zacw@1759
|
319 |
|
|
zacw@1759
|
320 |
/** |
|
zacw@1759
|
321 |
* Gets an optional parameter based on the values given. |
|
zacw@1759
|
322 |
* |
|
zacw@1759
|
323 |
* @param codec The codec to find the parameter in. |
|
zacw@1759
|
324 |
* @param name The name of the parameter to search for. |
|
zacw@1759
|
325 |
* @param value The value to search for or NULL. |
|
zacw@1759
|
326 |
* |
|
zacw@1759
|
327 |
* @return The value found or NULL. |
|
zacw@1759
|
328 |
* |
|
zacw@1759
|
329 |
* @since 2.6.0 |
|
zacw@1759
|
330 |
*/ |
|
zacw@1759
|
331 |
PurpleKeyValuePair *purple_media_codec_get_optional_parameter( |
|
zacw@1759
|
332 |
PurpleMediaCodec *codec, const gchar *name, |
|
zacw@1759
|
333 |
const gchar *value); |
|
zacw@1759
|
334 |
|
|
zacw@1759
|
335 |
/** |
|
zacw@1759
|
336 |
* Copies a GList of PurpleMediaCodec and its contents. |
|
zacw@1759
|
337 |
* |
|
zacw@1759
|
338 |
* @param codecs The list of codecs to be copied. |
|
zacw@1759
|
339 |
* |
|
zacw@1759
|
340 |
* @return The copy of the GList. |
|
zacw@1759
|
341 |
* |
|
zacw@1759
|
342 |
* @since 2.6.0 |
|
zacw@1759
|
343 |
*/ |
|
zacw@1759
|
344 |
GList *purple_media_codec_list_copy(GList *codecs); |
|
zacw@1759
|
345 |
|
|
zacw@1759
|
346 |
/** |
|
zacw@1759
|
347 |
* Frees a GList of PurpleMediaCodec and its contents. |
|
zacw@1759
|
348 |
* |
|
zacw@1759
|
349 |
* @param codecs The list of codecs to be freed. |
|
zacw@1759
|
350 |
* |
|
zacw@1759
|
351 |
* @since 2.6.0 |
|
zacw@1759
|
352 |
*/ |
|
zacw@1759
|
353 |
void purple_media_codec_list_free(GList *codecs); |
|
zacw@1759
|
354 |
|
|
zacw@1759
|
355 |
/** |
|
zacw@2069
|
356 |
* Gets a list of session IDs. |
|
zacw@1759
|
357 |
* |
|
zacw@2069
|
358 |
* @param media The media session from which to retrieve session IDs. |
|
zacw@1759
|
359 |
* |
|
zacw@2069
|
360 |
* @return GList of session IDs. The caller must free the list. |
|
zacw@1759
|
361 |
* |
|
zacw@1759
|
362 |
* @since 2.6.0 |
|
zacw@1759
|
363 |
*/ |
|
zacw@2069
|
364 |
GList *purple_media_get_session_ids(PurpleMedia *media); |
|
zacw@1759
|
365 |
|
|
zacw@1759
|
366 |
/** |
|
zacw@1759
|
367 |
* Gets the PurpleAccount this media session is on. |
|
zacw@1759
|
368 |
* |
|
zacw@1759
|
369 |
* @param media The media session to retrieve the account from. |
|
zacw@1759
|
370 |
* |
|
zacw@1759
|
371 |
* @return The account retrieved. |
|
zacw@1759
|
372 |
* |
|
zacw@1759
|
373 |
* @since 2.6.0 |
|
zacw@1759
|
374 |
*/ |
|
zacw@1759
|
375 |
PurpleAccount *purple_media_get_account(PurpleMedia *media); |
|
zacw@1759
|
376 |
|
|
zacw@1759
|
377 |
/** |
|
zacw@1759
|
378 |
* Gets the prpl data from the media session. |
|
zacw@1759
|
379 |
* |
|
zacw@1759
|
380 |
* @param media The media session to retrieve the prpl data from. |
|
zacw@1759
|
381 |
* |
|
zacw@1759
|
382 |
* @return The prpl data retrieved. |
|
zacw@1759
|
383 |
* |
|
zacw@1759
|
384 |
* @since 2.6.0 |
|
zacw@1759
|
385 |
*/ |
|
zacw@1759
|
386 |
gpointer purple_media_get_prpl_data(PurpleMedia *media); |
|
zacw@1759
|
387 |
|
|
zacw@1759
|
388 |
/** |
|
zacw@1759
|
389 |
* Sets the prpl data on the media session. |
|
zacw@1759
|
390 |
* |
|
zacw@1759
|
391 |
* @param media The media session to set the prpl data on. |
|
zacw@1759
|
392 |
* @param prpl_data The data to set on the media session. |
|
zacw@1759
|
393 |
* |
|
zacw@1759
|
394 |
* @since 2.6.0 |
|
zacw@1759
|
395 |
*/ |
|
zacw@1759
|
396 |
void purple_media_set_prpl_data(PurpleMedia *media, gpointer prpl_data); |
|
zacw@1759
|
397 |
|
|
zacw@1759
|
398 |
/** |
|
zacw@1759
|
399 |
* Signals an error in the media session. |
|
zacw@1759
|
400 |
* |
|
zacw@1759
|
401 |
* @param media The media object to set the state on. |
|
zacw@1759
|
402 |
* @param error The format of the error message to send in the signal. |
|
zacw@1759
|
403 |
* @param ... The arguments to plug into the format. |
|
zacw@1759
|
404 |
* |
|
zacw@1759
|
405 |
* @since 2.6.0 |
|
zacw@1759
|
406 |
*/ |
|
zacw@1759
|
407 |
void purple_media_error(PurpleMedia *media, const gchar *error, ...); |
|
zacw@1759
|
408 |
|
|
zacw@1759
|
409 |
/** |
|
zacw@1759
|
410 |
* Ends all streams that match the given parameters |
|
zacw@1759
|
411 |
* |
|
zacw@1759
|
412 |
* @param media The media object with which to end streams. |
|
zacw@1759
|
413 |
* @param session_id The session to end streams on. |
|
zacw@1759
|
414 |
* @param participant The participant to end streams with. |
|
zacw@1759
|
415 |
* |
|
zacw@1759
|
416 |
* @since 2.6.0 |
|
zacw@1759
|
417 |
*/ |
|
zacw@1759
|
418 |
void purple_media_end(PurpleMedia *media, const gchar *session_id, |
|
zacw@1759
|
419 |
const gchar *participant); |
|
zacw@1759
|
420 |
|
|
zacw@1759
|
421 |
/** |
|
zacw@1759
|
422 |
* Signals different information about the given stream. |
|
zacw@1759
|
423 |
* |
|
zacw@1759
|
424 |
* @param media The media instance to containing the stream to signal. |
|
zacw@1759
|
425 |
* @param type The type of info being signaled. |
|
zacw@1759
|
426 |
* @param session_id The id of the session of the stream being signaled. |
|
zacw@1759
|
427 |
* @param participant The participant of the stream being signaled. |
|
zacw@1759
|
428 |
* @param local TRUE if the info originated locally, FALSE if on the remote end. |
|
zacw@1759
|
429 |
* |
|
zacw@1759
|
430 |
* @since 2.6.0 |
|
zacw@1759
|
431 |
*/ |
|
zacw@1759
|
432 |
void purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type, |
|
zacw@1759
|
433 |
const gchar *session_id, const gchar *participant, |
|
zacw@1759
|
434 |
gboolean local); |
|
zacw@1759
|
435 |
|
|
zacw@1759
|
436 |
/** |
|
zacw@1759
|
437 |
* Adds a stream to a session. |
|
zacw@1759
|
438 |
* |
|
zacw@1759
|
439 |
* It only adds a stream to one audio session or video session as |
|
zacw@1759
|
440 |
* the @c sess_id must be unique between sessions. |
|
zacw@1759
|
441 |
* |
|
zacw@1759
|
442 |
* @param media The media object to find the session in. |
|
zacw@1759
|
443 |
* @param sess_id The session id of the session to add the stream to. |
|
zacw@1759
|
444 |
* @param who The name of the remote user to add the stream for. |
|
zacw@1759
|
445 |
* @param type The type of stream to create. |
|
zacw@1759
|
446 |
* @param initiator Whether or not the local user initiated the stream. |
|
zacw@1759
|
447 |
* @param transmitter The transmitter to use for the stream. |
|
zacw@1759
|
448 |
* @param num_params The number of parameters to pass to Farsight. |
|
zacw@1759
|
449 |
* @param params The parameters to pass to Farsight. |
|
zacw@1759
|
450 |
* |
|
zacw@1759
|
451 |
* @return @c TRUE The stream was added successfully, @c FALSE otherwise. |
|
zacw@1759
|
452 |
* |
|
zacw@1759
|
453 |
* @since 2.6.0 |
|
zacw@1759
|
454 |
*/ |
|
zacw@1759
|
455 |
gboolean purple_media_add_stream(PurpleMedia *media, const gchar *sess_id, |
|
zacw@1759
|
456 |
const gchar *who, PurpleMediaSessionType type, |
|
zacw@1759
|
457 |
gboolean initiator, const gchar *transmitter, |
|
zacw@1759
|
458 |
guint num_params, GParameter *params); |
|
zacw@1759
|
459 |
|
|
zacw@1759
|
460 |
/** |
|
zacw@1759
|
461 |
* Gets the session type from a session |
|
zacw@1759
|
462 |
* |
|
zacw@1759
|
463 |
* @param media The media object to find the session in. |
|
zacw@1759
|
464 |
* @param sess_id The session id of the session to get the type from. |
|
zacw@1759
|
465 |
* |
|
zacw@1759
|
466 |
* @return The retreived session type. |
|
zacw@1759
|
467 |
* |
|
zacw@1759
|
468 |
* @since 2.6.0 |
|
zacw@1759
|
469 |
*/ |
|
zacw@1759
|
470 |
PurpleMediaSessionType purple_media_get_session_type(PurpleMedia *media, const gchar *sess_id); |
|
zacw@1759
|
471 |
|
|
zacw@1759
|
472 |
/** |
|
zacw@1759
|
473 |
* Gets the PurpleMediaManager this media session is a part of. |
|
zacw@1759
|
474 |
* |
|
zacw@1759
|
475 |
* @param media The media object to get the manager instance from. |
|
zacw@1759
|
476 |
* |
|
zacw@1759
|
477 |
* @return The PurpleMediaManager instance retrieved. |
|
zacw@1759
|
478 |
* |
|
zacw@1759
|
479 |
* @since 2.6.0 |
|
zacw@1759
|
480 |
*/ |
|
zacw@1759
|
481 |
struct _PurpleMediaManager *purple_media_get_manager(PurpleMedia *media); |
|
zacw@1759
|
482 |
|
|
zacw@1759
|
483 |
/** |
|
zacw@1759
|
484 |
* Gets the codecs from a session. |
|
zacw@1759
|
485 |
* |
|
zacw@1759
|
486 |
* @param media The media object to find the session in. |
|
zacw@1759
|
487 |
* @param sess_id The session id of the session to get the codecs from. |
|
zacw@1759
|
488 |
* |
|
zacw@1759
|
489 |
* @return The retreieved codecs. |
|
zacw@1759
|
490 |
* |
|
zacw@1759
|
491 |
* @since 2.6.0 |
|
zacw@1759
|
492 |
*/ |
|
zacw@1759
|
493 |
GList *purple_media_get_codecs(PurpleMedia *media, const gchar *sess_id); |
|
zacw@1759
|
494 |
|
|
zacw@1759
|
495 |
/** |
|
zacw@1759
|
496 |
* Adds remote candidates to the stream. |
|
zacw@1759
|
497 |
* |
|
zacw@1759
|
498 |
* @param media The media object to find the session in. |
|
zacw@1759
|
499 |
* @param sess_id The session id of the session find the stream in. |
|
zacw@2069
|
500 |
* @param participant The name of the remote user to add the candidates for. |
|
zacw@1759
|
501 |
* @param remote_candidates The remote candidates to add. |
|
zacw@1759
|
502 |
* |
|
zacw@1759
|
503 |
* @since 2.6.0 |
|
zacw@1759
|
504 |
*/ |
|
zacw@1759
|
505 |
void purple_media_add_remote_candidates(PurpleMedia *media, |
|
zacw@1759
|
506 |
const gchar *sess_id, |
|
zacw@2069
|
507 |
const gchar *participant, |
|
zacw@1759
|
508 |
GList *remote_candidates); |
|
zacw@1759
|
509 |
|
|
zacw@1759
|
510 |
/** |
|
zacw@1759
|
511 |
* Gets the local candidates from a stream. |
|
zacw@1759
|
512 |
* |
|
zacw@1759
|
513 |
* @param media The media object to find the session in. |
|
zacw@1759
|
514 |
* @param sess_id The session id of the session to find the stream in. |
|
zacw@2069
|
515 |
* @param participant The name of the remote user to get the candidates from. |
|
zacw@1759
|
516 |
* |
|
zacw@1759
|
517 |
* @since 2.6.0 |
|
zacw@1759
|
518 |
*/ |
|
zacw@1759
|
519 |
GList *purple_media_get_local_candidates(PurpleMedia *media, |
|
zacw@1759
|
520 |
const gchar *sess_id, |
|
zacw@2069
|
521 |
const gchar *participant); |
|
zacw@1759
|
522 |
|
|
zacw@1759
|
523 |
#if 0 |
|
zacw@1759
|
524 |
/* |
|
zacw@1759
|
525 |
* These two functions aren't being used and I'd rather not lock in the API |
|
zacw@1759
|
526 |
* until they are needed. If they ever are. |
|
zacw@1759
|
527 |
*/ |
|
zacw@1759
|
528 |
|
|
zacw@1759
|
529 |
/** |
|
zacw@1759
|
530 |
* Gets the active local candidates for the stream. |
|
zacw@1759
|
531 |
* |
|
zacw@1759
|
532 |
* @param media The media object to find the session in. |
|
zacw@1759
|
533 |
* @param sess_id The session id of the session to find the stream in. |
|
zacw@2069
|
534 |
* @param participant The name of the remote user to get the active candidate |
|
zacw@2069
|
535 |
* from. |
|
zacw@1759
|
536 |
* |
|
zacw@1759
|
537 |
* @return The active candidates retrieved. |
|
zacw@1759
|
538 |
*/ |
|
zacw@1759
|
539 |
GList *purple_media_get_active_local_candidates(PurpleMedia *media, |
|
zacw@2069
|
540 |
const gchar *sess_id, const gchar *participant); |
|
zacw@1759
|
541 |
|
|
zacw@1759
|
542 |
/** |
|
zacw@1759
|
543 |
* Gets the active remote candidates for the stream. |
|
zacw@1759
|
544 |
* |
|
zacw@1759
|
545 |
* @param media The media object to find the session in. |
|
zacw@1759
|
546 |
* @param sess_id The session id of the session to find the stream in. |
|
zacw@2069
|
547 |
* @param participant The name of the remote user to get the remote candidate |
|
zacw@2069
|
548 |
* from. |
|
zacw@1759
|
549 |
* |
|
zacw@1759
|
550 |
* @return The remote candidates retrieved. |
|
zacw@1759
|
551 |
*/ |
|
zacw@1759
|
552 |
GList *purple_media_get_active_remote_candidates(PurpleMedia *media, |
|
zacw@2069
|
553 |
const gchar *sess_id, const gchar *participant); |
|
zacw@1759
|
554 |
#endif |
|
zacw@1759
|
555 |
|
|
zacw@1759
|
556 |
/** |
|
zacw@1759
|
557 |
* Sets remote candidates from the stream. |
|
zacw@1759
|
558 |
* |
|
zacw@1759
|
559 |
* @param media The media object to find the session in. |
|
zacw@1759
|
560 |
* @param sess_id The session id of the session find the stream in. |
|
zacw@2069
|
561 |
* @param participant The name of the remote user to set the candidates from. |
|
zacw@1759
|
562 |
* |
|
zacw@1759
|
563 |
* @return @c TRUE The codecs were set successfully, or @c FALSE otherwise. |
|
zacw@1759
|
564 |
* |
|
zacw@1759
|
565 |
* @since 2.6.0 |
|
zacw@1759
|
566 |
*/ |
|
zacw@1759
|
567 |
gboolean purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id, |
|
zacw@2069
|
568 |
const gchar *participant, GList *codecs); |
|
zacw@1759
|
569 |
|
|
zacw@1759
|
570 |
/** |
|
zacw@1759
|
571 |
* Returns whether or not the candidates for set of streams are prepared |
|
zacw@1759
|
572 |
* |
|
zacw@1759
|
573 |
* @param media The media object to find the remote user in. |
|
zacw@1759
|
574 |
* @param session_id The session id of the session to check. |
|
zacw@1759
|
575 |
* @param participant The remote user to check for. |
|
zacw@1759
|
576 |
* |
|
zacw@1759
|
577 |
* @return @c TRUE All streams for the given session_id/participant combination have candidates prepared, @c FALSE otherwise. |
|
zacw@1759
|
578 |
* |
|
zacw@1759
|
579 |
* @since 2.6.0 |
|
zacw@1759
|
580 |
*/ |
|
zacw@1759
|
581 |
gboolean purple_media_candidates_prepared(PurpleMedia *media, |
|
zacw@1759
|
582 |
const gchar *session_id, const gchar *participant); |
|
zacw@1759
|
583 |
|
|
zacw@1759
|
584 |
/** |
|
zacw@1759
|
585 |
* Sets the send codec for the a session. |
|
zacw@1759
|
586 |
* |
|
zacw@1759
|
587 |
* @param media The media object to find the session in. |
|
zacw@1759
|
588 |
* @param sess_id The session id of the session to set the codec for. |
|
zacw@1759
|
589 |
* @param codec The codec to set the session to stream. |
|
zacw@1759
|
590 |
* |
|
zacw@1759
|
591 |
* @return @c TRUE The codec was successfully changed, or @c FALSE otherwise. |
|
zacw@1759
|
592 |
* |
|
zacw@1759
|
593 |
* @since 2.6.0 |
|
zacw@1759
|
594 |
*/ |
|
zacw@1759
|
595 |
gboolean purple_media_set_send_codec(PurpleMedia *media, const gchar *sess_id, PurpleMediaCodec *codec); |
|
zacw@1759
|
596 |
|
|
zacw@1759
|
597 |
/** |
|
zacw@1759
|
598 |
* Gets whether a session's codecs are ready to be used. |
|
zacw@1759
|
599 |
* |
|
zacw@1759
|
600 |
* @param media The media object to find the session in. |
|
zacw@1759
|
601 |
* @param sess_id The session id of the session to check. |
|
zacw@1759
|
602 |
* |
|
zacw@1759
|
603 |
* @return @c TRUE The codecs are ready, or @c FALSE otherwise. |
|
zacw@1759
|
604 |
* |
|
zacw@1759
|
605 |
* @since 2.6.0 |
|
zacw@1759
|
606 |
*/ |
|
zacw@1759
|
607 |
gboolean purple_media_codecs_ready(PurpleMedia *media, const gchar *sess_id); |
|
zacw@1759
|
608 |
|
|
zacw@1759
|
609 |
/** |
|
zacw@1759
|
610 |
* Gets whether the local user is the conference/session/stream's initiator. |
|
zacw@1759
|
611 |
* |
|
zacw@1759
|
612 |
* @param media The media instance to find the session in. |
|
zacw@1759
|
613 |
* @param sess_id The session id of the session to check. |
|
zacw@1759
|
614 |
* @param participant The participant of the stream to check. |
|
zacw@1759
|
615 |
* |
|
zacw@1759
|
616 |
* @return TRUE if the local user is the stream's initator, else FALSE. |
|
zacw@1759
|
617 |
* |
|
zacw@1759
|
618 |
* @since 2.6.0 |
|
zacw@1759
|
619 |
*/ |
|
zacw@1759
|
620 |
gboolean purple_media_is_initiator(PurpleMedia *media, |
|
zacw@1759
|
621 |
const gchar *sess_id, const gchar *participant); |
|
zacw@1759
|
622 |
|
|
zacw@1759
|
623 |
/** |
|
zacw@1759
|
624 |
* Gets whether a streams selected have been accepted. |
|
zacw@1759
|
625 |
* |
|
zacw@1759
|
626 |
* @param media The media object to find the session in. |
|
zacw@1759
|
627 |
* @param sess_id The session id of the session to check. |
|
zacw@1759
|
628 |
* @param participant The participant to check. |
|
zacw@1759
|
629 |
* |
|
zacw@1759
|
630 |
* @return @c TRUE The selected streams have been accepted, or @c FALSE otherwise. |
|
zacw@1759
|
631 |
* |
|
zacw@1759
|
632 |
* @since 2.6.0 |
|
zacw@1759
|
633 |
*/ |
|
zacw@1759
|
634 |
gboolean purple_media_accepted(PurpleMedia *media, const gchar *sess_id, |
|
zacw@1759
|
635 |
const gchar *participant); |
|
zacw@1759
|
636 |
|
|
zacw@1759
|
637 |
/** |
|
zacw@1759
|
638 |
* Sets the input volume of all the selected sessions. |
|
zacw@1759
|
639 |
* |
|
zacw@1759
|
640 |
* @param media The media object the sessions are in. |
|
zacw@1759
|
641 |
* @param session_id The session to select (if any). |
|
zacw@1759
|
642 |
* @param level The level to set the volume to. |
|
zacw@1759
|
643 |
* |
|
zacw@1759
|
644 |
* @since 2.6.0 |
|
zacw@1759
|
645 |
*/ |
|
zacw@1759
|
646 |
void purple_media_set_input_volume(PurpleMedia *media, const gchar *session_id, double level); |
|
zacw@1759
|
647 |
|
|
zacw@1759
|
648 |
/** |
|
zacw@1759
|
649 |
* Sets the output volume of all the selected streams. |
|
zacw@1759
|
650 |
* |
|
zacw@1759
|
651 |
* @param media The media object the streams are in. |
|
zacw@1759
|
652 |
* @param session_id The session to limit the streams to (if any). |
|
zacw@1759
|
653 |
* @param participant The participant to limit the streams to (if any). |
|
zacw@1759
|
654 |
* @param level The level to set the volume to. |
|
zacw@1759
|
655 |
* |
|
zacw@1759
|
656 |
* @since 2.6.0 |
|
zacw@1759
|
657 |
*/ |
|
zacw@1759
|
658 |
void purple_media_set_output_volume(PurpleMedia *media, const gchar *session_id, |
|
zacw@1759
|
659 |
const gchar *participant, double level); |
|
zacw@1759
|
660 |
|
|
zacw@1759
|
661 |
/** |
|
zacw@1759
|
662 |
* Sets a video output window for the given session/stream. |
|
zacw@1759
|
663 |
* |
|
zacw@1759
|
664 |
* @param media The media instance to set the output window on. |
|
zacw@1759
|
665 |
* @param session_id The session to set the output window on. |
|
zacw@1759
|
666 |
* @param participant Optionally, the participant to set the output window on. |
|
zacw@1759
|
667 |
* @param window_id The window id use for embedding the video in. |
|
zacw@1759
|
668 |
* |
|
zacw@1759
|
669 |
* @return An id to reference the output window. |
|
zacw@1759
|
670 |
* |
|
zacw@1759
|
671 |
* @since 2.6.0 |
|
zacw@1759
|
672 |
*/ |
|
zacw@1759
|
673 |
gulong purple_media_set_output_window(PurpleMedia *media, |
|
zacw@1759
|
674 |
const gchar *session_id, const gchar *participant, |
|
zacw@1759
|
675 |
gulong window_id); |
|
zacw@1759
|
676 |
|
|
zacw@1759
|
677 |
/** |
|
zacw@1759
|
678 |
* Removes all output windows from a given media session. |
|
zacw@1759
|
679 |
* |
|
zacw@1759
|
680 |
* @param media The instance to remove all output windows from. |
|
zacw@1759
|
681 |
* |
|
zacw@1759
|
682 |
* @since 2.6.0 |
|
zacw@1759
|
683 |
*/ |
|
zacw@1759
|
684 |
void purple_media_remove_output_windows(PurpleMedia *media); |
|
zacw@1759
|
685 |
|
|
zacw@1759
|
686 |
#ifdef __cplusplus |
|
zacw@1759
|
687 |
} |
|
zacw@1759
|
688 |
#endif |
|
zacw@1759
|
689 |
|
|
zacw@1759
|
690 |
G_END_DECLS |
|
zacw@1759
|
691 |
|
|
zacw@1759
|
692 |
#endif /* _PURPLE_MEDIA_H_ */ |