added default dir&format settings
authormjn <marko.nykanen@gmail.com>
Mon, 4 Sep 2006 07:54:36 +0000 (07:54 +0000)
committermjn <marko.nykanen@gmail.com>
Mon, 4 Sep 2006 07:54:36 +0000 (07:54 +0000)
git-svn-id: svn+ssh://garage/svnroot/maemo-recorder/trunk@5 2441f5eb-5316-0410-9386-a49b32a51a4a

configure.ac
debian/changelog
src/Makefile.am
src/maemo-recorder-file.c
src/maemo-recorder-file.h
src/maemo-recorder-ui.c
src/maemo-recorder.c
src/maemo-recorder.h
src/settings.c [new file with mode: 0755]
src/settings.h [new file with mode: 0755]

index 169262f..1826992 100644 (file)
@@ -42,6 +42,10 @@ PKG_CHECK_MODULES(OSSO, libosso >= 0.8.4)
 AC_SUBST(OSSO_LIBS)
 AC_SUBST(OSSO_CFLAGS)
 
+PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.6)
+AC_SUBST(GCONF_CFLAGS)
+AC_SUBST(GCONF_LIBS)
+
 PKG_CHECK_MODULES(HILDON_LGPL, hildon-libs)
 AC_SUBST(HILDON_LGPL_LIBS)
 AC_SUBST(HILDON_LGPL_CFLAGS)
index 1c4cb33..9bc91df 100644 (file)
@@ -1,3 +1,10 @@
+maemo-recorder (0.0.17) unstable; urgency=low
+
+  * add settings
+  * increase mp3playback blocksize
+
+ -- Marko Nykanen <marko.ja.nykanen@nokia.com>  Sun,  3 Sep 2006 12:21:06 +0300
+
 maemo-recorder (0.0.16) unstable; urgency=low
 
   * wav record/playback support added
index 1785a4e..edf150e 100644 (file)
@@ -2,6 +2,6 @@
 
 bin_PROGRAMS = maemo_recorder
 
-maemo_recorder_SOURCES = maemo-recorder.c maemo-recorder-ui.c maemo-recorder-file.c maemo-recorder-au.c
+maemo_recorder_SOURCES = maemo-recorder.c maemo-recorder-ui.c maemo-recorder-file.c maemo-recorder-au.c settings.c
 maemo_recorder_CFLAGS = $(GTK_CFLAGS) $(OSSO_CFLAGS) $(HILDON_LGPL_CFLAGS) $(GSTREAMER_CFLAGS) $(HILDON_FM_CFLAGS) $(GNOME_VFS_CFLAGS)
 maemo_recorder_LDADD = $(GTK_LIBS) $(OSSO_LIBS) $(HILDON_LGPL_LIBS) $(GSTREAMER_LIBS) $(HILDON_FM_LIBS) $(GNOME_VFS_LIBS)
index d813fda..eaa8238 100644 (file)
@@ -29,6 +29,7 @@
 #include "maemo-recorder.h"
 #include "maemo-recorder-file.h"
 #include "maemo-recorder-au.h"
+#include "settings.h"
 
 static gboolean moveFile(const gchar *src, const gchar *dst);
 
@@ -306,14 +307,14 @@ gboolean openFile(const gchar *filename, AudioFormat *format, gchar **tmpfile)
         switch (fmt)
         {
             case FORMAT_PCMA:
-                text_uri = g_strdup_printf("file://%s", DEFAULT_TMP_PCMA_FILE);
+                text_uri = g_strdup_printf("file://%s/%s", get_default_dir(), DEFAULT_TMP_PCMA_FILE);
                 break;
             case FORMAT_PCMU:
-                text_uri = g_strdup_printf("file://%s", DEFAULT_TMP_PCMU_FILE);
+                text_uri = g_strdup_printf("file://%s/%s", get_default_dir(), DEFAULT_TMP_PCMU_FILE);
                 break;
             case FORMAT_PCM:
             default: 
-                text_uri = g_strdup_printf("file://%s", DEFAULT_TMP_FILE);
+                text_uri = g_strdup_printf("file://%s/%s", get_default_dir(), DEFAULT_TMP_FILE);
                 break;
         }
 
index a641835..2f4d324 100644 (file)
 #define EXTENSION_SND ".snd"
 #define EXTENSION_WAV ".wav"
 
