- switch (app->filter)
- {
- case FORMAT_ILBC:
- case FORMAT_PCM:
- case FORMAT_PCMA:
- if (!filter)
- {
- ULOG_ERR("Could not create filter GstElement!");
- return FALSE;
- }
- gst_bin_add_many(GST_BIN(pipeline), src, filter, sink, NULL);
-
- if (!gst_element_link_many (src, filter, sink, NULL))
- {
- ULOG_ERR("gst_element_link failed for src, filter and sink!");
- return FALSE;
- }
- break;
- case FORMAT_WAV:
- gst_bin_add_many(GST_BIN(pipeline), src, parse, sink, NULL);
- if (!gst_element_link_many (src, parse, sink, NULL))
- {
- ULOG_ERR("gst_element_link failed for src, parse and sink!");
- }
- break;
-
- default:
- break;
+ switch (app->filter)
+ {
+ case FORMAT_ILBC:
+ case FORMAT_PCM:
+ case FORMAT_PCMA:
+ if (!filter)
+ {
+ ULOG_ERR("Could not create filter GstElement!");
+ return FALSE;
+ }
+ gst_bin_add_many(GST_BIN(pipeline), src, filter, sink, NULL);
+
+ if (!gst_element_link_many (src, filter, sink, NULL))
+ {
+ ULOG_ERR("gst_element_link failed for src, filter and sink!");
+ return FALSE;
+ }
+ break;
+ case FORMAT_WAV:
+ gst_bin_add_many(GST_BIN(pipeline), src, parse, sink, NULL);
+ if (!gst_element_link_many (src, parse, sink, NULL))
+ {
+ ULOG_ERR("gst_element_link failed for src, parse and sink!");
+ }
+ break;
+
+ default:
+ break;
- switch (app->filter)
- {
- case FORMAT_ILBC:
- case FORMAT_PCM:
- case FORMAT_PCMA:
- if (!filter)
- {
- ULOG_ERR("Could not create filter GstElement!");
- return FALSE;
- }
- gst_bin_add_many(GST_BIN(pipeline), src, filter, sink, NULL);
-
- if (!gst_element_link_many (src, filter, sink, NULL))
- {
- ULOG_ERR("gst_element_link failed for src, filter and sink!");
- return FALSE;
- }
-
- 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;
+ switch (app->filter)
+ {
+ case FORMAT_ILBC:
+ case FORMAT_PCM:
+ case FORMAT_PCMA:
+ if (!filter)
+ {
+ ULOG_ERR("Could not create filter GstElement!");
+ return FALSE;
+ }
+ gst_bin_add_many(GST_BIN(pipeline), src, filter, sink, NULL);
+
+ if (!gst_element_link_many (src, filter, sink, NULL))
+ {
+ ULOG_ERR("gst_element_link failed for src, filter and sink!");
+ return FALSE;
+ }
+ 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;
+ }
- /* for some reason the state does not update manually */
- gst_element_get_state(pipeline, &state,
- &pending, GST_CLOCK_TIME_NONE);
- pipelineStateChanged(pipeline,
- state,
- state,
- pending,
- data);
+ /* for some reason the state does not update manually */
+ gst_element_get_state(pipeline, &state,
+ &pending, GST_CLOCK_TIME_NONE);
+ pipelineStateChanged(pipeline,
+ state,
+ state,
+ pending,
+ data);
- switch (GST_MESSAGE_TYPE(message))
- {
- case GST_MESSAGE_WARNING:
- {
- GError *err;
- gchar *debug;
-
- gst_message_parse_error (message, &err, &debug);
- ULOG_WARN("%s() - Warning: %s", G_STRFUNC, err->message);
- g_error_free (err);
- g_free (debug);
- break;
- }
- case GST_MESSAGE_ERROR:
- {
- GError *err;
- gchar *debug;
-
- gst_message_parse_error (message, &err, &debug);
- ULOG_ERR("%s() - Error: %s", G_STRFUNC, err->message);
- g_error_free (err);
- g_free (debug);
- /* break; */
- /* flow through to eos */
- }
- case GST_MESSAGE_EOS:
- {
- ULOG_INFO("%s() - eos", G_STRFUNC);
-
- switch(getAppState(app))
- {
- case APPSTATE_PLAYING:
- /* stop playback after a short break*/
- g_timeout_add(STOP_DELAY, (GSourceFunc)cbStopPlayback, data);
- break;
-
- case APPSTATE_RECORDING:
- gst_element_set_state(GST_ELEMENT(app->recPipeline),
- GST_STATE_PAUSED);
- destroyPipeline(app, PIPELINE_REC);
- app->saved = FALSE;
- break;
- case APPSTATE_READY:
- default:
- /* destroyPipelines(app); */
- break;
- }
- break;
- }
- case GST_MESSAGE_STATE_CHANGED:
- {
- GstState old;
- GstState new;
- GstState pending;
-
- gst_message_parse_state_changed(message, &old, &new, &pending);
-
- pipelineStateChanged(NULL, old, new, pending, app);
-
- break;
- }
- default:
- /* unhandled message */
- ULOG_WARN("%s() - Unhandled message, type = %d", G_STRFUNC, message->type);
- break;
- }
-
- /* remove message from the queue */
- return TRUE;
+ switch (GST_MESSAGE_TYPE(message))
+ {
+ case GST_MESSAGE_WARNING:
+ {
+ GError *err;
+ gchar *debug;
+
+ gst_message_parse_error (message, &err, &debug);
+ ULOG_WARN("%s() - Warning: %s", G_STRFUNC, err->message);
+ g_error_free (err);
+ g_free (debug);
+ break;
+ }
+ case GST_MESSAGE_ERROR:
+ {
+ GError *err;
+ gchar *debug;
+
+ gst_message_parse_error (message, &err, &debug);
+ ULOG_ERR("%s() - Error: %s", G_STRFUNC, err->message);
+ g_error_free (err);
+ g_free (debug);
+ /* break; */
+ /* flow through to eos */
+ }
+ case GST_MESSAGE_EOS:
+ {
+ ULOG_INFO("%s() - eos", G_STRFUNC);
+
+ switch(getAppState(app))
+ {
+ case APPSTATE_PLAYING:
+ /* stop playback after a short break*/
+ g_timeout_add(STOP_DELAY, (GSourceFunc)cbStopPlayback, data);
+ break;
+
+ case APPSTATE_RECORDING:
+ gst_element_set_state(GST_ELEMENT(app->recPipeline),
+ GST_STATE_PAUSED);
+ destroyPipeline(app, PIPELINE_REC);
+ app->saved = FALSE;
+ break;
+
+ case APPSTATE_READY:
+ default:
+ /* destroyPipelines(app); */
+ break;
+ }
+ break;
+ }
+ case GST_MESSAGE_STATE_CHANGED:
+ {
+ GstState old;
+ GstState new;
+ GstState pending;
+
+ gst_message_parse_state_changed(message, &old, &new, &pending);
+
+ pipelineStateChanged(NULL, old, new, pending, app);
+
+ break;
+ }
+
+ default:
+ /* unhandled message */
+ ULOG_WARN("%s() - Unhandled message, type = %d", G_STRFUNC, message->type);
+ break;
+ }
+
+ /* remove message from the queue */
+ return TRUE;
- gint64 len;
- gdouble size = 0;
- /* create pipelines */
- /* check file type */
- switch (data->file_format)
- {
- case FORMAT_PCMA:
- case FORMAT_PCMU:
- case FORMAT_PCM:
- case FORMAT_ILBC:
- case FORMAT_WAV:
- destroyPipelines(data);
- data->filter = data->file_format;
- createPipeline(data, PIPELINE_PLAY);
- break;
- case FORMAT_MP3:
- destroyPipelines(data);
- data->filter = data->file_format;
- createPipeline(data, PIPELINE_PLAY_MP3);
- break;
- case FORMAT_NONE:
- default:
- ULOG_WARN("%s() - unknown file_format", G_STRFUNC);
- hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Unknown filetype!"));
- return;
-
- break;
- }
-
- if (!GST_IS_ELEMENT(data->playPipeline))
- {
- hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Could not create pipeline!"));
- return;
- }
+ gint64 len;
+ gdouble size = 0;
+ /* create pipelines */
+ /* check file type */
+ switch (data->file_format)
+ {
+ case FORMAT_PCMA:
+ case FORMAT_PCMU:
+ case FORMAT_PCM:
+ case FORMAT_ILBC:
+ case FORMAT_WAV:
+ destroyPipelines(data);
+ data->filter = data->file_format;
+ createPipeline(data, PIPELINE_PLAY);
+ break;
+
+ case FORMAT_MP3:
+ destroyPipelines(data);
+ data->filter = data->file_format;
+ createPipeline(data, PIPELINE_PLAY_MP3);
+ break;
+
+ case FORMAT_NONE:
+ default:
+ ULOG_WARN("%s() - unknown file_format", G_STRFUNC);
+ hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Unknown filetype!"));
+ return;
+ break;
+ }
+
+ if (!GST_IS_ELEMENT(data->playPipeline))
+ {
+ hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Could not create pipeline!"));
+ return;
+ }
- case FORMAT_ILBC:
- default:
- data->saveFileName = g_strdup(DEFAULT_TMP_ILBC_FILE);
- data->openFileName = g_strdup(DEFAULT_TMP_ILBC_FILE);
- break;
- }
-
- ULOG_INFO("%s() - creating pipelines", G_STRFUNC);
- /* start recording */
- /* create related pipelines */
- if (createPipeline(data, PIPELINE_REC))
- {
- ULOG_INFO("%s() - starting recording", G_STRFUNC);
- /* start recording */
- gst_element_set_state(GST_ELEMENT(data->recPipeline),
- GST_STATE_PLAYING);
-
- /* update display */
- gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry),
- data->saveFileName);
-
- 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;
- }
- else
- {
- ULOG_ERR("Could not create rec pipeline!");
- hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Could not create pipeline"));
- setAppState(data, APPSTATE_READY);
- }
-
- ULOG_DEBUG("%s() - end", G_STRFUNC);
+ case FORMAT_WAV:
+ data->saveFileName = g_strdup(DEFAULT_TMP_WAV_FILE);
+ data->openFileName = g_strdup(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);
+ break;
+ }
+
+ ULOG_INFO("%s() - creating pipelines", G_STRFUNC);
+ /* start recording */
+ /* create related pipelines */
+ if (createPipeline(data, PIPELINE_REC))
+ {
+ ULOG_INFO("%s() - starting recording", G_STRFUNC);
+ /* start recording */
+ gst_element_set_state(GST_ELEMENT(data->recPipeline),
+ GST_STATE_PLAYING);
+
+ /* update display */
+ gtk_entry_set_text(GTK_ENTRY(data->mainViewData.fileNameEntry),
+ data->saveFileName);
+
+ 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;
+ }
+ else
+ {
+ ULOG_ERR("Could not create rec pipeline!");
+ hildon_banner_show_information(GTK_WIDGET(data->mainView), GTK_STOCK_DIALOG_ERROR, _("Could not create pipeline"));
+ setAppState(data, APPSTATE_READY);
+ }
+
+ ULOG_DEBUG("%s() - end", G_STRFUNC);
gtk_container_add (GTK_CONTAINER(window), vbox);
gtk_box_pack_start (GTK_BOX(vbox), table, FALSE, TRUE, 0);
gtk_box_pack_start (GTK_BOX(vbox), scale, FALSE, FALSE, 0);
gtk_container_add (GTK_CONTAINER(window), vbox);
gtk_box_pack_start (GTK_BOX(vbox), table, FALSE, TRUE, 0);
gtk_box_pack_start (GTK_BOX(vbox), scale, FALSE, FALSE, 0);