fremantle port 0.3.0
authorMarko Nykanen <marko.nykanen@gmail.com>
Thu, 5 Nov 2009 01:40:19 +0000 (03:40 +0200)
committerMarko Nykanen <marko.nykanen@gmail.com>
Thu, 5 Nov 2009 01:40:19 +0000 (03:40 +0200)
configure.ac
debian/changelog
debian/control
debian/maemo-recorder.postinst
src/maemo-recorder-ui.c
src/maemo-recorder.h
src/settings.c

index 3e8e7c7..1402df6 100644 (file)
@@ -50,10 +50,6 @@ PKG_CHECK_MODULES(HILDON_LGPL, hildon-1)
 AC_SUBST(HILDON_LGPL_LIBS)
 AC_SUBST(HILDON_LGPL_CFLAGS)
 
 AC_SUBST(HILDON_LGPL_LIBS)
 AC_SUBST(HILDON_LGPL_CFLAGS)
 
-PKG_CHECK_MODULES(HILDON_HELP, hildon-help)
-AC_SUBST(HILDON_HELP_LIBS)
-AC_SUBST(HILDON_HELP_CFLAGS)
-
 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2)
 AC_SUBST(HILDON_FM_LIBS)
 AC_SUBST(HILDON_FM_CFLAGS)
 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2)
 AC_SUBST(HILDON_FM_LIBS)
 AC_SUBST(HILDON_FM_CFLAGS)
@@ -66,7 +62,7 @@ PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0)
 AC_SUBST(GNOME_VFS_LIBS)
 AC_SUBST(GNOME_VFS_CFLAGS)
 
 AC_SUBST(GNOME_VFS_LIBS)
 AC_SUBST(GNOME_VFS_CFLAGS)
 
-PKG_CHECK_MODULES(OSSO_EMAIL, libossoemailinterface)
+PKG_CHECK_MODULES(OSSO_EMAIL, libmodest-dbus-client-1.0)
 AC_SUBST(OSSO_EMAIL_LIBS)
 AC_SUBST(OSSO_EMAIL_CFLAGS)
 
 AC_SUBST(OSSO_EMAIL_LIBS)
 AC_SUBST(OSSO_EMAIL_CFLAGS)
 
index 1b84c0b..88c5695 100644 (file)
@@ -1,3 +1,9 @@
+maemo-recorder (0.3.0) unstable; urgency=low
+
+  * OS2009 version
+
+ -- Marko Nykanen <marko.ja.nykanen@nokia.com>  Sun, 30 Aug 2009 21:46:03 +0300
+
 maemo-recorder (0.2.0) unstable; urgency=low
 
   * OS2008 version
 maemo-recorder (0.2.0) unstable; urgency=low
 
   * OS2008 version
index f0b067c..52ad778 100644 (file)
@@ -1,14 +1,14 @@
 Source: maemo-recorder
 Section: user/multimedia
 Priority: optional
 Source: maemo-recorder
 Section: user/multimedia
 Priority: optional
-Maintainer: Tapio Tolvanen <tapio.tolvanen@nokia.com>
-Build-Depends: debhelper (>= 4.0.0), libgstreamer0.10-dev (>= 0.10.1-1), libhildon1-dev, libhildonhelp-dev, libgconf2-dev, libgtk2.0-dev, libhildonfm2-dev, libosso-dev (>= 0.8.4), libosso-email-interface-dev
+Maintainer: Marko Nykanen <marko.ja.nykanen@nokia.com>
+Build-Depends: debhelper (>= 4.0.0), libgstreamer0.10-dev (>= 0.10.1-1), libhildon1-dev, libgconf2-dev, libgtk2.0-dev, libhildonfm2-dev, libosso-dev (>= 0.8.4), libmodest-dbus-client-dev
 Standards-Version: 3.6.0
 
 Package: maemo-recorder
 Architecture: any
 Section: user/multimedia
 Standards-Version: 3.6.0
 
 Package: maemo-recorder
 Architecture: any
 Section: user/multimedia
-Depends: ${shlibs:Depends}, gstreamer0.10-plugins-extra
+Depends: ${shlibs:Depends}
 Description: Maemo Recorder
  A simple graphical utility for recording audio from microphone.
 XB-Maemo-Icon-26: 
 Description: Maemo Recorder
  A simple graphical utility for recording audio from microphone.
 XB-Maemo-Icon-26: 
index abd5deb..74f2f1b 100644 (file)
@@ -22,9 +22,6 @@ case "$1" in
        update-mime-database /usr/share/mime
        update-desktop-database -q
        hildon-update-category-database /usr/share/mime
        update-mime-database /usr/share/mime
        update-desktop-database -q
        hildon-update-category-database /usr/share/mime