-#define DEFAULT_TMP_PCMA_FILE "/home/user/MyDocs/.sounds/mrec.pcma"
-#define DEFAULT_TMP_PCMU_FILE "/home/user/MyDocs/.sounds/mrec.pcmu"
-#define DEFAULT_TMP_FILE "/home/user/MyDocs/.sounds/mrec.raw"
-#define DEFAULT_TMP_WAV_FILE "/home/user/MyDocs/.sounds/mrec.wav"
-#define DEFAULT_TMP_ILBC_FILE "/home/user/MyDocs/.sounds/mrec.ilbc"
+#define DEFAULT_TMP_PCMA_FILE "mrec.pcma"
+#define DEFAULT_TMP_PCMU_FILE "mrec.pcmu"
+#define DEFAULT_TMP_FILE "mrec.raw"
+#define DEFAULT_TMP_WAV_FILE "mrec.wav"
+#define DEFAULT_TMP_ILBC_FILE "mrec.ilbc"
 
 /*
 gboolean doSave(const gchar *tmpfile, const gchar *target, AudioFormat format);
index f22a194..a06e086 100644 (file)
@@ -37,7 +37,7 @@
 #include "maemo-recorder.h"
 #include "maemo-recorder-ui.h"
 #include "maemo-recorder-file.h"
-
+#include "settings.h"
 
 #define DEFAULT_REC_BLOCKSIZE "160"
 
@@ -171,17 +171,16 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
     {
         case PIPELINE_PLAY_MP3:
             ULOG_INFO("mp3 playback - queue");
-            src = gst_element_factory_make ("filesrc", "source");
+            src = gst_element_factory_make ("gnomevfssrc", "source");
             queue = gst_element_factory_make ("queue", "queue");
             sink = gst_element_factory_make ("dspmp3sink", "sink");
 
             g_object_set(G_OBJECT (queue), 
-                "max-size-buffers", 8192,
                 "min-threshold-bytes", 131072,
-                "min-threshold-buffers", 2048,
                 NULL );
             g_object_set(G_OBJECT(src), 
                     "location", app->openFileName, 
+                    "blocksize", 65536,
                     NULL);
             break;
 
@@ -1080,6 +1079,11 @@ static void cbSave(GtkWidget* widget, AppData *data)
 }
 #endif
 
+static void cbSettings(GtkWidget* widget, AppData *data)
+{
+    edit_settings( widget, data );
+}
+
 static void cbSaveAs(GtkWidget* widget, AppData *data) 
 {
     GtkWidget* dialog = NULL;
@@ -1102,6 +1106,9 @@ static void cbSaveAs(GtkWidget* widget, AppData *data)
               GTK_WINDOW(data->mainView), 
               GTK_FILE_CHOOSER_ACTION_SAVE));
 
+    gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER(dialog), 
+            get_default_dir() );
+
     /* show it */
     gtk_widget_show_all(dialog);
 
@@ -1187,29 +1194,29 @@ static void cbRec(GtkWidget* widget, AppData *data)
     switch (data->filter)
     {
         case FORMAT_PCM:
-            data->saveFileName = g_strdup(DEFAULT_TMP_FILE);
-            data->openFileName = g_strdup(DEFAULT_TMP_FILE);
-            break;
+             data->saveFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_FILE);
+             data->openFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_FILE);
+             break;
 
-        case FORMAT_PCMA:
-            data->saveFileName = g_strdup(DEFAULT_TMP_PCMA_FILE);
-            data->openFileName = g_strdup(DEFAULT_TMP_PCMA_FILE);
-            break;
-         
-        case FORMAT_PCMU:
-            data->saveFileName = g_strdup(DEFAULT_TMP_PCMU_FILE);
-            data->openFileName = g_strdup(DEFAULT_TMP_PCMU_FILE);
-            break;
+         case FORMAT_PCMA:
+             data->saveFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_PCMA_FILE);
+             data->openFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_PCMA_FILE);
+             break;
+             
+         case FORMAT_PCMU:
+             data->saveFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_PCMU_FILE);
+             data->openFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_PCMU_FILE);
+             break;
 
-        case FORMAT_WAV:
-            data->saveFileName = g_strdup(DEFAULT_TMP_WAV_FILE);
-            data->openFileName = g_strdup(DEFAULT_TMP_WAV_FILE);
-            break;
+         case FORMAT_WAV:
+             data->saveFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_WAV_FILE);
+             data->openFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_WAV_FILE);
+             break;
 
