+static void _autoload_subtitles_changed_cb(GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ MafwGstRenderer *renderer)
+{
+ GConfValue *value = NULL;
+ gboolean enabled = FALSE;
+
+ value = gconf_entry_get_value(entry);
+ if (value == NULL)
+ return;
+
+ enabled = gconf_value_get_bool(value);
+
+ if (enabled)
+ renderer->worker->subtitles.enabled = TRUE;
+ else
+ renderer->worker->subtitles.enabled = FALSE;
+}
+
+static void _subtitle_font_changed_cb(GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ MafwGstRenderer *renderer)
+{
+ const gchar *key = NULL;
+ GConfValue *value = NULL;
+ const gchar *str_value = NULL;
+
+ key = gconf_entry_get_key(entry);
+
+ /* Only key without absolute path is required */
+ key += strlen(GCONF_MAFW_GST_SUBTITLES_RENDERER) + 1;
+
+ value = gconf_entry_get_value(entry);
+ if (value)
+ str_value = gconf_value_get_string(value);
+ else
+ str_value = NULL;
+
+ if (strcmp(key, "subtitle_font") == 0) {
+ if (renderer->worker->subtitles.font)
+ g_free(renderer->worker->subtitles.font);
+
+ if (str_value)
+ renderer->worker->subtitles.font = g_strdup(str_value);
+ else
+ renderer->worker->subtitles.font = NULL;
+ } else if (strcmp(key, "subtitle_encoding") == 0) {
+ if (renderer->worker->subtitles.encoding)
+ g_free(renderer->worker->subtitles.encoding);
+
+ if (str_value)
+ renderer->worker->subtitles.encoding = g_strdup(str_value);
+ else
+ renderer->worker->subtitles.encoding = NULL;
+ } else {
+ g_warning("Wrong %s key, %s", GCONF_MAFW_GST_SUBTITLES_RENDERER, key);
+ }
+}
+