-       if [ -z "$2" ]; then
-               maemo-select-menu-location maemo_recorder.desktop  
-       fi
        ;;
 
        abort-upgrade|abort-remove|abort-deconfigure)
        ;;
 
        abort-upgrade|abort-remove|abort-deconfigure)
index 2b99c78..19aee13 100644 (file)
@@ -32,9 +32,7 @@
 #include <hildon/hildon-file-chooser-dialog.h>
 #include <string.h>
 #include <sys/time.h>
 #include <hildon/hildon-file-chooser-dialog.h>
 #include <string.h>
 #include <sys/time.h>
-#include <hildon/hildon-help.h>
-#include <ossoemailinterface.h>
-
+#include <libmodest-dbus-client/libmodest-dbus-client.h>
 #include "maemo-recorder.h"
 #include "maemo-recorder-ui.h"
 #include "maemo-recorder-file.h"
 #include "maemo-recorder.h"
 #include "maemo-recorder-ui.h"
 #include "maemo-recorder-file.h"
@@ -124,22 +122,7 @@ static const gchar *getFileName(AppData *data);
 static gdouble guessMediaLength(AppData *data);
 static GstCaps *createCapsFilter(AudioFormat format);
 
 static gdouble guessMediaLength(AppData *data);
 static GstCaps *createCapsFilter(AudioFormat format);
 
