#define GCONF_OSSO_AF "/system/osso/af"
#define GCONF_BATTERY_COVER_OPEN "/system/osso/af/mmc-cover-open"
+#define GCONF_MAFW_GST_SUBTITLE_RENDERER "/system/mafw/mafw-gst-renderer"
#define HAL_VIDEOOUT_UDI "/org/freedesktop/Hal/devices" \
"/platform_soc_audio_logicaldev_input"
GConfEntry *entry,
MafwGstRenderer *renderer);
+static void _autoload_subtitles_changed_cb(GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ MafwGstRenderer *renderer);
+
+static void _subtitle_font_changed_cb(GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ MafwGstRenderer *renderer);
+
/*----------------------------------------------------------------------------
Gnome VFS notifications
----------------------------------------------------------------------------*/
g_error_free(error);
}
+ gconf_client_add_dir(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER,
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ &error);
+ if (error) {
+ g_warning("%s", error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+
+ gconf_client_notify_add(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/autoload_subtitles",
+ (GConfClientNotifyFunc) _autoload_subtitles_changed_cb,
+ renderer,
+ NULL, &error);
+ if (error) {
+ g_warning("%s", error->message);
+ g_error_free(error);
+ }
+
+ gconf_client_notify_add(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_encoding",
+ (GConfClientNotifyFunc) _subtitle_font_changed_cb,
+ renderer,
+ NULL, &error);
+ if (error) {
+ g_warning("%s", error->message);
+ g_error_free(error);
+ }
+
+ gconf_client_notify_add(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_font",
+ (GConfClientNotifyFunc) _subtitle_font_changed_cb,
+ renderer,
+ NULL, &error);
+ if (error) {
+ g_warning("%s", error->message);
+ g_error_free(error);
+ }
+
+ if (self->worker->pipeline) {
+ gconf_client_notify(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/autoload_subtitles");
+
+ gconf_client_notify(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_encoding");
+
+ gconf_client_notify(renderer->gconf_client,
+ GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_font");
+ }
+
if (gnome_vfs_init()) {
GnomeVFSVolumeMonitor *monitor = gnome_vfs_get_volume_monitor();
g_signal_connect(monitor, "volume-pre-unmount",
}
}
+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_SUBTITLE_RENDERER) + 1;
+
+ value = gconf_entry_get_value(entry);
+ if (value == NULL)
+ return;
+
+ str_value = gconf_value_get_string(value);
+
+ if (strcmp(key, "subtitle_font") == 0) {
+ if (renderer->worker->subtitles.font)
+ g_free(renderer->worker->subtitles.font);
+
+ renderer->worker->subtitles.font = g_strdup(str_value);
+ } else if (strcmp(key, "subtitle_encoding") == 0) {
+ if (renderer->worker->subtitles.encoding)
+ g_free(renderer->worker->subtitles.encoding);
+
+ renderer->worker->subtitles.encoding = g_strdup(str_value);
+ } else {
+ g_warning("Wrong %s key, %s", GCONF_MAFW_GST_SUBTITLE_RENDERER, key);
+ }
+}
+
/*----------------------------------------------------------------------------
Gnome VFS notifications
----------------------------------------------------------------------------*/