-        case FORMAT_ILBC:
-        default:
-            data->saveFileName = g_strdup(DEFAULT_TMP_ILBC_FILE);
-            data->openFileName = g_strdup(DEFAULT_TMP_ILBC_FILE);
+         case FORMAT_ILBC:
+         default:
+             data->saveFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_ILBC_FILE);
+             data->openFileName = g_strdup_printf("%s/%s", get_default_dir(), DEFAULT_TMP_ILBC_FILE);
             break;
     }
 
@@ -1512,7 +1519,7 @@ static void createMenu( AppData *data )
     GtkWidget *item_pcmu;
     GtkWidget *item_ilbc;
     GtkWidget *item_pcm;
-   
+    GtkWidget *item_settings;
     /*
     GtkWidget *item_radio_type1;
     */
@@ -1532,6 +1539,7 @@ static void createMenu( AppData *data )
     item_file_open = gtk_menu_item_new_with_label(_("Open..."));
     item_file_save_as = gtk_menu_item_new_with_label(_("Save as..."));
     item_others = gtk_menu_item_new_with_label (_("Recording format"));
+    item_settings = gtk_menu_item_new_with_label (_("Settings"));
     
     item_pcma = gtk_radio_menu_item_new_with_label(
         group, "PCM A-law");
@@ -1542,10 +1550,20 @@ static void createMenu( AppData *data )
     item_pcm = gtk_radio_menu_item_new_with_label_from_widget(
         GTK_RADIO_MENU_ITEM(item_pcma), "WAV");
     
-    /* default is iLBC */
-    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_ilbc), TRUE); 
-    data->filter = FORMAT_ILBC;
-
+    data->filter = get_default_filter();
+
+    if (data->filter == FORMAT_ILBC)
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_ilbc), TRUE);
+    else if (data->filter == FORMAT_WAV)
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_pcm), TRUE);
+    else if (data->filter == FORMAT_PCMA)
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_pcma), TRUE);
+    else 
+    {
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_ilbc), TRUE);
+        data->filter = FORMAT_ILBC;
+    }
+    
     data->radio_pcma = item_pcma;
     data->radio_ilbc = item_ilbc;
     data->radio_pcm = item_pcm;        
@@ -1564,6 +1582,8 @@ static void createMenu( AppData *data )
     gtk_menu_append( menu_others, item_pcma );
     gtk_menu_append( menu_others, item_ilbc);
     
+    gtk_menu_append( main_menu, item_settings );
+    
     gtk_menu_append( main_menu, item_close );
 
     /* Add others submenu to the "Others" item */
@@ -1577,6 +1597,9 @@ static void createMenu( AppData *data )
         GTK_SIGNAL_FUNC (cbOpen), data);
     g_signal_connect( G_OBJECT( item_file_save_as), "activate",
         GTK_SIGNAL_FUNC (cbSaveAs), data);
+    g_signal_connect( G_OBJECT( item_settings ), "activate",
+        GTK_SIGNAL_FUNC (cbSettings), data);
+    
     g_signal_connect( G_OBJECT( item_close ), "activate",
         GTK_SIGNAL_FUNC (cbItemClose), data);
 
index 84e5696..fd6ea9e 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "maemo-recorder.h"
 #include "maemo-recorder-ui.h"
-
+#include "settings.h"
 
 static gboolean createData(AppData **data);
 static gboolean destroyData(AppData *data);
@@ -118,6 +118,7 @@ main(int argc, char *argv[])
 
     /* initialise gtk */
     gtk_init(&argc, &argv);
+    appData->gconf_client = init_settings(argc, argv);
 
     maemo_recorder_ui_new(appData);
 
index 7f8ade9..3e00441 100644 (file)
@@ -27,6 +27,7 @@
 #include <osso-log.h>
 #include <hildon-widgets/hildon-program.h>
 #include <hildon-widgets/hildon-window.h>
+#include <gconf/gconf-client.h>
 
 #include <gtk/gtk.h>
 #include <gst/gst.h>
@@ -126,6 +127,7 @@ typedef struct _AppDataStr
     gint playPipelineType;
 
     osso_context_t *osso;
+    GConfClient *gconf_client;
 
     gchar * openFileName;
     gchar * saveFileName;