-static void new_pad_cb (GstElement *wavparse, GstPad *new_pad, gpointer data)
-{
-    GstElement *sink;
-    AppData* app = (AppData*) data; 
-
-    ULOG_INFO("new pad");
-    sink = gst_element_factory_make ("dsppcmsink", "sink");
-    gst_bin_add (GST_BIN (app->playPipeline), sink);
-    if (!gst_element_link (wavparse, sink))
-      g_error ("link(wavparse, sink) failed!");
-    gst_element_sync_state_with_parent(sink); 
-}
+static gboolean lengthSet = FALSE;
 
 static gboolean createPipeline(AppData *app, PipeLineType type)
 {
 
 static gboolean createPipeline(AppData *app, PipeLineType type)
 {
@@ -149,31 +132,29 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
     GstElement *queue = NULL;
     GstElement *pipeline = NULL;
     GstElement *parse = NULL;
     GstElement *queue = NULL;
     GstElement *pipeline = NULL;
     GstElement *parse = NULL;
+    GstElement *bin = NULL;
     GstCaps *caps = NULL;
 
     g_assert(NULL != app);
 
     GstCaps *caps = NULL;
 
     g_assert(NULL != app);
 
-    pipeline = gst_pipeline_new("pipeline");
-
-    gst_bus_add_watch(gst_pipeline_get_bus (GST_PIPELINE (pipeline)),
-                   cbBus, app);
-
     /* create elements */
     switch (type)
     {
         case PIPELINE_PLAY_MP3:
             ULOG_INFO("mp3 playback - queue");
     /* create elements */
     switch (type)
     {
         case PIPELINE_PLAY_MP3:
             ULOG_INFO("mp3 playback - queue");
-            src = gst_element_factory_make ("gnomevfssrc", "source");
-            queue = gst_element_factory_make ("queue", "queue");
-            sink = gst_element_factory_make ("dspmp3sink", "sink");
+            bin = gst_element_factory_make ("playbin2", "bin");
+            gchar* uri = g_strdup_printf("file://%s", app->openFileName);
+            g_object_set(G_OBJECT(bin), 
+                "uri", uri, 
+                NULL);
+            g_free(uri);
+            gst_bus_add_watch(gst_pipeline_get_bus (GST_PIPELINE (bin)),
+                   cbBus, app);
 
 
-            g_object_set(G_OBJECT (queue), 
-                "min-threshold-bytes", 131072,
-                NULL );
-            g_object_set(G_OBJECT(src), 
-                    "location", app->openFileName, 
-                    "blocksize", 65536,
-                    NULL);
+            app->playPipeline = bin;
+            app->playPipelineType = type;
+                     
+            return TRUE;
             break;
 
         case PIPELINE_PLAY:
             break;
 
         case PIPELINE_PLAY:
@@ -191,12 +172,25 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
                 case FORMAT_PCMU:
                 case FORMAT_PCM:
                     ULOG_INFO("using pcm sink");
                 case FORMAT_PCMU:
                 case FORMAT_PCM:
                     ULOG_INFO("using pcm sink");
-                    sink = gst_element_factory_make ("dsppcmsink", "sink");
+                    sink = gst_element_factory_make ("pulsesink", "sink");
                     break;
 
                 case FORMAT_WAV:
                     ULOG_INFO("using wavparse & pcm sink");
                     break;
 
                 case FORMAT_WAV:
                     ULOG_INFO("using wavparse & pcm sink");
-                    parse = gst_element_factory_make ("wavparse", "parse");
+                    bin = gst_element_factory_make ("playbin2", "bin");
+                    gchar* uri = g_strdup_printf("file://%s", app->openFileName);
+                    g_object_set(G_OBJECT(bin),
+                        "uri", uri,
+                        NULL);
+                    g_free(uri);
+                    
+                    gst_bus_add_watch(gst_pipeline_get_bus (GST_PIPELINE (bin)),
+                        cbBus, app);
+
+                    app->playPipeline = bin;
+                    app->playPipelineType = type;
+                              
+                    return TRUE;
                     break;
                     
                 default:
                     break;
                     
                 default:
@@ -229,7 +223,7 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
                 case FORMAT_PCMU:
                 case FORMAT_PCM:
                     ULOG_INFO("using pcm source");
                 case FORMAT_PCMU:
                 case FORMAT_PCM:
                     ULOG_INFO("using pcm source");
-                    src = gst_element_factory_make("dsppcmsrc", "source");
+                    src = gst_element_factory_make("pulsesrc", "source");
                     /*g_object_set(G_OBJECT (src), 
                           "blocksize", DEFAULT_REC_BLOCKSIZE, 
                           "dtx", DTX_OFF,
                     /*g_object_set(G_OBJECT (src), 
                           "blocksize", DEFAULT_REC_BLOCKSIZE, 
                           "dtx", DTX_OFF,
@@ -238,11 +232,7 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
             
                 case FORMAT_WAV:
                     ULOG_INFO("using pcm source & wavenc");
             
                 case FORMAT_WAV:
                     ULOG_INFO("using pcm source & wavenc");
-                    src = gst_element_factory_make("dsppcmsrc", "source");
-                    g_object_set(G_OBJECT (src),
-                            "blocksize", DEFAULT_REC_BLOCKSIZE,
-                            "dtx", DTX_OFF,
-                            NULL);
+                    src = gst_element_factory_make("pulsesrc", "source");
                     parse = gst_element_factory_make("wavenc", "enc");
                     break;   
             
                     parse = gst_element_factory_make("wavenc", "enc");
                     break;   
             
@@ -266,17 +256,21 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
 
         default:
             ULOG_ERR("Invalid pipeline type!");
 
         default:
             ULOG_ERR("Invalid pipeline type!");
-            gst_object_unref(pipeline);
             return FALSE;
     }
 
             return FALSE;
     }
 
+    pipeline = gst_pipeline_new("pipeline");
+
+    gst_bus_add_watch(gst_pipeline_get_bus (GST_PIPELINE (pipeline)),
+                   cbBus, app);
+    
     if (!src || !pipeline)
     {
         ULOG_ERR("Could not create GstElement!");
         return FALSE;
     }
 
     if (!src || !pipeline)
     {
         ULOG_ERR("Could not create GstElement!");
         return FALSE;
     }
 
-    if (!sink && app->filter != FORMAT_WAV)
+    if (!sink && app->filter != FORMAT_WAV )
     {
         ULOG_ERR("Could not create GstElement!");
         return FALSE;        
     {
         ULOG_ERR("Could not create GstElement!");
         return FALSE;        
@@ -314,7 +308,7 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
                         ULOG_ERR("gst_element_link failed for src, parse and sink!");
                     }
                     break;
                         ULOG_ERR("gst_element_link failed for src, parse and sink!");
                     }
                     break;
-         
+
                 default:
                     break;
           
                 default:
                     break;
           
@@ -342,29 +336,16 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
 
                     break;
 
 
                     break;
 
-                case FORMAT_WAV:
-                    gst_bin_add_many(GST_BIN(pipeline), src, parse, NULL);
-                    if (!gst_element_link_many (src, parse, NULL))
-                    {
-                        ULOG_ERR("gst_element_link failed for src, parse and sink!");
-                        return FALSE;
-                    }
-                    app->playPipeline = pipeline;
-                    g_signal_connect(parse, "pad_added",
-                                 G_CALLBACK(new_pad_cb), app);
-                    break;
-
                 default:
                     break;
             }
 
             break;
      
                 default:
                     break;
             }
 
             break;
      
-        case PIPELINE_PLAY_MP3:
         default:
         default:
-            gst_bin_add_many(GST_BIN(pipeline), src, queue, sink, NULL);
+            gst_bin_add_many(GST_BIN(pipeline), src, sink, NULL);
  
  
-            if(!gst_element_link_many(src, queue, sink, NULL))
+            if(!gst_element_link_many(src, sink, NULL))
             {
                  ULOG_ERR("gst_element_link failed for src and sink!");
                  return FALSE;
             {
                  ULOG_ERR("gst_element_link failed for src and sink!");
                  return FALSE;
@@ -411,6 +392,10 @@ static gboolean destroyPipeline(AppData *data, PipeLineType type)
 
     ULOG_INFO("%s() - Stopping playback/recording", G_STRFUNC);
 
 
     ULOG_INFO("%s() - Stopping playback/recording", G_STRFUNC);
 
+    hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, RECORDER_MSG_STOPPED);         
+    gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry), 
+                         RECORDER_MSG_STOPPED);  
+
     switch (type)
     {
         case PIPELINE_REC:
     switch (type)
     {
         case PIPELINE_REC:
@@ -517,18 +502,6 @@ static void pipelineStateChanged (GstElement *element,
                   hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, RECORDER_MSG_PAUSED);       
                   gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry), 
                          RECORDER_MSG_PAUSED);
                   hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, RECORDER_MSG_PAUSED);       
                   gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry), 
                          RECORDER_MSG_PAUSED);
-                  /*
-                  gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
-                  gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
-                  */
-              }
-              else
-              {
-                  hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, RECORDER_MSG_STOPPED);       
-                  gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry), 
-                         RECORDER_MSG_STOPPED);  
-                  gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
-                  gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
               }
               gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
           }
               }
               gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
           }
