summaryrefslogtreecommitdiff
path: root/libdleyna/server/manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdleyna/server/manager.c')
-rw-r--r--libdleyna/server/manager.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/libdleyna/server/manager.c b/libdleyna/server/manager.c
index c1afc96..1c32a02 100644
--- a/libdleyna/server/manager.c
+++ b/libdleyna/server/manager.c
@@ -167,6 +167,37 @@ void dls_manager_get_prop(dls_manager_t *manager,
DLEYNA_LOG_DEBUG("Exit");
}
+static void prv_set_prop_never_quit(dls_manager_t *manager,
+ dleyna_settings_t *settings,
+ gboolean never_quit,
+ GError **error)
+{
+ GVariant *prop_val;
+ gboolean old_val;
+
+ DLEYNA_LOG_DEBUG("Enter %d", never_quit);
+
+ old_val = dleyna_settings_is_never_quit(settings);
+
+ if (old_val == never_quit)
+ goto exit;
+
+ /* If no error, the white list will be updated in the reload callack
+ */
+ dleyna_settings_set_never_quit(settings, never_quit, error);
+
+ if (*error == NULL) {
+ prop_val = g_variant_new_boolean(never_quit);
+ prv_wl_notify_prop(manager,
+ DLS_INTERFACE_PROP_NEVER_QUIT,
+ prop_val);
+ }
+
+exit:
+ DLEYNA_LOG_DEBUG("Exit");
+ return;
+}
+
static void prv_set_prop_wl_enabled(dls_manager_t *manager,
dleyna_settings_t *settings,
gboolean enabled,
@@ -263,7 +294,11 @@ void dls_manager_set_prop(dls_manager_t *manager,
goto exit;
}
- if (!strcmp(name, DLS_INTERFACE_PROP_WHITE_LIST_ENABLED))
+ if (!strcmp(name, DLS_INTERFACE_PROP_NEVER_QUIT))
+ prv_set_prop_never_quit(manager, settings,
+ g_variant_get_boolean(param),
+ &error);
+ else if (!strcmp(name, DLS_INTERFACE_PROP_WHITE_LIST_ENABLED))
prv_set_prop_wl_enabled(manager, settings,
g_variant_get_boolean(param),
&error);