name changed to recorder
[maemo-recorder] / src / maemo-recorder-ui.c
index 19aee13..7e7381a 100644 (file)
@@ -55,7 +55,7 @@
 #define GST_TIME_MSECS(t) \
         (guint) (((GstClockTime)(t)) % GST_SECOND)
 
-#define RECORDER_APP_TITLE "Maemo Recorder"
+#define RECORDER_APP_TITLE "Recorder"
 #define RECORDER_MSG_READY _("Ready")
 #define RECORDER_MSG_STOPPED _("Stopped")
 #define RECORDER_MSG_PAUSED _("Paused")
@@ -585,6 +585,7 @@ static gboolean cbBus(GstBus *bus,
              break;
         }
 
+        case GST_MESSAGE_ASYNC_DONE:
         case GST_MESSAGE_STATE_CHANGED: 
         {
             GstState old;
@@ -617,8 +618,7 @@ static void cbDestroy(GtkWidget* widget, GdkEvent *event, gpointer data)
     app = (AppData *) data;
 
     ULOG_DEBUG("delete_event");
-    if (!closeFile(app))
-        return;
+    closeFile(app);
 
     destroyPipelines(app);
     if (app->playPipeline)
@@ -893,7 +893,7 @@ static void openPlayPipeline( AppData *data )
         case FORMAT_PCM:
         case FORMAT_ILBC:
         case FORMAT_WAV:
-            destroyPipelines(data);
+            //destroyPipelines(data);
             //data->filter = data->file_format;
             createPipeline(data, PIPELINE_PLAY);
             break;
@@ -951,7 +951,6 @@ closeFile(AppData *data)
     note = hildon_note_new_confirmation_add_buttons(GTK_WINDOW(data->mainView), _("Save recording?"),
             _("Yes"), GTK_RESPONSE_YES,
             _("No"), GTK_RESPONSE_NO,
-            _("Cancel"), GTK_RESPONSE_CANCEL,
             NULL);
 
     i = gtk_dialog_run(GTK_DIALOG(note));
@@ -1110,6 +1109,8 @@ static void cbRec(GtkWidget* widget, AppData *data)
     if (APPSTATE_READY != getAppState(data))
     {
         ULOG_WARN("%s() - state different than READY -> return", G_STRFUNC);
+        if (APPSTATE_RECORDING == getAppState(data))
+            cbStop(widget,data);
         return;
     }
 
@@ -1177,7 +1178,9 @@ static void cbRec(GtkWidget* widget, AppData *data)
         hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Could not create pipeline"));
         setAppState(data, APPSTATE_READY);
     }
+
+    gtk_widget_set_sensitive(data->buttonPlay, FALSE);
+
     ULOG_DEBUG("%s() - end", G_STRFUNC);     
 }
 
@@ -1244,6 +1247,7 @@ static void cbStop(GtkWidget* widget, AppData *data)
     gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
     gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);
     gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
+    gtk_widget_set_sensitive(data->buttonPlay, TRUE);
 
     /* destroy related pipeline */
     switch(getAppState(data))
@@ -1832,15 +1836,7 @@ static gboolean cbStopPlayback(AppData *data)
     ULOG_INFO("Stopping playback");
    
     g_assert(data != NULL);
-
-    ret = gst_element_set_state(GST_ELEMENT(data->playPipeline), 
-                        GST_STATE_PAUSED);
-    if (seekToZero(data, GST_ELEMENT(data->playPipeline)))
-    {
-        gtk_adjustment_set_value( 
-           GTK_ADJUSTMENT(data->mainViewData.adjustment), 0);
-        gtk_adjustment_value_changed(GTK_ADJUSTMENT(data->mainViewData.adjustment));
-    }
+    destroyPipelines(data);
     setAppState(data, APPSTATE_READY);
     gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PLAY);
     gtk_widget_set_state(data->buttonPlay, GTK_STATE_NORMAL);