Sat, 29 Oct 2022 01:14:13 -0500
Convert PidginProxyPrefs to Adwaita 1.2
Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.
Reviewed at https://reviews.imfreedom.org/r/1996/
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
1 | /* |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
4 | * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
8 | * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
13 | * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
18 | * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
21 | */ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
22 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
23 | #ifdef HAVE_CONFIG_H |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
24 | #include <config.h> |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
25 | #endif |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
26 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
27 | #include <math.h> |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
28 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
29 | #include <glib/gi18n-lib.h> |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
30 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
31 | #include <purple.h> |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
32 | |
|
41552
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
33 | #include <adwaita.h> |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
34 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
35 | #include "pidginvvprefs.h" |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
36 | #include "pidgincore.h" |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
37 | #include "pidginprefsinternal.h" |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
38 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
39 | struct _PidginVVPrefs { |
|
41552
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
40 | AdwPreferencesPage parent; |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
41 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
42 | struct { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
43 | PidginPrefCombo input; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
44 | PidginPrefCombo output; |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
45 | GtkWidget *threshold_row; |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
46 | GtkWidget *threshold; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
47 | GtkWidget *volume; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
48 | GtkWidget *test; |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
49 | GtkWidget *level; |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
50 | GtkWidget *drop; |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
51 | GstElement *pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
52 | } voice; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
53 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
54 | struct { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
55 | PidginPrefCombo input; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
56 | PidginPrefCombo output; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
57 | GtkWidget *frame; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
58 | GtkWidget *test; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
59 | GstElement *pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
60 | } video; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
61 | }; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
62 | |
|
41552
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
63 | G_DEFINE_TYPE(PidginVVPrefs, pidgin_vv_prefs, ADW_TYPE_PREFERENCES_PAGE) |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
64 | |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
65 | /* Keep in sync with voice.level's GtkLevelBar::max-value in the |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
66 | * pidgin/resources/Prefs.vv.ui builder file. */ |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
67 | #define MAX_AUDIO_LEVEL (19.0) |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
68 | |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
69 | /****************************************************************************** |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
70 | * Helpers |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
71 | *****************************************************************************/ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
72 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
73 | populate_vv_device_menuitems(PurpleMediaElementType type, GtkListStore *store) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
74 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
75 | PurpleMediaManager *manager = NULL; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
76 | GList *devices; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
77 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
78 | gtk_list_store_clear(store); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
79 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
80 | manager = purple_media_manager_get(); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
81 | devices = purple_media_manager_enumerate_elements(manager, type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
82 | for (; devices; devices = g_list_delete_link(devices, devices)) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
83 | PurpleMediaElementInfo *info = devices->data; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
84 | GtkTreeIter iter; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
85 | const gchar *name, *id; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
86 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
87 | name = purple_media_element_info_get_name(info); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
88 | id = purple_media_element_info_get_id(info); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
89 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
90 | gtk_list_store_append(store, &iter); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
91 | gtk_list_store_set(store, &iter, PIDGIN_PREF_COMBO_TEXT, name, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
92 | PIDGIN_PREF_COMBO_VALUE, id, -1); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
93 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
94 | g_object_unref(info); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
95 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
96 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
97 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
98 | static GstElement * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
99 | create_test_element(PurpleMediaElementType type) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
100 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
101 | PurpleMediaElementInfo *element_info; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
102 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
103 | element_info = purple_media_manager_get_active_element(purple_media_manager_get(), type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
104 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
105 | g_return_val_if_fail(element_info, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
106 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
107 | return purple_media_element_info_call_create(element_info, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
108 | NULL, NULL, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
109 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
110 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
111 | static GstElement * |
|
41613
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
112 | create_voice_pipeline(PidginVVPrefs *prefs) |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
113 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
114 | GstElement *pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
115 | GstElement *src, *sink; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
116 | GstElement *volume; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
117 | GstElement *level; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
118 | GstElement *valve; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
119 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
120 | pipeline = gst_pipeline_new("voicetest"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
121 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
122 | src = create_test_element(PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
123 | sink = create_test_element(PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
124 | volume = gst_element_factory_make("volume", "volume"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
125 | level = gst_element_factory_make("level", "level"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
126 | valve = gst_element_factory_make("valve", "valve"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
127 | |
|
41613
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
128 | g_object_set(volume, "volume", |
|
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
129 | gtk_scale_button_get_value(GTK_SCALE_BUTTON(prefs->voice.volume)) / 100.0, |
|
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
130 | NULL); |
|
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
131 | |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
132 | gst_bin_add_many(GST_BIN(pipeline), src, volume, level, valve, sink, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
133 | gst_element_link_many(src, volume, level, valve, sink, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
134 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
135 | purple_debug_info("gtkprefs", "create_voice_pipeline: setting pipeline " |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
136 | "state to GST_STATE_PLAYING - it may hang here on win32\n"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
137 | gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
138 | purple_debug_info("gtkprefs", "create_voice_pipeline: state is set\n"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
139 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
140 | return pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
141 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
142 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
143 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
144 | on_volume_change_cb(GtkWidget *w, gdouble value, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
145 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
146 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
147 | GstElement *volume; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
148 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
149 | if (!prefs->voice.pipeline) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
150 | return; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
151 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
152 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
153 | volume = gst_bin_get_by_name(GST_BIN(prefs->voice.pipeline), "volume"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
154 | g_object_set(volume, "volume", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
155 | gtk_scale_button_get_value(GTK_SCALE_BUTTON(w)) / 100.0, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
156 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
157 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
158 | static gdouble |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
159 | gst_msg_db_to_percent(GstMessage *msg, gchar *value_name) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
160 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
161 | const GValue *list; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
162 | const GValue *value; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
163 | gdouble value_db; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
164 | gdouble percent; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
165 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
166 | list = gst_structure_get_value(gst_message_get_structure(msg), value_name); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
167 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
168 | value = g_value_array_get_nth(g_value_get_boxed(list), 0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
169 | G_GNUC_END_IGNORE_DEPRECATIONS |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
170 | value_db = g_value_get_double(value); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
171 | percent = pow(10, value_db / 20); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
172 | return (percent > 1.0) ? 1.0 : percent; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
173 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
174 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
175 | static gboolean |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
176 | gst_bus_cb(GstBus *bus, GstMessage *msg, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
177 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
178 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
179 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
180 | if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ELEMENT && |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
181 | gst_structure_has_name(gst_message_get_structure(msg), "level")) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
182 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
183 | GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
184 | gchar *name = gst_element_get_name(src); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
185 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
186 | if (purple_strequal(name, "level")) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
187 | gdouble percent; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
188 | gdouble threshold; |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
189 | gboolean drop; |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
190 | GstElement *valve; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
191 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
192 | percent = gst_msg_db_to_percent(msg, "rms"); |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
193 | gtk_level_bar_set_value(GTK_LEVEL_BAR(prefs->voice.level), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
194 | percent * MAX_AUDIO_LEVEL); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
195 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
196 | percent = gst_msg_db_to_percent(msg, "decay"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
197 | threshold = gtk_range_get_value(GTK_RANGE( |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
198 | prefs->voice.threshold)) / |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
199 | 100.0; |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
200 | drop = percent < threshold; |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
201 | |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
202 | valve = gst_bin_get_by_name(GST_BIN(GST_ELEMENT_PARENT(src)), "valve"); |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
203 | g_object_set(valve, "drop", drop, NULL); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
204 | gtk_label_set_text(GTK_LABEL(prefs->voice.drop), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
205 | drop ? _("DROP") : ""); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
206 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
207 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
208 | g_free(name); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
209 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
210 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
211 | return TRUE; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
212 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
213 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
214 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
215 | voice_test_destroy_cb(GtkWidget *w, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
216 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
217 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
218 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
219 | if (!prefs->voice.pipeline) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
220 | return; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
221 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
222 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
223 | gst_element_set_state(prefs->voice.pipeline, GST_STATE_NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
224 | g_clear_pointer(&prefs->voice.pipeline, gst_object_unref); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
225 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
226 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
227 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
228 | enable_voice_test(PidginVVPrefs *prefs) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
229 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
230 | GstBus *bus; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
231 | |
|
41613
4be49932c288
Set volume on audio test pipeline at startup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41552
diff
changeset
|
232 | prefs->voice.pipeline = create_voice_pipeline(prefs); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
233 | bus = gst_pipeline_get_bus(GST_PIPELINE(prefs->voice.pipeline)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
234 | gst_bus_add_signal_watch(bus); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
235 | g_signal_connect(bus, "message", G_CALLBACK(gst_bus_cb), prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
236 | gst_object_unref(bus); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
237 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
238 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
239 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
240 | toggle_voice_test_cb(GtkToggleButton *test, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
241 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
242 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
243 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
244 | if (gtk_toggle_button_get_active(test)) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
245 | enable_voice_test(prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
246 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
247 | g_signal_connect(prefs->voice.volume, "value-changed", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
248 | G_CALLBACK(on_volume_change_cb), prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
249 | g_signal_connect(test, "destroy", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
250 | G_CALLBACK(voice_test_destroy_cb), prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
251 | } else { |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
252 | gtk_level_bar_set_value(GTK_LEVEL_BAR(prefs->voice.level), 0.0); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
253 | gtk_label_set_text(GTK_LABEL(prefs->voice.drop), ""); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
254 | g_object_disconnect(prefs->voice.volume, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
255 | "any-signal::value-changed", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
256 | G_CALLBACK(on_volume_change_cb), prefs, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
257 | g_object_disconnect(test, "any-signal::destroy", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
258 | G_CALLBACK(voice_test_destroy_cb), prefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
259 | NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
260 | voice_test_destroy_cb(NULL, prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
261 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
262 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
263 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
264 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
265 | volume_changed_cb(GtkScaleButton *button, gdouble value, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
266 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
267 | purple_prefs_set_int("/purple/media/audio/volume/input", value * 100); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
268 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
269 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
270 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
271 | threshold_value_changed_cb(GtkScale *scale, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
272 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
273 | PidginVVPrefs *prefs = data; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
274 | int value; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
275 | char *tmp; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
276 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
277 | value = (int)gtk_range_get_value(GTK_RANGE(scale)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
278 | tmp = g_strdup_printf(_("Silence threshold: %d%%"), value); |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
279 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(prefs->voice.threshold_row), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
280 | tmp); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
281 | g_free(tmp); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
282 | |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
283 | gtk_level_bar_add_offset_value(GTK_LEVEL_BAR(prefs->voice.level), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
284 | GTK_LEVEL_BAR_OFFSET_LOW, |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
285 | value / 100.0 * MAX_AUDIO_LEVEL); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
286 | |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
287 | purple_prefs_set_int("/purple/media/audio/silence_threshold", value); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
288 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
289 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
290 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
291 | bind_voice_test(PidginVVPrefs *prefs) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
292 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
293 | char *tmp; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
294 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
295 | gtk_scale_button_set_value(GTK_SCALE_BUTTON(prefs->voice.volume), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
296 | purple_prefs_get_int("/purple/media/audio/volume/input") / 100.0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
297 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
298 | tmp = g_strdup_printf(_("Silence threshold: %d%%"), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
299 | purple_prefs_get_int("/purple/media/audio/silence_threshold")); |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
300 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(prefs->voice.threshold_row), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
301 | tmp); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
302 | g_free(tmp); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
303 | |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
304 | /* Move the default high levels to the end (low is set by |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
305 | * threshold_value_changed_cb when set below.) */ |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
306 | gtk_level_bar_add_offset_value(GTK_LEVEL_BAR(prefs->voice.level), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
307 | GTK_LEVEL_BAR_OFFSET_HIGH, |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
308 | MAX_AUDIO_LEVEL); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
309 | gtk_level_bar_add_offset_value(GTK_LEVEL_BAR(prefs->voice.level), |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
310 | GTK_LEVEL_BAR_OFFSET_FULL, |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
311 | MAX_AUDIO_LEVEL); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
312 | |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
313 | gtk_range_set_value(GTK_RANGE(prefs->voice.threshold), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
314 | purple_prefs_get_int("/purple/media/audio/silence_threshold")); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
315 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
316 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
317 | static GstElement * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
318 | create_video_pipeline(void) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
319 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
320 | GstElement *pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
321 | GstElement *src, *sink; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
322 | GstElement *videoconvert; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
323 | GstElement *videoscale; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
324 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
325 | pipeline = gst_pipeline_new("videotest"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
326 | src = create_test_element(PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
327 | sink = create_test_element(PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
328 | videoconvert = gst_element_factory_make("videoconvert", NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
329 | videoscale = gst_element_factory_make("videoscale", NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
330 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
331 | g_object_set_data(G_OBJECT(pipeline), "sink", sink); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
332 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
333 | gst_bin_add_many(GST_BIN(pipeline), src, videoconvert, videoscale, sink, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
334 | NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
335 | gst_element_link_many(src, videoconvert, videoscale, sink, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
336 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
337 | return pipeline; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
338 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
339 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
340 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
341 | video_test_destroy_cb(GtkWidget *w, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
342 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
343 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
344 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
345 | if (!prefs->video.pipeline) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
346 | return; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
347 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
348 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
349 | gst_element_set_state(prefs->video.pipeline, GST_STATE_NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
350 | g_clear_pointer(&prefs->video.pipeline, gst_object_unref); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
351 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
352 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
353 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
354 | enable_video_test(PidginVVPrefs *prefs) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
355 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
356 | GtkWidget *video = NULL; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
357 | GstElement *sink = NULL; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
358 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
359 | prefs->video.pipeline = create_video_pipeline(); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
360 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
361 | sink = g_object_get_data(G_OBJECT(prefs->video.pipeline), "sink"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
362 | g_object_get(sink, "widget", &video, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
363 | gtk_widget_show(video); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
364 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
365 | gtk_widget_set_size_request(prefs->video.frame, 400, 300); |
|
41552
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
366 | gtk_aspect_frame_set_child(GTK_ASPECT_FRAME(prefs->video.frame), video); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
367 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
368 | gst_element_set_state(GST_ELEMENT(prefs->video.pipeline), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
369 | GST_STATE_PLAYING); |
|
41552
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
370 | |
|
c9157099adf8
Convert Voice&Video prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41394
diff
changeset
|
371 | g_object_unref(video); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
372 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
373 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
374 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
375 | toggle_video_test_cb(GtkToggleButton *test, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
376 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
377 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
378 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
379 | if (gtk_toggle_button_get_active(test)) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
380 | enable_video_test(prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
381 | g_signal_connect(test, "destroy", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
382 | G_CALLBACK(video_test_destroy_cb), prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
383 | } else { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
384 | g_object_disconnect(test, "any-signal::destroy", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
385 | G_CALLBACK(video_test_destroy_cb), prefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
386 | NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
387 | video_test_destroy_cb(NULL, prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
388 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
389 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
390 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
391 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
392 | vv_device_changed_cb(const gchar *name, PurplePrefType type, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
393 | gconstpointer value, gpointer data) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
394 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
395 | PidginVVPrefs *prefs = PIDGIN_VV_PREFS(data); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
396 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
397 | PurpleMediaManager *manager; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
398 | PurpleMediaElementInfo *info; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
399 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
400 | manager = purple_media_manager_get(); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
401 | info = purple_media_manager_get_element_info(manager, value); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
402 | purple_media_manager_set_active_element(manager, info); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
403 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
404 | /* Refresh test viewers */ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
405 | if (strstr(name, "audio") && prefs->voice.pipeline) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
406 | voice_test_destroy_cb(NULL, prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
407 | enable_voice_test(prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
408 | } else if (strstr(name, "video") && prefs->video.pipeline) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
409 | video_test_destroy_cb(NULL, prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
410 | enable_video_test(prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
411 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
412 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
413 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
414 | static const char * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
415 | purple_media_type_to_preference_key(PurpleMediaElementType type) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
416 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
417 | if (type & PURPLE_MEDIA_ELEMENT_AUDIO) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
418 | if (type & PURPLE_MEDIA_ELEMENT_SRC) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
419 | return PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device"; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
420 | } else if (type & PURPLE_MEDIA_ELEMENT_SINK) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
421 | return PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device"; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
422 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
423 | } else if (type & PURPLE_MEDIA_ELEMENT_VIDEO) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
424 | if (type & PURPLE_MEDIA_ELEMENT_SRC) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
425 | return PIDGIN_PREFS_ROOT "/vvconfig/video/src/device"; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
426 | } else if (type & PURPLE_MEDIA_ELEMENT_SINK) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
427 | return PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device"; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
428 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
429 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
430 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
431 | return NULL; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
432 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
433 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
434 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
435 | bind_vv_dropdown(PidginPrefCombo *combo, PurpleMediaElementType element_type) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
436 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
437 | const gchar *preference_key; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
438 | GtkTreeModel *model; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
439 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
440 | preference_key = purple_media_type_to_preference_key(element_type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
441 | model = gtk_combo_box_get_model(GTK_COMBO_BOX(combo->combo)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
442 | populate_vv_device_menuitems(element_type, GTK_LIST_STORE(model)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
443 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
444 | combo->type = PURPLE_PREF_STRING; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
445 | combo->key = preference_key; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
446 | pidgin_prefs_bind_dropdown(combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
447 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
448 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
449 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
450 | bind_vv_frame(PidginVVPrefs *prefs, PidginPrefCombo *combo, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
451 | PurpleMediaElementType type) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
452 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
453 | bind_vv_dropdown(combo, type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
454 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
455 | purple_prefs_connect_callback(combo->combo, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
456 | purple_media_type_to_preference_key(type), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
457 | vv_device_changed_cb, prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
458 | g_signal_connect_swapped(combo->combo, "destroy", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
459 | G_CALLBACK(purple_prefs_disconnect_by_handle), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
460 | combo->combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
461 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
462 | g_object_set_data(G_OBJECT(combo->combo), "vv_media_type", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
463 | (gpointer)type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
464 | g_object_set_data(G_OBJECT(combo->combo), "vv_combo", combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
465 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
466 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
467 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
468 | device_list_changed_cb(PurpleMediaManager *manager, GtkWidget *widget) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
469 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
470 | PidginPrefCombo *combo; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
471 | PurpleMediaElementType media_type; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
472 | const gchar *preference_key; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
473 | guint signal_id; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
474 | GtkTreeModel *model; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
475 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
476 | combo = g_object_get_data(G_OBJECT(widget), "vv_combo"); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
477 | media_type = (PurpleMediaElementType)GPOINTER_TO_INT(g_object_get_data( |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
478 | G_OBJECT(widget), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
479 | "vv_media_type")); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
480 | preference_key = purple_media_type_to_preference_key(media_type); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
481 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
482 | /* Block signals so pref doesn't get re-saved while changing UI. */ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
483 | signal_id = g_signal_lookup("changed", GTK_TYPE_COMBO_BOX); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
484 | g_signal_handlers_block_matched(combo->combo, G_SIGNAL_MATCH_ID, signal_id, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
485 | 0, NULL, NULL, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
486 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
487 | model = gtk_combo_box_get_model(GTK_COMBO_BOX(combo->combo)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
488 | populate_vv_device_menuitems(media_type, GTK_LIST_STORE(model)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
489 | gtk_combo_box_set_active_id(GTK_COMBO_BOX(combo->combo), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
490 | purple_prefs_get_string(preference_key)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
491 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
492 | g_signal_handlers_unblock_matched(combo->combo, G_SIGNAL_MATCH_ID, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
493 | signal_id, 0, NULL, NULL, NULL); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
494 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
495 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
496 | /****************************************************************************** |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
497 | * GObject Implementation |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
498 | *****************************************************************************/ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
499 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
500 | pidgin_vv_prefs_class_init(PidginVVPrefsClass *klass) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
501 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
502 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
503 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
504 | gtk_widget_class_set_template_from_resource( |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
505 | widget_class, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
506 | "/im/pidgin/Pidgin3/Prefs/vv.ui" |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
507 | ); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
508 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
509 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
510 | voice.input.combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
511 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
512 | voice.output.combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
513 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
514 | voice.volume); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
515 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
516 | voice.threshold_row); |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
517 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
518 | voice.threshold); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
519 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
520 | voice.level); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
521 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
41627
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
522 | voice.drop); |
|
7d9b4a9d5c3e
Move VV preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41613
diff
changeset
|
523 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
41394
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
524 | voice.test); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
525 | gtk_widget_class_bind_template_callback(widget_class, volume_changed_cb); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
526 | gtk_widget_class_bind_template_callback(widget_class, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
527 | threshold_value_changed_cb); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
528 | gtk_widget_class_bind_template_callback(widget_class, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
529 | toggle_voice_test_cb); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
530 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
531 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
532 | video.input.combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
533 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
534 | video.output.combo); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
535 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
536 | video.frame); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
537 | gtk_widget_class_bind_template_child(widget_class, PidginVVPrefs, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
538 | video.test); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
539 | gtk_widget_class_bind_template_callback(widget_class, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
540 | toggle_video_test_cb); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
541 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
542 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
543 | static void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
544 | pidgin_vv_prefs_init(PidginVVPrefs *prefs) |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
545 | { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
546 | PurpleMediaManager *manager = NULL; |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
547 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
548 | gtk_widget_init_template(GTK_WIDGET(prefs)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
549 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
550 | manager = purple_media_manager_get(); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
551 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
552 | bind_vv_frame(prefs, &prefs->voice.input, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
553 | PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
554 | g_signal_connect_object(manager, "elements-changed::audiosrc", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
555 | G_CALLBACK(device_list_changed_cb), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
556 | prefs->voice.input.combo, 0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
557 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
558 | bind_vv_frame(prefs, &prefs->voice.output, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
559 | PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
560 | g_signal_connect_object(manager, "elements-changed::audiosink", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
561 | G_CALLBACK(device_list_changed_cb), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
562 | prefs->voice.output.combo, 0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
563 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
564 | bind_voice_test(prefs); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
565 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
566 | bind_vv_frame(prefs, &prefs->video.input, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
567 | PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
568 | g_signal_connect_object(manager, "elements-changed::videosrc", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
569 | G_CALLBACK(device_list_changed_cb), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
570 | prefs->video.input.combo, 0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
571 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
572 | bind_vv_frame(prefs, &prefs->video.output, |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
573 | PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
574 | g_signal_connect_object(manager, "elements-changed::videosink", |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
575 | G_CALLBACK(device_list_changed_cb), |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
576 | prefs->video.output.combo, 0); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
577 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
578 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
579 | /****************************************************************************** |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
580 | * API |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
581 | *****************************************************************************/ |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
582 | GtkWidget * |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
583 | pidgin_vv_prefs_new(void) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
584 | return GTK_WIDGET(g_object_new(PIDGIN_TYPE_VV_PREFS, NULL)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
585 | } |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
586 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
587 | void |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
588 | pidgin_vv_prefs_disable_test_pipelines(PidginVVPrefs *prefs) { |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
589 | g_return_if_fail(PIDGIN_IS_VV_PREFS(prefs)); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
590 | |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
591 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prefs->voice.test), FALSE); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
592 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prefs->video.test), FALSE); |
|
1327e58acce3
Split VV prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
593 | } |