added default dir&format settings
[maemo-recorder] / src / maemo-recorder-ui.c
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);