Mercurial > pidgin
comparison libpurple/media.c @ 27857:c1687897825f
Add pause capability for local video.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Fri, 07 Aug 2009 11:31:13 +0000 |
parents | c8ff0a9cf8cc |
children | d865064a3104 |
comparison
equal
deleted
inserted
replaced
27856:1c58b9d2429b | 27857:c1687897825f |
---|---|
272 "PURPLE_MEDIA_INFO_REJECT", "reject" }, | 272 "PURPLE_MEDIA_INFO_REJECT", "reject" }, |
273 { PURPLE_MEDIA_INFO_MUTE, | 273 { PURPLE_MEDIA_INFO_MUTE, |
274 "PURPLE_MEDIA_INFO_MUTE", "mute" }, | 274 "PURPLE_MEDIA_INFO_MUTE", "mute" }, |
275 { PURPLE_MEDIA_INFO_UNMUTE, | 275 { PURPLE_MEDIA_INFO_UNMUTE, |
276 "PURPLE_MEDIA_INFO_UNMUTE", "unmute" }, | 276 "PURPLE_MEDIA_INFO_UNMUTE", "unmute" }, |
277 { PURPLE_MEDIA_INFO_PAUSE, | |
278 "PURPLE_MEDIA_INFO_PAUSE", "pause" }, | |
279 { PURPLE_MEDIA_INFO_UNPAUSE, | |
280 "PURPLE_MEDIA_INFO_UNPAUSE", "unpause" }, | |
277 { PURPLE_MEDIA_INFO_HOLD, | 281 { PURPLE_MEDIA_INFO_HOLD, |
278 "PURPLE_MEDIA_INFO_HOLD", "hold" }, | 282 "PURPLE_MEDIA_INFO_HOLD", "hold" }, |
279 { PURPLE_MEDIA_INFO_UNHOLD, | 283 { PURPLE_MEDIA_INFO_UNHOLD, |
280 "PURPLE_MEDIA_INFO_HOLD", "unhold" }, | 284 "PURPLE_MEDIA_INFO_HOLD", "unhold" }, |
281 { 0, NULL, NULL } | 285 { 0, NULL, NULL } |
2256 priv->confbin), name); | 2260 priv->confbin), name); |
2257 g_free(name); | 2261 g_free(name); |
2258 g_object_set(volume, "mute", active, NULL); | 2262 g_object_set(volume, "mute", active, NULL); |
2259 } | 2263 } |
2260 } | 2264 } |
2265 } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_PAUSE || | |
2266 type == PURPLE_MEDIA_INFO_UNPAUSE)) { | |
2267 gboolean active = (type == PURPLE_MEDIA_INFO_PAUSE); | |
2268 GList *streams = purple_media_get_streams(media, | |
2269 session_id, participant); | |
2270 for (; streams; streams = g_list_delete_link(streams, streams)) { | |
2271 PurpleMediaStream *stream = streams->data; | |
2272 if (stream->session->type & PURPLE_MEDIA_SEND_VIDEO) { | |
2273 g_object_set(stream->stream, "direction", | |
2274 purple_media_to_fs_stream_direction( | |
2275 stream->session->type & ((active) ? | |
2276 ~PURPLE_MEDIA_SEND_VIDEO : | |
2277 PURPLE_MEDIA_VIDEO)), NULL); | |
2278 } | |
2279 } | |
2261 } | 2280 } |
2262 | 2281 |
2263 g_signal_emit(media, purple_media_signals[STREAM_INFO], | 2282 g_signal_emit(media, purple_media_signals[STREAM_INFO], |
2264 0, type, session_id, participant, local); | 2283 0, type, session_id, participant, local); |
2265 | 2284 |