comparison libpurple/media/media.c @ 29193:bd6279df50de

Move mute functionality into the Fs2 media backend.
author maiku@pidgin.im
date Tue, 27 Oct 2009 21:32:11 +0000
parents 0761fc41bbe3
children c08c36bd009d
comparison
equal deleted inserted replaced
29192:0761fc41bbe3 29193:bd6279df50de
714 g_list_delete_link(streams, streams)) { 714 g_list_delete_link(streams, streams)) {
715 PurpleMediaStream *stream = streams->data; 715 PurpleMediaStream *stream = streams->data;
716 716
717 stream->accepted = TRUE; 717 stream->accepted = TRUE;
718 } 718 }
719 } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_MUTE ||
720 type == PURPLE_MEDIA_INFO_UNMUTE)) {
721 GList *sessions;
722 gboolean active = (type == PURPLE_MEDIA_INFO_MUTE);
723
724 g_return_if_fail(PURPLE_IS_MEDIA(media));
725
726 if (session_id == NULL)
727 sessions = g_hash_table_get_values(
728 media->priv->sessions);
729 else
730 sessions = g_list_prepend(NULL,
731 purple_media_get_session(
732 media, session_id));
733
734 purple_debug_info("media", "Turning mute %s\n",
735 active ? "on" : "off");
736
737 for (; sessions; sessions = g_list_delete_link(
738 sessions, sessions)) {
739 PurpleMediaSession *session = sessions->data;
740 if (session->type & PURPLE_MEDIA_SEND_AUDIO) {
741 gchar *name = g_strdup_printf("volume_%s",
742 session->id);
743 GstElement *volume = gst_bin_get_by_name(
744 GST_BIN(session->media->
745 priv->confbin), name);
746 g_free(name);
747 g_object_set(volume, "mute", active, NULL);
748 }
749 }
750 } 719 }
751 720
752 g_signal_emit(media, purple_media_signals[STREAM_INFO], 721 g_signal_emit(media, purple_media_signals[STREAM_INFO],
753 0, type, session_id, participant, local); 722 0, type, session_id, participant, local);
754 723