mirror of
https://github.com/Rafostar/clapper.git
synced 2025-12-24 05:56:41 +01:00
clapper-app: Add Control Hub Enhancer support
When installed configure and use it instead of ClapperServer feature. Also hide all server feature options in preferences when not being used.
This commit is contained in:
@@ -36,6 +36,8 @@ struct _ClapperAppPreferencesWindow
|
||||
AdwComboRow *seek_method_combo_row;
|
||||
AdwComboRow *seek_unit_combo_row;
|
||||
AdwSpinRow *seek_value_spin_row;
|
||||
|
||||
AdwPreferencesGroup *features_group;
|
||||
AdwSwitchRow *server_switch_row;
|
||||
|
||||
AdwSpinRow *audio_offset_spin_row;
|
||||
@@ -863,6 +865,10 @@ clapper_app_preferences_window_new (GtkApplication *gtk_app)
|
||||
static void
|
||||
clapper_app_preferences_window_init (ClapperAppPreferencesWindow *self)
|
||||
{
|
||||
#if CLAPPER_HAVE_SERVER
|
||||
ClapperEnhancerProxy *proxy;
|
||||
#endif
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
self->rank_rows = g_ptr_array_new ();
|
||||
@@ -877,10 +883,15 @@ clapper_app_preferences_window_init (ClapperAppPreferencesWindow *self)
|
||||
self->seek_value_spin_row, "value", G_SETTINGS_BIND_DEFAULT);
|
||||
|
||||
#if CLAPPER_HAVE_SERVER
|
||||
g_settings_bind (self->settings, "server-enabled",
|
||||
self->server_switch_row, "active", G_SETTINGS_BIND_DEFAULT);
|
||||
#else
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (self->server_switch_row), FALSE);
|
||||
/* When both are available, prefer enhancer over deprecated feature */
|
||||
if ((proxy = clapper_enhancer_proxy_list_get_proxy_by_module (
|
||||
clapper_get_global_enhancer_proxies (), "clapper-control-hub"))) {
|
||||
gst_object_unref (proxy);
|
||||
} else {
|
||||
g_settings_bind (self->settings, "server-enabled",
|
||||
self->server_switch_row, "active", G_SETTINGS_BIND_DEFAULT);
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->features_group), TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
g_settings_bind (self->settings, "audio-offset",
|
||||
@@ -964,6 +975,8 @@ clapper_app_preferences_window_class_init (ClapperAppPreferencesWindowClass *kla
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, seek_method_combo_row);
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, seek_unit_combo_row);
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, seek_value_spin_row);
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, features_group);
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, server_switch_row);
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, ClapperAppPreferencesWindow, audio_offset_spin_row);
|
||||
|
||||
@@ -1282,14 +1282,20 @@ clapper_app_window_constructed (GObject *object)
|
||||
#endif
|
||||
}
|
||||
|
||||
if ((proxy = clapper_enhancer_proxy_list_get_proxy_by_module (proxies, "clapper-control-hub"))) {
|
||||
clapper_enhancer_proxy_set_locally (proxy,
|
||||
"queue-controllable", TRUE, NULL);
|
||||
gst_object_unref (proxy);
|
||||
} else {
|
||||
#if CLAPPER_HAVE_SERVER
|
||||
feature = CLAPPER_FEATURE (clapper_server_new ());
|
||||
clapper_server_set_queue_controllable (CLAPPER_SERVER (feature), TRUE);
|
||||
g_settings_bind (self->settings, "server-enabled",
|
||||
feature, "enabled", G_SETTINGS_BIND_GET);
|
||||
clapper_player_add_feature (player, feature);
|
||||
gst_object_unref (feature);
|
||||
feature = CLAPPER_FEATURE (clapper_server_new ());
|
||||
clapper_server_set_queue_controllable (CLAPPER_SERVER (feature), TRUE);
|
||||
g_settings_bind (self->settings, "server-enabled",
|
||||
feature, "enabled", G_SETTINGS_BIND_GET);
|
||||
clapper_player_add_feature (player, feature);
|
||||
gst_object_unref (feature);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CLAPPER_HAVE_DISCOVERER
|
||||
if ((proxy = clapper_enhancer_proxy_list_get_proxy_by_module (proxies, "clapper-media-scanner"))) {
|
||||
|
||||
@@ -59,8 +59,9 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<object class="AdwPreferencesGroup" id="features_group">
|
||||
<property name="title" translatable="yes">Features</property>
|
||||
<property name="visible">false</property>
|
||||
<child>
|
||||
<object class="AdwSwitchRow" id="server_switch_row">
|
||||
<property name="title" translatable="yes">Server</property>
|
||||
|
||||
Reference in New Issue
Block a user