Mercurial > pidgin.yaz
annotate pidgin/plugins/vvconfig.c @ 30018:7ed0ddbdd2a8
Use an inline RC style to get rid of some other padding to make the small
buttons even smaller, as suggested by Paradox on trac, and nicked from
nautilus.
Refs #8727.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 20 Mar 2010 06:22:53 +0000 |
parents | 33e8d40ae6ec |
children | 1bf7346e5d57 |
rev | line source |
---|---|
28392
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
1 /* |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
2 * Configures microphones and webcams for voice and video |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
3 * Copyright (C) 2009 Mike Ruprecht <cmaiku@gmail.com> |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
4 * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
5 * This program is free software; you can redistribute it and/or |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
6 * modify it under the terms of the GNU General Public License |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
7 * as published by the Free Software Foundation; either version 2 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
8 * of the License, or (at your option) any later version. |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
9 * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
10 * This program is distributed in the hope that it will be useful, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
13 * GNU General Public License for more details. |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
14 * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
16 * along with this program; if not, write to the Free Software |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA. |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
18 */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
19 #include "internal.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
20 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
21 #include "debug.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
22 #include "mediamanager.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
23 #include "media-gst.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
24 #include "version.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
25 #include "gtkplugin.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
26 #include "gtkutils.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
27 #include "gtkprefs.h" |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
28 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
29 #include <gst/interfaces/propertyprobe.h> |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
30 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
31 static PurpleMediaElementInfo *old_video_src = NULL, *old_video_sink = NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
32 *old_audio_src = NULL, *old_audio_sink = NULL; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
33 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
34 static const gchar *AUDIO_SRC_PLUGINS[] = { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
35 "alsasrc", "ALSA", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
36 /* "esdmon", "ESD", ? */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
37 "osssrc", "OSS", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
38 "pulsesrc", "PulseAudio", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
39 /* "audiotestsrc wave=silence", "Silence", */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
40 "audiotestsrc", "Test Sound", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
41 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
42 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
43 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
44 static const gchar *AUDIO_SINK_PLUGINS[] = { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
45 "alsasink", "ALSA", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
46 "artsdsink", "aRts", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
47 "esdsink", "ESD", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
48 "osssink", "OSS", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
49 "pulsesink", "PulseAudio", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
50 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
51 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
52 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
53 static const gchar *VIDEO_SRC_PLUGINS[] = { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
54 "videotestsrc", "Test Input", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
55 "dshowvideosrc","DirectDraw", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
56 "ksvideosrc", "KS Video", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
57 "qcamsrc", "Quickcam", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
58 "v4lsrc", "Video4Linux", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
59 "v4l2src", "Video4Linux2", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
60 "v4lmjpegsrc", "Video4Linux MJPEG", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
61 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
62 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
63 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
64 static const gchar *VIDEO_SINK_PLUGINS[] = { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
65 /* "aasink", "AALib", Didn't work for me */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
66 "directdrawsink","DirectDraw", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
67 "glimagesink", "OpenGL", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
68 "ximagesink", "X Window System", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
69 "xvimagesink", "X Window System (Xv)", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
70 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
71 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
72 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
73 static GList * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
74 get_element_devices(const gchar *element_name) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
75 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
76 GList *ret = NULL; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
77 GstElement *element; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
78 GObjectClass *klass; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
79 GstPropertyProbe *probe; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
80 const GParamSpec *pspec; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
81 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
82 if (!strcmp(element_name, "<custom>")) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
83 ret = g_list_prepend(ret, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
84 ret = g_list_prepend(ret, (gpointer)_("Default")); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
85 ret = g_list_prepend(ret, ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
86 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
87 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
88 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
89 ret = g_list_prepend(ret, (gpointer)_("Default")); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
90 ret = g_list_prepend(ret, ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
91 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
92 if (*element_name == '\0') { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
93 ret = g_list_prepend(ret, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
94 ret = g_list_reverse(ret); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
95 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
96 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
97 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
98 element = gst_element_factory_make(element_name, "test"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
99 klass = G_OBJECT_GET_CLASS (element); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
100 if (!g_object_class_find_property(klass, "device") || |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
101 !GST_IS_PROPERTY_PROBE(element) || |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
102 !(probe = GST_PROPERTY_PROBE(element)) || |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
103 !(pspec = gst_property_probe_get_property(probe, "device"))) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
104 purple_debug_info("vvconfig", "'%s' - no device\n", element_name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
105 } else { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
106 gint n; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
107 GValueArray *array; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
108 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
109 /* Set autoprobe[-fps] to FALSE to avoid delays when probing. */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
110 if (g_object_class_find_property (klass, "autoprobe")) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
111 g_object_set (G_OBJECT (element), "autoprobe", FALSE, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
112 if (g_object_class_find_property (klass, "autoprobe-fps")) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
113 g_object_set (G_OBJECT (element), "autoprobe-fps", FALSE, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
114 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
115 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
116 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
117 array = gst_property_probe_probe_and_get_values (probe, pspec); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
118 if (array == NULL) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
119 purple_debug_info("vvconfig", "'%s' has no devices\n", element_name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
120 ret = g_list_prepend(ret, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
121 ret = g_list_reverse(ret); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
122 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
123 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
124 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
125 for (n=0; n < array->n_values; ++n) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
126 GValue *device; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
127 const gchar *name; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
128 const gchar *device_name; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
129 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
130 device = g_value_array_get_nth(array, n); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
131 g_object_set_property(G_OBJECT(element), "device", device); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
132 if (gst_element_set_state(element, GST_STATE_READY) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
133 != GST_STATE_CHANGE_SUCCESS) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
134 purple_debug_warning("vvconfig", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
135 "Error changing state of %s\n", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
136 element_name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
137 continue; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
138 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
139 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
140 g_object_get(G_OBJECT(element), "device-name", &name, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
141 device_name = g_value_get_string(device); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
142 if (name == NULL) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
143 name = _("Unknown"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
144 purple_debug_info("vvconfig", "Found device %s : %s for %s\n", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
145 device_name, name, element_name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
146 ret = g_list_prepend(ret, (gpointer)name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
147 ret = g_list_prepend(ret, (gpointer)device_name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
148 gst_element_set_state(element, GST_STATE_NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
149 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
150 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
151 gst_object_unref(element); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
152 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
153 ret = g_list_prepend(ret, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
154 ret = g_list_reverse(ret); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
155 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
156 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
157 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
158 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
159 static GList * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
160 get_element_plugins(const gchar **plugins) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
161 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
162 GList *ret = NULL; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
163 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
164 ret = g_list_prepend(ret, "Default"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
165 ret = g_list_prepend(ret, ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
166 for (; plugins[0] && plugins[1]; plugins += 2) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
167 if (gst_default_registry_check_feature_version( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
168 plugins[0], 0, 0, 0)) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
169 ret = g_list_prepend(ret, (gpointer)plugins[1]); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
170 ret = g_list_prepend(ret, (gpointer)plugins[0]); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
171 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
172 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
173 ret = g_list_prepend(ret, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
174 ret = g_list_reverse(ret); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
175 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
176 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
177 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
178 static void |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
179 device_changed_cb(const gchar *name, PurplePrefType type, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
180 gconstpointer value, gpointer data) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
181 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
182 GtkSizeGroup *sg = data; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
183 GtkWidget *parent, *widget; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
184 GSList *widgets; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
185 GList *devices; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
186 GValue gvalue; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
187 gint position; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
188 gchar *label, *pref; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
189 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
190 widgets = gtk_size_group_get_widgets(GTK_SIZE_GROUP(sg)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
191 for (; widgets; widgets = g_slist_next(widgets)) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
192 const gchar *widget_name = |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
193 gtk_widget_get_name(GTK_WIDGET(widgets->data)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
194 if (!strcmp(widget_name, name)) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
195 gchar *temp_str; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
196 gchar delimiters[3] = {0, 0, 0}; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
197 const gchar *text; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
198 gint keyval, pos; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
199 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
200 widget = widgets->data; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
201 /* Get label with _ from the GtkLabel */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
202 text = gtk_label_get_text(GTK_LABEL(widget)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
203 keyval = gtk_label_get_mnemonic_keyval(GTK_LABEL(widget)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
204 delimiters[0] = g_ascii_tolower(keyval); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
205 delimiters[1] = g_ascii_toupper(keyval); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
206 pos = strcspn(text, delimiters); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
207 if (pos != -1) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
208 temp_str = g_strndup(text, pos); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
209 label = g_strconcat(temp_str, "_", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
210 text + pos, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
211 g_free(temp_str); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
212 } else { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
213 label = g_strdup(text); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
214 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
215 break; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
216 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
217 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
218 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
219 if (widgets == NULL) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
220 return; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
221 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
222 parent = gtk_widget_get_parent(widget); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
223 widget = parent; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
224 parent = gtk_widget_get_parent(GTK_WIDGET(widget)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
225 gvalue.g_type = 0; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
226 g_value_init(&gvalue, G_TYPE_INT); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
227 gtk_container_child_get_property(GTK_CONTAINER(parent), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
228 GTK_WIDGET(widget), "position", &gvalue); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
229 position = g_value_get_int(&gvalue); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
230 g_value_unset(&gvalue); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
231 gtk_widget_destroy(widget); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
232 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
233 pref = g_strdup(name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
234 strcpy(pref + strlen(pref) - strlen("plugin"), "device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
235 devices = get_element_devices(value); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
236 if (g_list_find(devices, purple_prefs_get_string(pref)) == NULL) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
237 purple_prefs_set_string(pref, g_list_next(devices)->data); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
238 widget = pidgin_prefs_dropdown_from_list(parent, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
239 label, PURPLE_PREF_STRING, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
240 pref, devices); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
241 g_list_free(devices); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
242 g_signal_connect_swapped(widget, "destroy", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
243 G_CALLBACK(g_free), pref); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
244 g_free(label); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
245 gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
246 gtk_widget_set_name(widget, name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
247 gtk_size_group_add_widget(sg, widget); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
248 gtk_box_reorder_child(GTK_BOX(parent), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
249 gtk_widget_get_parent(GTK_WIDGET(widget)), position); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
250 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
251 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
252 static void |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
253 get_plugin_frame(GtkWidget *parent, GtkSizeGroup *sg, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
254 const gchar *name, const gchar *plugin_label, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
255 const gchar **plugin_strs, const gchar *plugin_pref, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
256 const gchar *device_label, const gchar *device_pref) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
257 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
258 GtkWidget *vbox, *widget; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
259 GList *plugins, *devices; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
260 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
261 vbox = pidgin_make_frame(parent, name); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
262 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
263 /* Setup plugin preference */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
264 plugins = get_element_plugins(plugin_strs); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
265 widget = pidgin_prefs_dropdown_from_list(vbox, plugin_label, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
266 PURPLE_PREF_STRING, plugin_pref, plugins); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
267 g_list_free(plugins); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
268 gtk_size_group_add_widget(sg, widget); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
269 gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
270 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
271 /* Setup device preference */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
272 devices = get_element_devices(purple_prefs_get_string(plugin_pref)); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
273 if (g_list_find(devices, purple_prefs_get_string(device_pref)) == NULL) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
274 purple_prefs_set_string(device_pref, g_list_next(devices)->data); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
275 widget = pidgin_prefs_dropdown_from_list(vbox, device_label, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
276 PURPLE_PREF_STRING, device_pref, devices); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
277 g_list_free(devices); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
278 gtk_widget_set_name(widget, plugin_pref); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
279 gtk_size_group_add_widget(sg, widget); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
280 gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
281 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
282 purple_prefs_connect_callback(vbox, plugin_pref, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
283 device_changed_cb, sg); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
284 g_signal_connect_swapped(vbox, "destroy", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
285 G_CALLBACK(purple_prefs_disconnect_by_handle), vbox); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
286 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
287 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
288 static GtkWidget * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
289 get_plugin_config_frame(PurplePlugin *plugin) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
290 GtkWidget *notebook, *vbox_audio, *vbox_video; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
291 GtkSizeGroup *sg; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
292 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
293 notebook = gtk_notebook_new(); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
294 gtk_container_set_border_width(GTK_CONTAINER(notebook), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
295 PIDGIN_HIG_BORDER); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
296 gtk_widget_show(notebook); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
297 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
298 vbox_audio = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
299 vbox_video = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
300 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
301 vbox_audio, gtk_label_new(_("Audio"))); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
302 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
303 vbox_video, gtk_label_new(_("Video"))); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
304 gtk_container_set_border_width(GTK_CONTAINER (vbox_audio), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
305 PIDGIN_HIG_BORDER); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
306 gtk_container_set_border_width(GTK_CONTAINER (vbox_video), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
307 PIDGIN_HIG_BORDER); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
308 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
309 gtk_widget_show(vbox_audio); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
310 gtk_widget_show(vbox_video); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
311 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
312 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
313 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
314 get_plugin_frame(vbox_audio, sg, _("Output"), _("_Plugin"), AUDIO_SINK_PLUGINS, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
315 "/plugins/core/vvconfig/audio/sink/plugin", _("_Device"), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
316 "/plugins/core/vvconfig/audio/sink/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
317 get_plugin_frame(vbox_audio, sg, _("Input"), _("P_lugin"), AUDIO_SRC_PLUGINS, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
318 "/plugins/core/vvconfig/audio/src/plugin", _("D_evice"), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
319 "/plugins/core/vvconfig/audio/src/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
320 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
321 get_plugin_frame(vbox_video, sg, _("Output"), _("_Plugin"), VIDEO_SINK_PLUGINS, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
322 "/plugins/gtk/vvconfig/video/sink/plugin", _("_Device"), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
323 "/plugins/gtk/vvconfig/video/sink/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
324 get_plugin_frame(vbox_video, sg, _("Input"), _("P_lugin"), VIDEO_SRC_PLUGINS, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
325 "/plugins/core/vvconfig/video/src/plugin", _("D_evice"), |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
326 "/plugins/core/vvconfig/video/src/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
327 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
328 return notebook; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
329 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
330 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
331 static GstElement * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
332 create_video_src(PurpleMedia *media, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
333 const gchar *session_id, const gchar *participant) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
334 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
335 const gchar *plugin = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
336 "/plugins/core/vvconfig/video/src/plugin"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
337 const gchar *device = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
338 "/plugins/core/vvconfig/video/src/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
339 GstElement *ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
340 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
341 if (plugin[0] == '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
342 return purple_media_element_info_call_create(old_video_src, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
343 media, session_id, participant); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
344 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
345 ret = gst_element_factory_make(plugin, "vvconfig-videosrc"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
346 if (device[0] != '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
347 g_object_set(G_OBJECT(ret), "device", device, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
348 if (!strcmp(plugin, "videotestsrc")) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
349 g_object_set(G_OBJECT(ret), "is-live", 1, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
350 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
351 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
352 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
353 static GstElement * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
354 create_video_sink(PurpleMedia *media, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
355 const gchar *session_id, const gchar *participant) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
356 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
357 const gchar *plugin = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
358 "/plugins/gtk/vvconfig/video/sink/plugin"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
359 const gchar *device = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
360 "/plugins/gtk/vvconfig/video/sink/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
361 GstElement *ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
362 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
363 if (plugin[0] == '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
364 return purple_media_element_info_call_create(old_video_sink, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
365 media, session_id, participant); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
366 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
367 ret = gst_element_factory_make(plugin, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
368 if (device[0] != '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
369 g_object_set(G_OBJECT(ret), "device", device, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
370 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
371 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
372 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
373 static GstElement * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
374 create_audio_src(PurpleMedia *media, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
375 const gchar *session_id, const gchar *participant) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
376 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
377 const gchar *plugin = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
378 "/plugins/core/vvconfig/audio/src/plugin"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
379 const gchar *device = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
380 "/plugins/core/vvconfig/audio/src/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
381 GstElement *ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
382 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
383 if (plugin[0] == '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
384 return purple_media_element_info_call_create(old_audio_src, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
385 media, session_id, participant); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
386 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
387 ret = gst_element_factory_make(plugin, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
388 if (device[0] != '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
389 g_object_set(G_OBJECT(ret), "device", device, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
390 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
391 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
392 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
393 static GstElement * |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
394 create_audio_sink(PurpleMedia *media, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
395 const gchar *session_id, const gchar *participant) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
396 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
397 const gchar *plugin = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
398 "/plugins/core/vvconfig/audio/sink/plugin"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
399 const gchar *device = purple_prefs_get_string( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
400 "/plugins/core/vvconfig/audio/sink/device"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
401 GstElement *ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
402 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
403 if (plugin[0] == '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
404 return purple_media_element_info_call_create(old_audio_sink, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
405 media, session_id, participant); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
406 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
407 ret = gst_element_factory_make(plugin, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
408 if (device[0] != '\0') |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
409 g_object_set(G_OBJECT(ret), "device", device, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
410 return ret; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
411 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
412 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
413 static void |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
414 set_element_info_cond(PurpleMediaElementInfo *old_info, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
415 PurpleMediaElementInfo *new_info, const gchar *id) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
416 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
417 gchar *element_id = purple_media_element_info_get_id(old_info); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
418 if (!strcmp(element_id, id)) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
419 purple_media_manager_set_active_element( |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
420 purple_media_manager_get(), new_info); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
421 g_free(element_id); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
422 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
423 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
424 static gboolean |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
425 plugin_load(PurplePlugin *plugin) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
426 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
427 PurpleMediaManager *manager; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
428 PurpleMediaElementInfo *video_src, *video_sink, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
429 *audio_src, *audio_sink; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
430 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
431 /* Disable the plugin if the UI doesn't support VV */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
432 if (purple_media_manager_get_ui_caps(purple_media_manager_get()) == |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
433 PURPLE_MEDIA_CAPS_NONE) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
434 return FALSE; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
435 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
436 purple_prefs_add_none("/plugins/core/vvconfig"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
437 purple_prefs_add_none("/plugins/core/vvconfig/audio"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
438 purple_prefs_add_none("/plugins/core/vvconfig/audio/src"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
439 purple_prefs_add_string("/plugins/core/vvconfig/audio/src/plugin", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
440 purple_prefs_add_string("/plugins/core/vvconfig/audio/src/device", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
441 purple_prefs_add_none("/plugins/core/vvconfig/audio/sink"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
442 purple_prefs_add_string("/plugins/core/vvconfig/audio/sink/plugin", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
443 purple_prefs_add_string("/plugins/core/vvconfig/audio/sink/device", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
444 purple_prefs_add_none("/plugins/core/vvconfig/video"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
445 purple_prefs_add_none("/plugins/core/vvconfig/video/src"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
446 purple_prefs_add_string("/plugins/core/vvconfig/video/src/plugin", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
447 purple_prefs_add_string("/plugins/core/vvconfig/video/src/device", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
448 purple_prefs_add_none("/plugins/gtk/vvconfig"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
449 purple_prefs_add_none("/plugins/gtk/vvconfig/video"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
450 purple_prefs_add_none("/plugins/gtk/vvconfig/video/sink"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
451 purple_prefs_add_string("/plugins/gtk/vvconfig/video/sink/plugin", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
452 purple_prefs_add_string("/plugins/gtk/vvconfig/video/sink/device", ""); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
453 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
454 video_src = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
455 "id", "vvconfig-videosrc", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
456 "name", "VV Conf Plugin Video Source", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
457 "type", PURPLE_MEDIA_ELEMENT_VIDEO |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
458 | PURPLE_MEDIA_ELEMENT_SRC |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
459 | PURPLE_MEDIA_ELEMENT_ONE_SRC |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
460 | PURPLE_MEDIA_ELEMENT_UNIQUE, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
461 "create-cb", create_video_src, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
462 video_sink = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
463 "id", "vvconfig-videosink", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
464 "name", "VV Conf Plugin Video Sink", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
465 "type", PURPLE_MEDIA_ELEMENT_VIDEO |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
466 | PURPLE_MEDIA_ELEMENT_SINK |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
467 | PURPLE_MEDIA_ELEMENT_ONE_SINK, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
468 "create-cb", create_video_sink, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
469 audio_src = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
470 "id", "vvconfig-audiosrc", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
471 "name", "VV Conf Plugin Audio Source", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
472 "type", PURPLE_MEDIA_ELEMENT_AUDIO |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
473 | PURPLE_MEDIA_ELEMENT_SRC |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
474 | PURPLE_MEDIA_ELEMENT_ONE_SRC |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
475 | PURPLE_MEDIA_ELEMENT_UNIQUE, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
476 "create-cb", create_audio_src, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
477 audio_sink = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
478 "id", "vvconfig-audiosink", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
479 "name", "VV Conf Plugin Audio Sink", |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
480 "type", PURPLE_MEDIA_ELEMENT_AUDIO |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
481 | PURPLE_MEDIA_ELEMENT_SINK |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
482 | PURPLE_MEDIA_ELEMENT_ONE_SINK, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
483 "create-cb", create_audio_sink, NULL); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
484 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
485 purple_debug_info("gtkmedia", "Registering media element types\n"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
486 manager = purple_media_manager_get(); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
487 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
488 old_video_src = purple_media_manager_get_active_element(manager, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
489 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
490 old_video_sink = purple_media_manager_get_active_element(manager, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
491 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
492 old_audio_src = purple_media_manager_get_active_element(manager, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
493 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
494 old_audio_sink = purple_media_manager_get_active_element(manager, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
495 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
496 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
497 set_element_info_cond(old_video_src, video_src, "pidgindefaultvideosrc"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
498 set_element_info_cond(old_video_sink, video_sink, "pidgindefaultvideosink"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
499 set_element_info_cond(old_audio_src, audio_src, "pidgindefaultaudiosrc"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
500 set_element_info_cond(old_audio_sink, audio_sink, "pidgindefaultaudiosink"); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
501 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
502 return TRUE; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
503 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
504 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
505 static gboolean |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
506 plugin_unload(PurplePlugin *plugin) |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
507 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
508 PurpleMediaManager *manager = purple_media_manager_get(); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
509 purple_media_manager_set_active_element(manager, old_video_src); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
510 purple_media_manager_set_active_element(manager, old_video_sink); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
511 purple_media_manager_set_active_element(manager, old_audio_src); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
512 purple_media_manager_set_active_element(manager, old_audio_sink); |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
513 return TRUE; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
514 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
515 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
516 static PidginPluginUiInfo ui_info = { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
517 get_plugin_config_frame, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
518 0, /* page_num (Reserved) */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
519 /* Padding */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
520 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
521 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
522 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
523 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
524 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
525 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
526 static PurplePluginInfo info = |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
527 { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
528 PURPLE_PLUGIN_MAGIC, /**< magic */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
529 PURPLE_MAJOR_VERSION, /**< major version */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
530 PURPLE_MINOR_VERSION, /**< minor version */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
531 PURPLE_PLUGIN_STANDARD, /**< type */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
532 PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
533 0, /**< flags */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
534 NULL, /**< dependencies */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
535 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
536 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
537 "gtk-maiku-vvconfig", /**< id */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
538 N_("Voice/Video Settings"), /**< name */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
539 DISPLAY_VERSION, /**< version */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
540 N_("Configure your microphone and webcam."), /**< summary */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
541 N_("Configure microphone and webcam " |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
542 "settings for voice/video calls."), /**< description */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
543 "Mike Ruprecht <cmaiku@gmail.com>", /**< author */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
544 PURPLE_WEBSITE, /**< homepage */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
545 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
546 plugin_load, /**< load */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
547 plugin_unload, /**< unload */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
548 NULL, /**< destroy */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
549 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
550 &ui_info, /**< ui_info */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
551 NULL, /**< extra_info */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
552 NULL, /**< prefs_info */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
553 NULL, /**< actions */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
554 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
555 /* padding */ |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
556 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
557 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
558 NULL, |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
559 NULL |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
560 }; |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
561 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
562 static void |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
563 init_plugin(PurplePlugin *plugin) { |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
564 } |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
565 |
33e8d40ae6ec
Add the vvconfig plugin. It allows you to choose different microphones,
maiku@pidgin.im
parents:
diff
changeset
|
566 PURPLE_INIT_PLUGIN(vvconfig, init_plugin, info) |