@@ -536,9 +509,6 @@ static void pipelineStateChanged (GstElement *element,
           
         case GST_STATE_NULL:
           ULOG_INFO("%s() - Null", G_STRFUNC);
           
         case GST_STATE_NULL:
           ULOG_INFO("%s() - Null", G_STRFUNC);
-          hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, RECORDER_MSG_STOPPED);
-          gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry), 
-                     RECORDER_MSG_READY);  
           gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
           gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
           gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
           gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
           gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
           gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
@@ -594,6 +564,10 @@ static gboolean cbBus(GstBus *bus,
                  case APPSTATE_PLAYING:
                     /* stop playback after a short break*/
                     g_timeout_add(STOP_DELAY, (GSourceFunc)cbStopPlayback, data);
                  case APPSTATE_PLAYING:
                     /* stop playback after a short break*/
                     g_timeout_add(STOP_DELAY, (GSourceFunc)cbStopPlayback, data);
+                    hildon_banner_show_information(GTK_WIDGET(app->mainView), NULL, RECORDER_MSG_STOPPED);       
+                    gtk_entry_set_text(GTK_ENTRY(app->mainViewData.stateEntry), 
+                         RECORDER_MSG_STOPPED);  
+
                     break;
 
                  case APPSTATE_RECORDING:
                     break;
 
                  case APPSTATE_RECORDING:
@@ -660,7 +634,6 @@ static gboolean cbCheckPosition (AppData *data)
 {
     GstFormat fmt = GST_FORMAT_TIME;
     gint64 pos = 0, len = 0;
 {
     GstFormat fmt = GST_FORMAT_TIME;
     gint64 pos = 0, len = 0;
-    static gboolean lengthSet = FALSE;
 
     g_assert(NULL != data);
 
 
     g_assert(NULL != data);
 
@@ -731,8 +704,6 @@ static void cbNew(GtkWidget* widget, AppData *data)
     gtk_widget_set_sensitive(data->buttonSaveAs, FALSE);
     data->saved = TRUE;
 
     gtk_widget_set_sensitive(data->buttonSaveAs, FALSE);
     data->saved = TRUE;
 
-    gtk_window_set_title(GTK_WINDOW(data->mainView), RECORDER_FILE_UNTITLED);
-
     ULOG_DEBUG_F("cbNew end");
 }
 
     ULOG_DEBUG_F("cbNew end");
 }
 
@@ -803,13 +774,12 @@ static void cbOpen(GtkWidget* widget, AppData *data)
         basename = g_path_get_basename(selected);
 
         gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry), selected);
         basename = g_path_get_basename(selected);
 
         gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry), selected);
-        gtk_window_set_title(GTK_WINDOW(data->mainView), basename);
         g_free(basename);
 
         g_free(data->openFileName);
         data->openFileName = tmpfile;
         data->file_format = format;
         g_free(basename);
 
         g_free(data->openFileName);
         data->openFileName = tmpfile;
         data->file_format = format;