diff --git a/src/settings.c b/src/settings.c
new file mode 100755 (executable)
index 0000000..9659a55
--- /dev/null
@@ -0,0 +1,288 @@
+/*
+ * settings.c
+ * GConf settings
+ * 
+ * Copyright (C) 2006 Nokia Corporation
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <gtk/gtk.h>
+#include <hildon-widgets/hildon-caption.h>
+#include <stdlib.h>
+#include <string.h>
+#include <osso-log.h>
+#include <hildon-fm/hildon-widgets/hildon-file-chooser-dialog.h>
+
+#include "maemo-recorder.h"
+#include "settings.h"
+
+#define GCONF_PATH                      "/apps/maemo-recorder/settings"
+#define KEY_DEFAULT_DIR                  GCONF_PATH "/default_dir"
+#define KEY_DEFAULT_FILTER              GCONF_PATH "/default_filter"
+
+typedef struct _SettingsPriv SettingsPriv;
+
+struct _SettingsPriv
+{
+        GConfClient *gconf;
+        gchar* default_dir;
+       gint default_filter;    
+};
+
+SettingsPriv *settings_priv;
+
+typedef struct _SettingsData SettingsData;
+
+struct _SettingsData
+{
+       AppData* appdata;
+       GtkWidget* label;
+       GtkWidget* window;
+       GtkComboBox *format_combobox;   
+};
+
+SettingsData *settings_data;
+
+static gboolean load_settings();
+
+static void set_default()
+{
+    gchar* str;
+
+    str = g_strdup_printf("/home/user/MyDocs/.sounds");
+    gconf_client_set_string(
+           settings_priv->gconf,
+           KEY_DEFAULT_DIR,
+           str,
+           NULL);
+    settings_priv->default_dir = str;
+
+    gconf_client_set_int(
+          settings_priv->gconf,
+          KEY_DEFAULT_FILTER,
+          FORMAT_ILBC,
+          NULL);
+    settings_priv->default_filter = FORMAT_ILBC;
+}
+
+gint get_default_filter()
+{
+    load_settings();
+    return settings_priv->default_filter;
+}
+
+void set_default_filter( gint filter )
+{
+        gconf_client_set_int(
+                        settings_priv->gconf,
+                        KEY_DEFAULT_FILTER,
+                        filter,
+                        NULL);
+        settings_priv->default_filter = filter;
+       
+}
+
+gchar* get_default_dir()
+{
+    load_settings();
+    return settings_priv->default_dir;
+}
+
+void set_default_dir(gchar* selected)
+{
+    gconf_client_set_string(
+                        settings_priv->gconf,
+                        KEY_DEFAULT_DIR,
+                        selected,
+                        NULL);
+}
+
+static void cb_format_changed(gpointer data)
+{
+   gint active;
+
+   active = gtk_combo_box_get_active(settings_data->format_combobox);
+   switch (active)
+   {
+       case 0:
+               settings_priv->default_filter = FORMAT_WAV;
+               break;
+       case 1:
+               settings_priv->default_filter = FORMAT_PCMA;
+               break;
+       case 2:
+               settings_priv->default_filter = FORMAT_ILBC;
+               break;
+       default:
+               break;
+       
+   }
+}
+
+static void cb_chdir(gpointer data)
+{
+    GtkWidget* dialog = NULL;
+    gchar *selected = NULL;
+
+    g_assert(settings_data);
+
+    /* create dialog */
+    dialog = GTK_WIDGET(hildon_file_chooser_dialog_new(
+              GTK_WINDOW(settings_data->window),
+              GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER));
+
+    /* show it */
+    gtk_widget_show_all(dialog);
+
+    if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
+    {
+        selected = g_strdup_printf("Default dir: %s", 
+               gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
+       gtk_label_set_text(GTK_LABEL(settings_data->label), selected);
+       settings_priv->default_dir = g_strdup(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
+    }
+
+    gtk_widget_destroy(dialog);
+
+}
+
+static gboolean load_settings()
+{
+    settings_priv->default_dir = gconf_client_get_string( 
+                settings_priv->gconf,
+                KEY_DEFAULT_DIR,
+                NULL);
+
+    settings_priv->default_filter = gconf_client_get_int(
+               settings_priv->gconf,
+               KEY_DEFAULT_FILTER,
+               NULL);
+
+    if ( settings_priv->default_dir && settings_priv->default_filter )
+        return TRUE;
+    else
+       return FALSE;
+    
+}
+
+GConfClient *init_settings(gint argc, gchar *argv[])
+{
+    GError *err = NULL;
+    settings_priv = g_new0(SettingsPriv, 1);
+    settings_data = g_new0(SettingsData, 1);
+    gconf_init(argc, argv, &err);
+    if(err)
+    {
+        ULOG_ERR("Unable to initialize gconf");
+        set_default();
+        return NULL;
+    }
+    settings_priv->gconf = gconf_client_get_default();
+    if(!settings_priv->gconf)
+    {
+        ULOG_ERR("Unable to initialize gconf");
+        set_default();
+        return NULL;
+    }
+
+    gconf_client_add_dir(settings_priv->gconf, GCONF_PATH,
+        GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+
+    if(!load_settings())
+    {
+        ULOG_ERR("Unable to load all settings");
+        set_default();
+        return settings_priv->gconf;
+    }
+    
+    return settings_priv->gconf;
+}
+
+void edit_settings(GtkWidget* widget, AppData *data)
+{
+       GtkWidget* btn_chdir;
+       GtkWidget* label_def_format;
+       gint res;
+       gchar* str;
+
+       load_settings();
+
+       settings_data->appdata = data;
+       
+       settings_data->window = gtk_dialog_new_with_buttons("Settings", 
+                       GTK_WINDOW(data->mainView),
+                       GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR,
+                       "OK", RESP_OK,
+                       "Cancel", RESP_CANCEL,
+                       NULL, NULL);
+       
+       settings_data->format_combobox = GTK_COMBO_BOX(gtk_combo_box_new_text());
+       
+        g_signal_connect(G_OBJECT(settings_data->window),
+                        "delete_event",
+                        G_CALLBACK(gtk_widget_destroy),
+                        NULL);
+
+       str = g_strdup_printf("Default dir: %s", get_default_dir());
+       settings_data->label = gtk_label_new(str);
+       label_def_format = gtk_label_new("Default format");
+       
+       btn_chdir = gtk_button_new_with_label("Change dir");
+       
+       g_signal_connect(G_OBJECT(btn_chdir), "clicked", 
+                       G_CALLBACK(cb_chdir),
+                       settings_data);
+       
+       gtk_widget_set_size_request(btn_chdir, 40, 40);
+       
+       gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "WAV");
+       gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "PCM A-law");
+       gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "iLBC");
+       
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), settings_data->label, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), btn_chdir, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), label_def_format, FALSE, FALSE, 5);
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), GTK_WIDGET(settings_data->format_combobox), FALSE, FALSE, 0);
+
+       if (settings_priv->default_filter == FORMAT_ILBC)
+         gtk_combo_box_set_active(settings_data->format_combobox, 2);
+       if (settings_priv->default_filter == FORMAT_WAV)
+         gtk_combo_box_set_active(settings_data->format_combobox, 0);
+        if (settings_priv->default_filter == FORMAT_PCMA)
+          gtk_combo_box_set_active(settings_data->format_combobox, 1);
+
+
+       g_signal_connect(G_OBJECT(settings_data->format_combobox), "changed",
+                      G_CALLBACK(cb_format_changed), settings_data);
+    
+       gtk_widget_show_all(settings_data->window);
+               
+       res = gtk_dialog_run(GTK_DIALOG(settings_data->window));
+
+       if(res == RESP_OK)
+       {
+               set_default_dir(settings_priv->default_dir);
+               set_default_filter(settings_priv->default_filter);
+               printf("ok");
+       } else {
+               printf("cancel");
+       }       
+       
+        gtk_widget_destroy(settings_data->window);
+
+}
+
diff --git a/src/settings.h b/src/settings.h
new file mode 100755 (executable)
index 0000000..026175c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * settings.h
+ * GConf settings
+ *
+ * Copyright (C) 2006 Nokia Corporation
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef _SETTINGS_H
+#define _SETTINGS_H
+
+#include <gconf/gconf-client.h>
+#define RESP_OK     1
+#define RESP_CANCEL 2
+
+void edit_settings(GtkWidget* widget, AppData *data);
+
+gint get_default_filter();
+void set_default_filter( gint filter );
+       
+gchar* get_default_dir();
+void set_default_dir(gchar* selected);
+       
+GConfClient *init_settings(gint argc, gchar *argv[]);
+
+#endif // _SETTINGS_H
+