| 125 static GtkListStore *prefs_conv_variants; |
125 static GtkListStore *prefs_conv_variants; |
| 126 static GtkListStore *prefs_status_icon_themes; |
126 static GtkListStore *prefs_status_icon_themes; |
| 127 static GtkListStore *prefs_smiley_themes; |
127 static GtkListStore *prefs_smiley_themes; |
| 128 |
128 |
| 129 #ifdef USE_VV |
129 #ifdef USE_VV |
| 130 |
|
| 131 static const gchar *AUDIO_SRC_PLUGINS[] = { |
|
| 132 "alsasrc", "ALSA", |
|
| 133 "directsoundsrc", "DirectSound", |
|
| 134 /* "esdmon", "ESD", ? */ |
|
| 135 "osssrc", "OSS", |
|
| 136 "pulsesrc", "PulseAudio", |
|
| 137 "sndiosrc", "sndio", |
|
| 138 /* "audiotestsrc wave=silence", "Silence", */ |
|
| 139 /* Translators: This is a noun that refers to one possible audio input |
|
| 140 plugin. The plugin can be used by the user to sanity check basic audio |
|
| 141 functionality within Pidgin. */ |
|
| 142 "audiotestsrc", N_("Test Sound"), |
|
| 143 NULL |
|
| 144 }; |
|
| 145 |
|
| 146 static const gchar *AUDIO_SINK_PLUGINS[] = { |
|
| 147 "alsasink", "ALSA", |
|
| 148 "directsoundsink", "DirectSound", |
|
| 149 /* "gconfaudiosink", "GConf", */ |
|
| 150 "artsdsink", "aRts", |
|
| 151 "esdsink", "ESD", |
|
| 152 "osssink", "OSS", |
|
| 153 "pulsesink", "PulseAudio", |
|
| 154 "sndiosink", "sndio", |
|
| 155 NULL |
|
| 156 }; |
|
| 157 |
|
| 158 static const gchar *VIDEO_SRC_PLUGINS[] = { |
|
| 159 "videodisabledsrc", N_("Disabled"), |
|
| 160 /* Translators: This is a noun that refers to one possible video input |
|
| 161 plugin. The plugin can be used by the user to sanity check basic video |
|
| 162 functionality within Pidgin. */ |
|
| 163 "videotestsrc", N_("Test Input"), |
|
| 164 "dshowvideosrc","DirectDraw", |
|
| 165 "ksvideosrc", "KS Video", |
|
| 166 "qcamsrc", "Quickcam", |
|
| 167 "v4lsrc", "Video4Linux", |
|
| 168 "v4l2src", "Video4Linux2", |
|
| 169 "v4lmjpegsrc", "Video4Linux MJPEG", |
|
| 170 NULL |
|
| 171 }; |
|
| 172 |
|
| 173 static const gchar *VIDEO_SINK_PLUGINS[] = { |
|
| 174 /* "aasink", "AALib", Didn't work for me */ |
|
| 175 "directdrawsink", "DirectDraw", |
|
| 176 /* "gconfvideosink", "GConf", */ |
|
| 177 "glimagesink", "OpenGL", |
|
| 178 "ximagesink", "X Window System", |
|
| 179 "xvimagesink", "X Window System (Xv)", |
|
| 180 NULL |
|
| 181 }; |
|
| 182 |
130 |
| 183 static GtkWidget *voice_level; |
131 static GtkWidget *voice_level; |
| 184 static GtkWidget *voice_threshold; |
132 static GtkWidget *voice_threshold; |
| 185 static GtkWidget *voice_volume; |
133 static GtkWidget *voice_volume; |
| 186 static GstElement *voice_pipeline; |
134 static GstElement *voice_pipeline; |
| 3390 return ret; |
3338 return ret; |
| 3391 } |
3339 } |
| 3392 |
3340 |
| 3393 #ifdef USE_VV |
3341 #ifdef USE_VV |
| 3394 static GList * |
3342 static GList * |
| 3395 get_vv_element_devices(const gchar *element_name) |
3343 get_vv_device_menuitems(PurpleMediaElementType type) |
| 3396 { |
3344 { |
| 3397 GList *ret = NULL; |
3345 GList *result = NULL; |
| 3398 GstElement *element; |
3346 GList *i; |
| 3399 GObjectClass *klass; |
3347 |
| 3400 |
3348 i = purple_media_manager_enumerate_elements(purple_media_manager_get(), |
| 3401 ret = g_list_prepend(ret, g_strdup(_("Default"))); |
3349 type); |
| 3402 ret = g_list_prepend(ret, g_strdup("")); |
3350 for (; i; i = g_list_delete_link(i, i)) { |
| 3403 |
3351 PurpleMediaElementInfo *info = i->data; |
| 3404 if (!strcmp(element_name, "<custom>") || (*element_name == '\0')) { |
3352 |
| 3405 return g_list_reverse(ret); |
3353 result = g_list_append(result, |
| 3406 } |
3354 purple_media_element_info_get_name(info)); |
| 3407 |
3355 result = g_list_append(result, |
| 3408 if (g_strcmp0(element_name, "videodisabledsrc") == 0) { |
3356 purple_media_element_info_get_id(info)); |
| 3409 /* Translators: This string refers to 'static' or 'snow' sometimes |
3357 g_object_unref(info); |
| 3410 seen when trying to tune a TV to a non-existant analog station. */ |
3358 } |
| 3411 ret = g_list_prepend(ret, g_strdup(_("Random noise"))); |
3359 |
| 3412 ret = g_list_prepend(ret, g_strdup("snow")); |
3360 return result; |
| 3413 |
|
| 3414 return g_list_reverse(ret); |
|
| 3415 } |
|
| 3416 |
|
| 3417 element = gst_element_factory_make(element_name, "test"); |
|
| 3418 if (!element) { |
|
| 3419 purple_debug_info("vvconfig", "'%s' - unable to find element\n", |
|
| 3420 element_name); |
|
| 3421 return g_list_reverse(ret); |
|
| 3422 } |
|
| 3423 |
|
| 3424 klass = G_OBJECT_GET_CLASS (element); |
|
| 3425 if (!klass) { |
|
| 3426 purple_debug_info("vvconfig", "'%s' - unable to find GObject " |
|
| 3427 "Class\n", element_name); |
|
| 3428 return g_list_reverse(ret); |
|
| 3429 } |
|
| 3430 |
|
| 3431 purple_debug_info("vvconfig", "'%s' - gstreamer-1.0 doesn't suport " |
|
| 3432 "property probing\n", element_name); |
|
| 3433 |
|
| 3434 gst_object_unref(element); |
|
| 3435 return g_list_reverse(ret); |
|
| 3436 } |
|
| 3437 |
|
| 3438 static GList * |
|
| 3439 get_vv_element_plugins(const gchar **plugins) |
|
| 3440 { |
|
| 3441 GList *ret = NULL; |
|
| 3442 |
|
| 3443 ret = g_list_prepend(ret, (gpointer)_("Default")); |
|
| 3444 ret = g_list_prepend(ret, ""); |
|
| 3445 for (; plugins[0] && plugins[1]; plugins += 2) { |
|
| 3446 #if GST_CHECK_VERSION(1,0,0) |
|
| 3447 if (gst_registry_check_feature_version(gst_registry_get(), |
|
| 3448 plugins[0], 0, 0, 0) |
|
| 3449 #else |
|
| 3450 if (gst_default_registry_check_feature_version(plugins[0], 0, 0, 0) |
|
| 3451 #endif |
|
| 3452 || g_strcmp0(plugins[0], "videodisabledsrc") == 0) |
|
| 3453 { |
|
| 3454 ret = g_list_prepend(ret, (gpointer)_(plugins[1])); |
|
| 3455 ret = g_list_prepend(ret, (gpointer)plugins[0]); |
|
| 3456 } |
|
| 3457 } |
|
| 3458 |
|
| 3459 return g_list_reverse(ret); |
|
| 3460 } |
3361 } |
| 3461 |
3362 |
| 3462 static GstElement * |
3363 static GstElement * |
| 3463 create_test_element(PurpleMediaElementType type) |
3364 create_test_element(PurpleMediaElementType type) |
| 3464 { |
3365 { |
| 3841 g_signal_connect(test, "toggled", |
3742 g_signal_connect(test, "toggled", |
| 3842 G_CALLBACK(toggle_video_test_cb), NULL); |
3743 G_CALLBACK(toggle_video_test_cb), NULL); |
| 3843 } |
3744 } |
| 3844 |
3745 |
| 3845 static void |
3746 static void |
| 3846 vv_plugin_changed_cb(const gchar *name, PurplePrefType type, |
3747 vv_device_changed_cb(const gchar *name, PurplePrefType type, |
| 3847 gconstpointer value, gpointer data) |
3748 gconstpointer value, gpointer data) |
| 3848 { |
3749 { |
| 3849 GtkWidget *vbox = data; |
3750 PurpleMediaManager *manager; |
| 3850 GtkSizeGroup *sg; |
3751 PurpleMediaElementInfo *info; |
| 3851 GtkWidget *widget; |
3752 |
| 3852 gchar *pref; |
3753 manager = purple_media_manager_get(); |
| 3853 GList *devices; |
3754 info = purple_media_manager_get_element_info(manager, value); |
| 3854 |
3755 purple_media_manager_set_active_element(manager, info); |
| 3855 sg = g_object_get_data(G_OBJECT(vbox), "size-group"); |
|
| 3856 widget = g_object_get_data(G_OBJECT(vbox), "device-hbox"); |
|
| 3857 gtk_widget_destroy(widget); |
|
| 3858 |
|
| 3859 pref = g_strdup(name); |
|
| 3860 strcpy(pref + strlen(pref) - strlen("plugin"), "device"); |
|
| 3861 devices = get_vv_element_devices(value); |
|
| 3862 if (g_list_find_custom(devices, purple_prefs_get_string(pref), |
|
| 3863 (GCompareFunc)strcmp) == NULL) |
|
| 3864 { |
|
| 3865 GList *next = g_list_next(devices); |
|
| 3866 if (next) |
|
| 3867 purple_prefs_set_string(pref, next->data); |
|
| 3868 } |
|
| 3869 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"), |
|
| 3870 PURPLE_PREF_STRING, pref, devices); |
|
| 3871 g_list_free_full(devices, g_free); |
|
| 3872 gtk_size_group_add_widget(sg, widget); |
|
| 3873 gtk_widget_set_halign(widget, GTK_ALIGN_START); |
|
| 3874 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); |
|
| 3875 |
|
| 3876 g_object_set_data(G_OBJECT(vbox), "device-hbox", |
|
| 3877 gtk_widget_get_parent(widget)); |
|
| 3878 g_signal_connect_swapped(widget, "destroy", G_CALLBACK(g_free), pref); |
|
| 3879 |
3756 |
| 3880 /* Refresh test viewers */ |
3757 /* Refresh test viewers */ |
| 3881 if (strstr(name, "audio") && voice_pipeline) { |
3758 if (strstr(name, "audio") && voice_pipeline) { |
| 3882 voice_test_destroy_cb(NULL, NULL); |
3759 voice_test_destroy_cb(NULL, NULL); |
| 3883 enable_voice_test(); |
3760 enable_voice_test(); |
| 3887 } |
3764 } |
| 3888 } |
3765 } |
| 3889 |
3766 |
| 3890 static void |
3767 static void |
| 3891 make_vv_frame(GtkWidget *parent, GtkSizeGroup *sg, |
3768 make_vv_frame(GtkWidget *parent, GtkSizeGroup *sg, |
| 3892 const gchar *name, const gchar **plugin_strs, |
3769 const gchar *name, PurpleMediaElementType element_type, |
| 3893 const gchar *plugin_pref, const gchar *device_pref) |
3770 const gchar *preference_key) |
| 3894 { |
3771 { |
| 3895 GtkWidget *vbox, *widget; |
3772 GtkWidget *vbox, *widget; |
| 3896 GList *plugins, *devices; |
3773 GList *devices; |
| 3897 |
3774 |
| 3898 vbox = pidgin_make_frame(parent, name); |
3775 vbox = pidgin_make_frame(parent, name); |
| 3899 |
3776 |
| 3900 /* Setup plugin preference */ |
|
| 3901 plugins = get_vv_element_plugins(plugin_strs); |
|
| 3902 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Plugin"), |
|
| 3903 PURPLE_PREF_STRING, plugin_pref, |
|
| 3904 plugins); |
|
| 3905 g_list_free(plugins); |
|
| 3906 gtk_size_group_add_widget(sg, widget); |
|
| 3907 gtk_widget_set_halign(widget, GTK_ALIGN_START); |
|
| 3908 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); |
|
| 3909 |
|
| 3910 /* Setup device preference */ |
3777 /* Setup device preference */ |
| 3911 devices = get_vv_element_devices(purple_prefs_get_string(plugin_pref)); |
3778 devices = get_vv_device_menuitems(element_type); |
| 3912 if (g_list_find_custom(devices, purple_prefs_get_string(device_pref), |
3779 if (g_list_find_custom(devices, purple_prefs_get_string(preference_key), |
| 3913 (GCompareFunc)strcmp) == NULL) |
3780 (GCompareFunc)strcmp) == NULL) |
| 3914 { |
3781 { |
| 3915 GList *next = g_list_next(devices); |
3782 GList *next = g_list_next(devices); |
| 3916 if (next) |
3783 if (next) |
| 3917 purple_prefs_set_string(device_pref, next->data); |
3784 purple_prefs_set_string(preference_key, next->data); |
| 3918 } |
3785 } |
| 3919 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"), |
3786 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"), |
| 3920 PURPLE_PREF_STRING, device_pref, |
3787 PURPLE_PREF_STRING, preference_key, devices); |
| 3921 devices); |
|
| 3922 g_list_free_full(devices, g_free); |
3788 g_list_free_full(devices, g_free); |
| 3923 gtk_size_group_add_widget(sg, widget); |
3789 gtk_size_group_add_widget(sg, widget); |
| 3924 gtk_widget_set_halign(widget, GTK_ALIGN_START); |
3790 gtk_widget_set_halign(widget, GTK_ALIGN_START); |
| 3925 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); |
3791 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); |
| 3926 |
3792 |
| 3927 widget = gtk_widget_get_parent(widget); |
3793 purple_prefs_connect_callback(vbox, preference_key, |
| 3928 g_object_set_data(G_OBJECT(vbox), "size-group", sg); |
3794 vv_device_changed_cb, vbox); |
| 3929 g_object_set_data(G_OBJECT(vbox), "device-hbox", widget); |
|
| 3930 purple_prefs_connect_callback(vbox, plugin_pref, vv_plugin_changed_cb, |
|
| 3931 vbox); |
|
| 3932 g_signal_connect_swapped(vbox, "destroy", |
3795 g_signal_connect_swapped(vbox, "destroy", |
| 3933 G_CALLBACK(purple_prefs_disconnect_by_handle), vbox); |
3796 G_CALLBACK(purple_prefs_disconnect_by_handle), vbox); |
| 3934 } |
3797 } |
| 3935 |
3798 |
| 3936 static GtkWidget * |
3799 static GtkWidget * |
| 3944 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); |
3807 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); |
| 3945 |
3808 |
| 3946 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
3809 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3947 |
3810 |
| 3948 vbox = pidgin_make_frame(ret, _("Audio")); |
3811 vbox = pidgin_make_frame(ret, _("Audio")); |
| 3949 make_vv_frame(vbox, sg, _("Input"), AUDIO_SRC_PLUGINS, |
3812 make_vv_frame(vbox, sg, _("Input"), |
| 3950 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin", |
3813 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC, |
| 3951 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device"); |
3814 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device"); |
| 3952 make_vv_frame(vbox, sg, _("Output"), AUDIO_SINK_PLUGINS, |
3815 make_vv_frame(vbox, sg, _("Output"), |
| 3953 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin", |
3816 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK, |
| 3954 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device"); |
3817 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device"); |
| 3955 make_voice_test(vbox); |
3818 make_voice_test(vbox); |
| 3956 |
3819 |
| 3957 vbox = pidgin_make_frame(ret, _("Video")); |
3820 vbox = pidgin_make_frame(ret, _("Video")); |
| 3958 make_vv_frame(vbox, sg, _("Input"), VIDEO_SRC_PLUGINS, |
3821 make_vv_frame(vbox, sg, _("Input"), |
| 3959 PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin", |
3822 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC, |
| 3960 PIDGIN_PREFS_ROOT "/vvconfig/video/src/device"); |
3823 PIDGIN_PREFS_ROOT "/vvconfig/video/src/device"); |
| 3961 make_vv_frame(vbox, sg, _("Output"), VIDEO_SINK_PLUGINS, |
3824 make_vv_frame(vbox, sg, _("Output"), |
| 3962 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin", |
3825 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK, |
| 3963 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device"); |
3826 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device"); |
| 3964 make_video_test(vbox); |
3827 make_video_test(vbox); |
| 3965 |
3828 |
| 3966 gtk_widget_show_all(ret); |
3829 gtk_widget_show_all(ret); |
| 3967 |
3830 |
| 4138 #ifdef USE_VV |
4001 #ifdef USE_VV |
| 4139 /* Voice/Video */ |
4002 /* Voice/Video */ |
| 4140 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig"); |
4003 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig"); |
| 4141 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio"); |
4004 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio"); |
| 4142 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/src"); |
4005 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/src"); |
| 4143 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin", ""); |
|
| 4144 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", ""); |
4006 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", ""); |
| 4145 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink"); |
4007 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink"); |
| 4146 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin", ""); |
|
| 4147 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", ""); |
4008 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", ""); |
| 4148 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); |
4009 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); |
| 4149 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/src"); |
4010 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/src"); |
| 4150 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin", ""); |
|
| 4151 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", ""); |
4011 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", ""); |
| 4152 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); |
4012 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); |
| 4153 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/sink"); |
4013 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/sink"); |
| 4154 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin", ""); |
|
| 4155 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", ""); |
4014 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", ""); |
| 4156 #endif |
4015 #endif |
| 4157 |
4016 |
| 4158 pidgin_prefs_update_old(); |
4017 pidgin_prefs_update_old(); |
| 4159 } |
4018 } |
| 4248 PIDGIN_PREFS_ROOT "/conversations/im/x"); |
4107 PIDGIN_PREFS_ROOT "/conversations/im/x"); |
| 4249 purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/y", |
4108 purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/y", |
| 4250 PIDGIN_PREFS_ROOT "/conversations/im/y"); |
4109 PIDGIN_PREFS_ROOT "/conversations/im/y"); |
| 4251 |
4110 |
| 4252 /* Fixup vvconfig plugin prefs */ |
4111 /* Fixup vvconfig plugin prefs */ |
| 4253 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/plugin")) { |
|
| 4254 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin", |
|
| 4255 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/plugin")); |
|
| 4256 } |
|
| 4257 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/device")) { |
4112 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/device")) { |
| 4258 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", |
4113 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", |
| 4259 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/device")); |
4114 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/device")); |
| 4260 } |
4115 } |
| 4261 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/plugin")) { |
|
| 4262 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin", |
|
| 4263 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/plugin")); |
|
| 4264 } |
|
| 4265 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/device")) { |
4116 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/device")) { |
| 4266 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", |
4117 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", |
| 4267 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/device")); |
4118 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/device")); |
| 4268 } |
4119 } |
| 4269 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/plugin")) { |
|
| 4270 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin", |
|
| 4271 purple_prefs_get_string("/plugins/core/vvconfig/video/src/plugin")); |
|
| 4272 } |
|
| 4273 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/device")) { |
4120 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/device")) { |
| 4274 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", |
4121 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", |
| 4275 purple_prefs_get_string("/plugins/core/vvconfig/video/src/device")); |
4122 purple_prefs_get_string("/plugins/core/vvconfig/video/src/device")); |
| 4276 } |
4123 } |
| 4277 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/plugin")) { |
|
| 4278 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin", |
|
| 4279 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/plugin")); |
|
| 4280 } |
|
| 4281 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/device")) { |
4124 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/device")) { |
| 4282 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", |
4125 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", |
| 4283 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/device")); |
4126 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/device")); |
| 4284 } |
4127 } |
| 4285 |
4128 |
| 4286 purple_prefs_remove("/plugins/core/vvconfig"); |
4129 purple_prefs_remove("/plugins/core/vvconfig"); |
| 4287 purple_prefs_remove("/plugins/gtk/vvconfig"); |
4130 purple_prefs_remove("/plugins/gtk/vvconfig"); |
| |
4131 |
| |
4132 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin"); |
| |
4133 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin"); |
| |
4134 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin"); |
| |
4135 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin"); |
| 4288 |
4136 |
| 4289 #ifndef _WIN32 |
4137 #ifndef _WIN32 |
| 4290 /* Added in 3.0.0. */ |
4138 /* Added in 3.0.0. */ |
| 4291 if (purple_prefs_get_int(PIDGIN_PREFS_ROOT "/browsers/place") == 1) { |
4139 if (purple_prefs_get_int(PIDGIN_PREFS_ROOT "/browsers/place") == 1) { |
| 4292 /* If the "open link in" pref is set to the old value for "existing |
4140 /* If the "open link in" pref is set to the old value for "existing |