diff options
author | Michael Ruprecht <maiku@pidgin.im> | 2009-10-26 23:10:53 +0000 |
---|---|---|
committer | Michael Ruprecht <maiku@pidgin.im> | 2009-10-26 23:10:53 +0000 |
commit | 5820159f52a3e348a72b90da59cfcd732bd2508b (patch) | |
tree | 7799bba713bf941460ae6d8d5516e0be3bbad718 | |
parent | a203a02d67ab27ca7517273d8e6f7f45bf507c8e (diff) | |
download | pidgin-5820159f52a3e348a72b90da59cfcd732bd2508b.tar.gz |
Move set_remote_codecs functionality to the Fs2 media backend.
-rw-r--r-- | libpurple/media/backend-fs2.c | 29 | ||||
-rw-r--r-- | libpurple/media/media.c | 76 |
2 files changed, 26 insertions, 79 deletions
diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c index d21db90450..711575e9f6 100644 --- a/libpurple/media/backend-fs2.c +++ b/libpurple/media/backend-fs2.c @@ -481,7 +481,6 @@ _candidate_list_from_fs(GList *candidates) return new_list; } -#if 0 static FsCodec * _codec_to_fs(const PurpleMediaCodec *codec) { @@ -519,7 +518,6 @@ _codec_to_fs(const PurpleMediaCodec *codec) g_free(encoding_name); return new_codec; } -#endif static PurpleMediaCodec * _codec_from_fs(const FsCodec *codec) @@ -558,7 +556,6 @@ _codec_list_from_fs(GList *codecs) return new_list; } -#if 0 static GList * _codec_list_to_fs(GList *codecs) { @@ -572,7 +569,6 @@ _codec_list_to_fs(GList *codecs) new_list = g_list_reverse(new_list); return new_list; } -#endif static PurpleMediaBackendFs2Session * _get_session(PurpleMediaBackendFs2 *self, const gchar *sess_id) @@ -1435,7 +1431,30 @@ purple_media_backend_fs2_set_remote_codecs(PurpleMediaBackend *self, const gchar *sess_id, const gchar *participant, GList *codecs) { - return FALSE; + PurpleMediaBackendFs2Stream *stream; + GList *fscodecs; + GError *err = NULL; + + g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); + stream = _get_stream(PURPLE_MEDIA_BACKEND_FS2(self), + sess_id, participant); + + if (stream == NULL) + return FALSE; + + fscodecs = _codec_list_to_fs(codecs); + fs_stream_set_remote_codecs(stream->stream, fscodecs, &err); + fs_codec_list_destroy(fscodecs); + + if (err) { + purple_debug_error("backend-fs2", + "Error setting remote codecs: %s\n", + err->message); + g_error_free(err); + return FALSE; + } + + return TRUE; } static void diff --git a/libpurple/media/media.c b/libpurple/media/media.c index dc9f68bec8..deab485a23 100644 --- a/libpurple/media/media.c +++ b/libpurple/media/media.c @@ -658,59 +658,6 @@ purple_media_codec_to_fs(const PurpleMediaCodec *codec) return new_codec; } -static PurpleMediaCodec * -purple_media_codec_from_fs(const FsCodec *codec) -{ - PurpleMediaCodec *new_codec; - GList *iter; - - if (codec == NULL) - return NULL; - - new_codec = purple_media_codec_new(codec->id, codec->encoding_name, - purple_media_from_fs(codec->media_type, - FS_DIRECTION_BOTH), codec->clock_rate); - g_object_set(new_codec, "channels", codec->channels, NULL); - - for (iter = codec->optional_params; iter; iter = g_list_next(iter)) { - FsCodecParameter *param = (FsCodecParameter*)iter->data; - purple_media_codec_add_optional_parameter(new_codec, - param->name, param->value); - } - - return new_codec; -} - -static GList * -purple_media_codec_list_from_fs(GList *codecs) -{ - GList *new_list = NULL; - - for (; codecs; codecs = g_list_next(codecs)) { - new_list = g_list_prepend(new_list, - purple_media_codec_from_fs( - codecs->data)); - } - - new_list = g_list_reverse(new_list); - return new_list; -} - -static GList * -purple_media_codec_list_to_fs(GList *codecs) -{ - GList *new_list = NULL; - - for (; codecs; codecs = g_list_next(codecs)) { - new_list = g_list_prepend(new_list, - purple_media_codec_to_fs( - codecs->data)); - } - - new_list = g_list_reverse(new_list); - return new_list; -} - static PurpleMediaSession* purple_media_get_session(PurpleMedia *media, const gchar *sess_id) { @@ -1585,29 +1532,10 @@ purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id, const gchar *participant, GList *codecs) { #ifdef USE_VV - PurpleMediaStream *stream; - FsStream *fsstream; - GList *fscodecs; - GError *err = NULL; - g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); - stream = purple_media_get_stream(media, sess_id, participant); - - if (stream == NULL) - return FALSE; - - fsstream = stream->stream; - fscodecs = purple_media_codec_list_to_fs(codecs); - fs_stream_set_remote_codecs(fsstream, fscodecs, &err); - fs_codec_list_destroy(fscodecs); - if (err) { - purple_debug_error("media", "Error setting remote codecs: %s\n", - err->message); - g_error_free(err); - return FALSE; - } - return TRUE; + return purple_media_backend_set_remote_codecs(media->priv->backend, + sess_id, participant, codecs); #else return FALSE; #endif |