-        data->filter = format;
+        //data->filter = format;
         g_free(data->saveFileName);
         data->saveFileName = NULL;
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
         g_free(data->saveFileName);
         data->saveFileName = NULL;
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
@@ -877,13 +847,12 @@ openURI(gpointer user_data)
         basename = g_path_get_basename(selected);
         
         gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry), selected);
         basename = g_path_get_basename(selected);
         
         gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry), selected);
-        gtk_window_set_title(GTK_WINDOW(data->mainView), basename);
         g_free(basename);
 
         g_free(data->openFileName);
         data->openFileName = tmpfile;
         data->file_format = format;
         g_free(basename);
 
         g_free(data->openFileName);
         data->openFileName = tmpfile;
         data->file_format = format;
-        data->filter = format;
+        //data->filter = format;
         g_free(data->saveFileName);
         data->saveFileName = NULL;
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
         g_free(data->saveFileName);
         data->saveFileName = NULL;
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
@@ -914,6 +883,7 @@ static void openPlayPipeline( AppData *data )
     GstFormat fmt = GST_FORMAT_TIME;
     gint64 len;
     gdouble size = 0;
     GstFormat fmt = GST_FORMAT_TIME;
     gint64 len;
     gdouble size = 0;
+    lengthSet = FALSE;
     /* create pipelines */
     /* check file type */
     switch (data->file_format)
     /* create pipelines */
     /* check file type */
     switch (data->file_format)
@@ -924,13 +894,13 @@ static void openPlayPipeline( AppData *data )
         case FORMAT_ILBC:
         case FORMAT_WAV:
             destroyPipelines(data);
         case FORMAT_ILBC:
         case FORMAT_WAV:
             destroyPipelines(data);
-            data->filter = data->file_format;
+            //data->filter = data->file_format;
             createPipeline(data, PIPELINE_PLAY);
             break;
 
         case FORMAT_MP3:
             destroyPipelines(data);
             createPipeline(data, PIPELINE_PLAY);
             break;
 
         case FORMAT_MP3:
             destroyPipelines(data);
-            data->filter = data->file_format;
+            //data->filter = data->file_format;
             createPipeline(data, PIPELINE_PLAY_MP3);
             break;
 
             createPipeline(data, PIPELINE_PLAY_MP3);
             break;
 
@@ -961,13 +931,11 @@ static void openPlayPipeline( AppData *data )
             setLength(data, size);
         }
     }
             setLength(data, size);
         }
     }
-    /*
     else 
     {
     else 
     {
-        ULOG_INFO("playSize else");
         setLength(data, 0.0);
     }
         setLength(data, 0.0);
     }
-    */
+    
 }
 
 /* returns whether the action can proceed or should be aborted */
 }
 
 /* returns whether the action can proceed or should be aborted */
@@ -1016,78 +984,6 @@ getFileName(AppData *data)
 
 }
 
 
 }
 
