diff libpurple/media/backend-fs2.c @ 29179:a39696686dd6

Move set_remote_codecs functionality to the Fs2 media backend.
author maiku@pidgin.im
date Mon, 26 Oct 2009 23:10:53 +0000
parents a7cad99144f0
children 90c48f1e479a
line wrap: on
line diff
--- a/libpurple/media/backend-fs2.c	Mon Oct 26 22:59:13 2009 +0000
+++ b/libpurple/media/backend-fs2.c	Mon Oct 26 23:10:53 2009 +0000
@@ -481,7 +481,6 @@
 	return new_list;
 }
 
-#if 0
 static FsCodec *
 _codec_to_fs(const PurpleMediaCodec *codec)
 {
@@ -519,7 +518,6 @@
 	g_free(encoding_name);
 	return new_codec;
 }
-#endif
 
 static PurpleMediaCodec *
 _codec_from_fs(const FsCodec *codec)
@@ -558,7 +556,6 @@
 	return new_list;
 }
 
-#if 0
 static GList *
 _codec_list_to_fs(GList *codecs)
 {
@@ -572,7 +569,6 @@
 	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 @@
 		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