From: Marko Nykanen Date: Thu, 5 Nov 2009 01:40:19 +0000 (+0200) Subject: fremantle port X-Git-Tag: 0.3.0 X-Git-Url: http://git.maemo.org/git/?p=maemo-recorder;a=commitdiff_plain;h=ad6d7afbff62ff7e944b265d825d311f3fdc52d2 fremantle port --- diff --git a/configure.ac b/configure.ac index 3e8e7c7..1402df6 100644 --- a/configure.ac +++ b/configure.ac @@ -50,10 +50,6 @@ PKG_CHECK_MODULES(HILDON_LGPL, hildon-1) 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) @@ -66,7 +62,7 @@ PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0) 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) diff --git a/debian/changelog b/debian/changelog index 1b84c0b..88c5695 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +maemo-recorder (0.3.0) unstable; urgency=low + + * OS2009 version + + -- Marko Nykanen Sun, 30 Aug 2009 21:46:03 +0300 + maemo-recorder (0.2.0) unstable; urgency=low * OS2008 version diff --git a/debian/control b/debian/control index f0b067c..52ad778 100644 --- a/debian/control +++ b/debian/control @@ -1,14 +1,14 @@ Source: maemo-recorder Section: user/multimedia Priority: optional -Maintainer: Tapio Tolvanen -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 +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 -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: diff --git a/debian/maemo-recorder.postinst b/debian/maemo-recorder.postinst index abd5deb..74f2f1b 100644 --- a/debian/maemo-recorder.postinst +++ b/debian/maemo-recorder.postinst @@ -22,9 +22,6 @@ case "$1" in 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) diff --git a/src/maemo-recorder-ui.c b/src/maemo-recorder-ui.c index 2b99c78..19aee13 100644 --- a/src/maemo-recorder-ui.c +++ b/src/maemo-recorder-ui.c @@ -32,9 +32,7 @@ #include #include #include -#include -#include - +#include #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 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) { @@ -149,31 +132,29 @@ static gboolean createPipeline(AppData *app, PipeLineType type) GstElement *queue = NULL; GstElement *pipeline = NULL; GstElement *parse = NULL; + GstElement *bin = NULL; 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"); - 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: @@ -191,12 +172,25 @@ static gboolean createPipeline(AppData *app, PipeLineType type) 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"); - 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: @@ -229,7 +223,7 @@ static gboolean createPipeline(AppData *app, PipeLineType type) 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, @@ -238,11 +232,7 @@ static gboolean createPipeline(AppData *app, PipeLineType type) 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; @@ -266,17 +256,21 @@ static gboolean createPipeline(AppData *app, PipeLineType type) default: ULOG_ERR("Invalid pipeline type!"); - gst_object_unref(pipeline); 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 (!sink && app->filter != FORMAT_WAV) + if (!sink && app->filter != FORMAT_WAV ) { 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; - + default: break; @@ -342,29 +336,16 @@ static gboolean createPipeline(AppData *app, PipeLineType type) 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; - case PIPELINE_PLAY_MP3: 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; @@ -411,6 +392,10 @@ static gboolean destroyPipeline(AppData *data, PipeLineType type) 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: @@ -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); - /* - 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); } @@ -536,9 +509,6 @@ static void pipelineStateChanged (GstElement *element, 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); @@ -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); + 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: @@ -660,7 +634,6 @@ static gboolean cbCheckPosition (AppData *data) { GstFormat fmt = GST_FORMAT_TIME; gint64 pos = 0, len = 0; - static gboolean lengthSet = FALSE; 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_window_set_title(GTK_WINDOW(data->mainView), RECORDER_FILE_UNTITLED); - 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); - gtk_window_set_title(GTK_WINDOW(data->mainView), basename); 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); @@ -877,13 +847,12 @@ openURI(gpointer user_data) 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; - data->filter = format; + //data->filter = format; 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; + lengthSet = FALSE; /* 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); - data->filter = data->file_format; + //data->filter = data->file_format; 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; @@ -961,13 +931,11 @@ static void openPlayPipeline( AppData *data ) setLength(data, size); } } - /* else { - ULOG_INFO("playSize else"); setLength(data, 0.0); } - */ + } /* 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 ); @@ -1095,8 +991,10 @@ static void cbSettings(GtkWidget* widget, AppData *data) static void cbEmailing(GtkWidget* widget, AppData *data) { + + gboolean result; + GSList *list = NULL; gchar *file = NULL; - GSList *list = NULL; 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); - 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); @@ -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); - 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 @@ -1265,7 +1168,6 @@ static void cbRec(GtkWidget* widget, AppData *data) 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); } @@ -1314,18 +1216,6 @@ static void cbPlay(GtkWidget* widget, AppData *data) 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); @@ -1350,16 +1240,6 @@ static void cbStop(GtkWidget* widget, AppData *data) /* 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); @@ -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); - /* - gtk_toolbar_insert(toolBar, save, -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(save), "clicked", - G_CALLBACK(cbSave), - 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 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); - 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 diff --git a/src/maemo-recorder.h b/src/maemo-recorder.h index e2aa678..55e4e37 100644 --- a/src/maemo-recorder.h +++ b/src/maemo-recorder.h @@ -37,7 +37,7 @@ #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 @@ -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 PCM_RATE 8000 +#define PCM_RATE 16000 #define PCM_WIDTH 16 #define PCM_DEPTH 16 #define PCM_ENDIANNESS 1234 diff --git a/src/settings.c b/src/settings.c index e2f3f05..4afcc73 100755 --- a/src/settings.c +++ b/src/settings.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -73,8 +74,8 @@ reset_defaults() 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