-#if 0
-static void cbSave(GtkWidget* widget, AppData *data) 
-{
-     GtkWidget* dialog = NULL;
-     const gchar *current;
-     gchar *selected = NULL;
-
-     g_assert(data);
-
-     ULOG_DEBUG("%s() - begin", G_STRFUNC);
-
-     current = gtk_entry_get_text(GTK_ENTRY(data->mainViewData.fileNameEntry));
-     if (NULL == current || strcmp(current, RECORDER_FILE_UNTITLED) == 0) 
-     {
-       hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Nothing to save"));
-       return;
-     }
-
-     /* if saveFileName does not exist run saveas */
-     if (NULL == data->saveFileName)
-     {
-      /* create dialog */
-      dialog = GTK_WIDGET(hildon_file_chooser_dialog_new(
-                   GTK_WINDOW(data->mainView), 
-                   GTK_FILE_CHOOSER_ACTION_SAVE));
-      
-      /* show it */
-      gtk_widget_show_all(dialog);
-      
-      if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) 
-      {
-           selected = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-      }
-     
-      ULOG_DEBUG("%s() - dialog finished", G_STRFUNC);
-      
-      gtk_widget_destroy(dialog);
-      
-      if (NULL != selected)
-      {
-           ULOG_INFO("%s() - selected filename = '%s'", G_STRFUNC,
-            selected);
-           g_free(data->saveFileName);
-           data->saveFileName = g_strdup_printf("%s%s", selected, getExtension(data->file_format));
-           g_free(selected);
-           selected = NULL;
-      }
-      else
-      {
-           return;
-      }
-     }
-
-     /* save the file */
-     if (doSave(gtk_entry_get_text(GTK_ENTRY(data->mainViewData.fileNameEntry)), data->saveFileName, data->file_format))
-     {
-      gchar *basename = g_path_get_basename(data->saveFileName);
-      ULOG_INFO("%s() - file succesfully saved!", G_STRFUNC);
-      g_free(data->openFileName);
-      data->openFileName = g_strdup(data->saveFileName);
-            
-      gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry), 
-                 data->saveFileName);
-      gtk_widget_set_sensitive(data->buttonSave, FALSE);
-      gtk_window_set_title(GTK_WINDOW(data->mainView), basename);
-      g_free(basename);
-     }
-     
-     ULOG_DEBUG("%s() - end", G_STRFUNC);
-}
-#endif
-
 static void cbSettings(GtkWidget* widget, AppData *data)
 {
     settings_edit( widget, data );
 static void cbSettings(GtkWidget* widget, AppData *data)
 {
     settings_edit( widget, data );
@@ -1095,8 +991,10 @@ static void cbSettings(GtkWidget* widget, AppData *data)
 
 static void cbEmailing(GtkWidget* widget, AppData *data)
 {
 
 static void cbEmailing(GtkWidget* widget, AppData *data)
 {
+
+    gboolean result;
+    GSList *list = NULL;    
     gchar *file = NULL;
     gchar *file = NULL;
-    GSList *list = NULL;
 
     g_assert(NULL != data);
     
 
     g_assert(NULL != data);
     
@@ -1105,7 +1003,14 @@ static void cbEmailing(GtkWidget* widget, AppData *data)
         file = file2uri(getFileName(data));
         ULOG_INFO("Emailing: %s", file);
         list = g_slist_append(list, file);
         file = file2uri(getFileName(data));
         ULOG_INFO("Emailing: %s", file);
         list = g_slist_append(list, file);
-        if (osso_email_files_email(data->osso, list) != OSSO_OK)
+        result = libmodest_dbus_client_compose_mail(data->osso,
+                NULL, /*to*/
+                NULL, /*cc*/
+                NULL, /*bcc*/
+                NULL, /*body*/
+                NULL, /*subj*/
+                list);
+        if (!result)
             hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Emailing failed"));
 
         g_slist_free(list);
             hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Emailing failed"));
 
         g_slist_free(list);
@@ -1168,8 +1073,6 @@ static void cbSaveAs(GtkWidget* widget, AppData *data)
         basename = g_path_get_basename(data->saveFileName);
         ULOG_DEBUG("%s() - file '%s' succesfully saved!", G_STRFUNC, data->saveFileName);
 
         basename = g_path_get_basename(data->saveFileName);
         ULOG_DEBUG("%s() - file '%s' succesfully saved!", G_STRFUNC, data->saveFileName);
 
-        gtk_window_set_title(GTK_WINDOW(data->mainView), basename);
-
         /* Houston, we have a kludge:
          * for AU files we need to keep the old tmpfile for playback
          * for RAW/iLBC files, we can remove the tmpfile and point openFileName to the saved file
         /* Houston, we have a kludge:
          * for AU files we need to keep the old tmpfile for playback
          * for RAW/iLBC files, we can remove the tmpfile and point openFileName to the saved file
@@ -1265,7 +1168,6 @@ static void cbRec(GtkWidget* widget, AppData *data)
 
         setAppState(data, APPSTATE_RECORDING);
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
 
         setAppState(data, APPSTATE_RECORDING);
         gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
-        gtk_window_set_title(GTK_WINDOW(data->mainView), RECORDER_FILE_UNTITLED);
         data->file_format = data->filter;
         setFormatString(data, data->file_format);
     }
         data->file_format = data->filter;
         setFormatString(data, data->file_format);
     }
@@ -1314,18 +1216,6 @@ static void cbPlay(GtkWidget* widget, AppData *data)
 
     ULOG_INFO("filename %s", file);
      
 
     ULOG_INFO("filename %s", file);
      
-    /*openPlayPipeline( data );*/
-     
-    /*if ( ! GST_IS_ELEMENT(data->playPipeline) ) 
-    {
-        if (g_strrstr(data->openFileName, EXTENSION_RAW))
-        {
-             ULOG_INFO("cbOpen() - file was raw, assuming audio/x-raw-int, 8kHz, 1 ch, 16-bit");
-             destroyPipelines(data);
-             createPipeline(data, PIPELINE_PLAY);      
-        }
-    }*/
-     
     if (! GST_IS_ELEMENT(data->playPipeline))
     {
         ULOG_WARN("%s() - playPipeline does not exist", G_STRFUNC);
     if (! GST_IS_ELEMENT(data->playPipeline))
     {
         ULOG_WARN("%s() - playPipeline does not exist", G_STRFUNC);
@@ -1350,16 +1240,6 @@ static void cbStop(GtkWidget* widget, AppData *data)
 
     /* check if we are playing/recording */
 
 
     /* check if we are playing/recording */
 
-    /*
-    if (APPSTATE_PLAYING != getAppState(data) &&
-    APPSTATE_RECORDING != getAppState(data))
-    {
-      ULOG_WARN("cbStop() - state different than PLAYING or RECORDING "
-          "-> return");
-      return;
-    } 
-    */
-
     /* stop playing or recording */
     gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
     gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
     /* stop playing or recording */
     gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
     gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
@@ -1465,9 +1345,6 @@ static GtkWidget* createToolBar(AppData *data)
      /* add items to toolbar */
      gtk_toolbar_insert(toolBar, new, -1);
      gtk_toolbar_insert(toolBar, open, -1);
      /* add items to toolbar */
      gtk_toolbar_insert(toolBar, new, -1);
      gtk_toolbar_insert(toolBar, open, -1);
-     /*
-     gtk_toolbar_insert(toolBar, save, -1);
-     */
      gtk_toolbar_insert(toolBar, saveas, -1);
      gtk_toolbar_insert(toolBar, sep,  -1);
      gtk_toolbar_insert(toolBar, rec, -1);
      gtk_toolbar_insert(toolBar, saveas, -1);
      gtk_toolbar_insert(toolBar, sep,  -1);
      gtk_toolbar_insert(toolBar, rec, -1);
@@ -1481,11 +1358,6 @@ static GtkWidget* createToolBar(AppData *data)
      g_signal_connect(G_OBJECT(open), "clicked",
               G_CALLBACK(cbOpen), 
               data);
      g_signal_connect(G_OBJECT(open), "clicked",
               G_CALLBACK(cbOpen), 
               data);
-     /*
-     g_signal_connect(G_OBJECT(save), "clicked",
-              G_CALLBACK(cbSave), 
-              data);
-     */
      g_signal_connect(G_OBJECT(saveas), "clicked",
               G_CALLBACK(cbSaveAs), 
               data);
      g_signal_connect(G_OBJECT(saveas), "clicked",
               G_CALLBACK(cbSaveAs), 
               data);
@@ -1544,113 +1416,24 @@ static void cbItemClose(GtkWidget *widget, gpointer data)
 /* Create the menu items needed for the main view */
 static void createMenu( AppData *data )
 {
 /* Create the menu items needed for the main view */
 static void createMenu( AppData *data )
 {
-    /* Create needed variables */
-    GSList *group = NULL;
-    GtkMenu *main_menu;
-    GtkWidget *menu_file;
-    GtkWidget *menu_others;
-    GtkWidget *item_file;
-    GtkWidget *item_file_open;
-    GtkWidget *item_file_save_as;
-    GtkWidget *item_others;
-    GtkWidget *item_pcma;
-    GtkWidget *item_pcmu;
-    GtkWidget *item_ilbc;
-    GtkWidget *item_pcm;
-    GtkWidget *item_settings;
-    GtkWidget *item_email;
-    /*
-    GtkWidget *item_radio_type1;
-    */
-    GtkWidget *item_close;
-    GtkWidget *item_separator;
-
-    /* Get the menu from view */
-    main_menu = GTK_MENU(gtk_menu_new());
-    hildon_window_set_menu(data->mainView, main_menu);
-    
-    /* Create new submenu for "Others" */
-    menu_file = gtk_menu_new ();
-    menu_others = gtk_menu_new ();
-
-    /* Create menu items */
-    item_file = gtk_menu_item_new_with_label (_("File"));
-    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_email = gtk_menu_item_new_with_label(_("Send via e-mail..."));
-    
-    item_pcma = gtk_radio_menu_item_new_with_label(
-        group, FORMAT_NAME_PCMA);
-    item_ilbc = gtk_radio_menu_item_new_with_label_from_widget(
-        GTK_RADIO_MENU_ITEM(item_pcma), FORMAT_NAME_ILBC);
-    item_pcmu = gtk_radio_menu_item_new_with_label_from_widget(
-        GTK_RADIO_MENU_ITEM(item_pcma), FORMAT_NAME_PCMU);
-    item_pcm = gtk_radio_menu_item_new_with_label_from_widget(
-        GTK_RADIO_MENU_ITEM(item_pcma), FORMAT_NAME_WAV);
-    
-    data->filter = get_default_filter();
+    HildonAppMenu *menu;
+    GtkWidget *button_email;
 
 
-    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;        
-    /*
-    data->radiotype = item_radio_type1;
-    */
-    item_close = gtk_menu_item_new_with_label(_("Close"));
-    item_separator = gtk_separator_menu_item_new();
-    
-    /* Add menu items to right menus */
-    gtk_menu_append(main_menu, item_file );
-    gtk_menu_append(menu_file, item_file_open );
-    gtk_menu_append(menu_file, item_file_save_as );
-    gtk_menu_append(menu_file, item_email );
-    gtk_menu_append(main_menu, item_others );
-    gtk_menu_append(menu_others, item_pcm );
-    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 */
-    gtk_menu_item_set_submenu(
-        GTK_MENU_ITEM(item_file), menu_file );
-    gtk_menu_item_set_submenu(
-        GTK_MENU_ITEM(item_others), menu_others );
-
-    /* Attach the callback functions to the activate signal */
-    g_signal_connect( G_OBJECT( item_file_open), "activate",
-        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_email ), "activate",
+    menu = HILDON_APP_MENU( hildon_app_menu_new() );
+    button_email = hildon_gtk_button_new(HILDON_SIZE_AUTO);
+    gtk_button_set_label( GTK_BUTTON(button_email), "Send via email");
+    hildon_app_menu_append( menu, GTK_BUTTON(button_email));
+   
+    g_signal_connect( G_OBJECT( button_email ), "clicked",
         GTK_SIGNAL_FUNC (cbEmailing), data);
         GTK_SIGNAL_FUNC (cbEmailing), data);
-    g_signal_connect( G_OBJECT( item_close ), "activate",
-        GTK_SIGNAL_FUNC (cbItemClose), data);
 
 
-    g_signal_connect_swapped(G_OBJECT(item_pcma), "activate", G_CALLBACK(cbItemGroupChanged), data);
-    g_signal_connect_swapped(G_OBJECT(item_pcm), "activate", G_CALLBACK(cbItemGroupChanged), data);
     
     
-    /* Make all menu widgets visible */
+    gtk_widget_show_all( GTK_WIDGET(menu));
+
+    hildon_window_set_app_menu(HILDON_WINDOW(data->mainView), menu);
+
+    data->filter = get_default_filter();
 
 
-    gtk_widget_show_all( GTK_WIDGET( main_menu ) );
 }
 
 gboolean
 }
 
 gboolean
index e2aa678..55e4e37 100644 (file)
@@ -37,7 +37,7 @@
 #define SERVICE_NAME_FULL "com.nokia.maemo_recorder"
 
 #define DEFAULT_CHANNELS 1
 #define SERVICE_NAME_FULL "com.nokia.maemo_recorder"
 
 #define DEFAULT_CHANNELS 1
-#define DEFAULT_RATE 8000
+#define DEFAULT_RATE 16000
 
 #define GST_TYPE_ILBC "audio/x-iLBC"
 #define ILBC_RATE DEFAULT_RATE
 
 #define GST_TYPE_ILBC "audio/x-iLBC"
 #define ILBC_RATE DEFAULT_RATE
@@ -57,7 +57,7 @@
 #define GST_TYPE_PCMA "audio/x-alaw"
 #define GST_TYPE_PCMU "audio/x-mulaw"
 #define GST_TYPE_PCM "audio/x-raw-int"
 #define GST_TYPE_PCMA "audio/x-alaw"
 #define GST_TYPE_PCMU "audio/x-mulaw"
 #define GST_TYPE_PCM "audio/x-raw-int"
-#define PCM_RATE 8000
+#define PCM_RATE 16000
 #define PCM_WIDTH 16
 #define PCM_DEPTH 16
 #define PCM_ENDIANNESS 1234
 #define PCM_WIDTH 16
 #define PCM_DEPTH 16
 #define PCM_ENDIANNESS 1234
index e2f3f05..4afcc73 100755 (executable)
@@ -24,6 +24,7 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 #include <locale.h>
 #include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 #include <locale.h>
+#include <hildon/hildon-defines.h>
 #include <hildon/hildon-caption.h>
 #include <stdlib.h>
 #include <string.h>
 #include <hildon/hildon-caption.h>
 #include <stdlib.h>
 #include <string.h>
@@ -73,8 +74,8 @@ reset_defaults()
     settings_priv->default_dir = str;
 
     gconf_client_set_int(settings_priv->gconf,
     settings_priv->default_dir = str;
 
     gconf_client_set_int(settings_priv->gconf,
-                         KEY_DEFAULT_FILTER, FORMAT_ILBC, NULL);
-    settings_priv->default_filter = FORMAT_ILBC;
+                         KEY_DEFAULT_FILTER, FORMAT_WAV, NULL);
+    settings_priv->default_filter = FORMAT_WAV;
 }
 
 gint
 }
 
 gint