fix misreported audiolenght, playback timer
authorMarko Nykanen <marko.nykanen@gmail.com>
Wed, 16 Dec 2009 20:29:02 +0000 (22:29 +0200)
committerMarko Nykanen <marko.nykanen@gmail.com>
Wed, 16 Dec 2009 20:29:02 +0000 (22:29 +0200)
debian/changelog
src/maemo-recorder-ui.c
src/maemo-recorder.h

index fb1ca50..43adb72 100644 (file)
@@ -1,3 +1,10 @@
+recorder (0.3.3) unstable; urgency=low
+
+  * Fix misreported audio-length
+  * Playback timer
+
+ -- Marko Nykanen <marko.ja.nykanen@nokia.com>  Wed, 16 Dec 2009 21:01:45 +0200
+
 recorder (0.3.2) unstable; urgency=low
 
   * simpler ui
index 6d95261..ab39db7 100644 (file)
@@ -302,8 +302,8 @@ static gboolean createPipeline(AppData *app, PipeLineType type)
                     break;
 
                 case FORMAT_WAV:
-                    gst_bin_add_many(GST_BIN(pipeline), src, parse, sink, NULL);
-                    if (!gst_element_link_many (src, parse, sink, NULL))
+                    gst_bin_add_many(GST_BIN(pipeline), src, filter, parse, sink, NULL);
+                    if (!gst_element_link_many (src, filter, parse, sink, NULL))
                     {
                         ULOG_ERR("gst_element_link failed for src, parse and sink!");
                     }
@@ -574,6 +574,7 @@ static gboolean cbBus(GstBus *bus,
                            GST_STATE_PAUSED);
                      destroyPipeline(app, PIPELINE_REC);
                      app->saved = FALSE;
+                     setAppState(data, APPSTATE_READY);
                      break;
 
                  case APPSTATE_READY:
@@ -653,7 +654,6 @@ static gboolean cbCheckPosition (AppData *data)
     {
         gdouble time = GST_TIME_TO_SECS(pos);
         guint mins = 0;
-        gdouble secs;
         gchar* tmp;
 
         ULOG_DEBUG("pos = %lld, time = %f", 
@@ -665,13 +665,13 @@ static gboolean cbCheckPosition (AppData *data)
            GTK_ADJUSTMENT(data->mainViewData.adjustment),
            time);
         gtk_adjustment_value_changed(GTK_ADJUSTMENT(data->mainViewData.adjustment));
-        if (secs >= 60.0)
+        if (time >= 60.0)
         {
-            mins = secs / 60;
-            secs -= mins * 60.0;
+            mins = time / 60;
+            time -= mins * 60.0;
         }
 
-        tmp = g_strdup_printf("%02u:%02d", mins, (int)secs);
+        tmp = g_strdup_printf("%02u:%02d", mins, (int)time);
 
         gtk_label_set_text(GTK_LABEL(data->mainViewData.ctime),
                  tmp);
@@ -1328,6 +1328,7 @@ static void cbStop(GtkWidget* widget, GdkEventButton *event, AppData *data)
             ULOG_INFO("%s() - Setting playPipeline state to PAUSED", G_STRFUNC);
             gst_element_set_state(GST_ELEMENT(data->playPipeline), 
                      GST_STATE_PAUSED);
+            setAppState(data, APPSTATE_READY);
             /* flow through */
         case APPSTATE_PAUSED:
         case APPSTATE_READY:
@@ -1347,9 +1348,8 @@ static void cbStop(GtkWidget* widget, GdkEventButton *event, AppData *data)
         case APPSTATE_RECORDING:
         {
             gdouble len = -1.0;
-            gst_element_set_state(GST_ELEMENT(data->recPipeline), 
-                 GST_STATE_PAUSED);
-            destroyPipeline(data, PIPELINE_REC);
+            gst_element_send_event(GST_ELEMENT(data->recPipeline),
+                 gst_event_new_eos());
             gtk_widget_set_sensitive(data->buttonSaveAs, TRUE);
             data->saved = FALSE;
 
@@ -1366,8 +1366,6 @@ static void cbStop(GtkWidget* widget, GdkEventButton *event, AppData *data)
             break;
     }
 
-    setAppState(data, APPSTATE_READY);
-
     ULOG_DEBUG("%s() - end", G_STRFUNC); 
 }
 
index 35e6196..ad450f7 100644 (file)
@@ -37,7 +37,7 @@
 #define SERVICE_NAME_FULL "com.nokia.maemo_recorder"
 
 #define DEFAULT_CHANNELS 1
-#define DEFAULT_RATE 16000
+#define DEFAULT_RATE 22050
 
 #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 16000
+#define PCM_RATE 22050
 #define PCM_WIDTH 16
 #define PCM_DEPTH 16
 #define PCM_ENDIANNESS 1234