#include <string.h>
#include <sys/time.h>
#include <libmodest-dbus-client/libmodest-dbus-client.h>
+#include <glib/gstdio.h>
#include "maemo-recorder.h"
#include "maemo-recorder-ui.h"
#include "maemo-recorder-file.h"
static void cbOpen(GtkWidget* widget, AppData *data);
/*static void cbSave(GtkWidget* widget, AppData *data);*/
static void cbSaveAs(GtkWidget* widget, AppData *data);
-static void cbItemClose(GtkWidget *widget, gpointer data);
-static void cbUserSeek(GtkAdjustment *adjustment, gpointer data);
-static gchar* cbFormatSeekbarValue(GtkScale *scale, gdouble value);
-static GtkWidget* createToolBar(AppData *data);
static void createMenu( AppData *data );
static gboolean createPipeline(AppData *app, PipeLineType type);
static void openPlayPipeline( AppData *data );
static const gchar *getFileName(AppData *data);
static gdouble guessMediaLength(AppData *data);
static GstCaps *createCapsFilter(AudioFormat format);
+static gboolean evKeypress(GtkWidget *widget, GdkEventKey *ev, AppData *appdata);
+static gboolean cbScaleRelease(GtkWidget *widget, GdkEventButton *ev, gpointer data);
static gboolean lengthSet = FALSE;
GstElement *src = NULL;
GstElement *sink = NULL;
GstElement *filter = NULL;
- GstElement *queue = NULL;
GstElement *pipeline = NULL;
GstElement *parse = NULL;
GstElement *bin = NULL;
gtk_label_set_text(GTK_LABEL(data->mainViewData.stateEntry),
RECORDER_MSG_PLAYING);
gtk_widget_set_state(data->buttonPlay, GTK_STATE_ACTIVE);
- /*
- gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(data->buttonPlay), GTK_STOCK_MEDIA_PAUSE);
- */
}
break;
case GST_STATE_NULL:
ULOG_INFO("%s() - Null", G_STRFUNC);
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);
break;
gtk_adjustment_set_value(GTK_ADJUSTMENT(data->mainViewData.adjustment),
0);
gtk_label_set_text(GTK_LABEL(data->mainViewData.ctime), "00:00");
- gtk_widget_set_sensitive(data->buttonSave, FALSE);
gtk_widget_set_sensitive(data->buttonSaveAs, FALSE);
data->saved = TRUE;
/* check if we are playing/recording */
/* 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);
gtk_widget_set_state(data->buttonRec, GTK_STATE_NORMAL);
gtk_widget_set_sensitive(data->buttonPlay, TRUE);
ULOG_INFO("filter type=%d", app->filter);
}
-static void cbItemClose(GtkWidget *widget, gpointer data)
-{
- g_assert(data);
-
- if (!closeFile(data))
- return;
-
- gtk_main_quit();
-}
-
/* Create the menu items needed for the main view */
static void createMenu( AppData *data )
{
button_open = hildon_gtk_button_new(HILDON_SIZE_AUTO);
gtk_button_set_label( GTK_BUTTON(button_open), "Open");
button_save = hildon_gtk_button_new(HILDON_SIZE_AUTO);
+ data->buttonSaveAs = button_save;
+ gtk_widget_set_sensitive(data->buttonSaveAs, FALSE);
gtk_button_set_label( GTK_BUTTON(button_save), "Save");
button_email = hildon_gtk_button_new(HILDON_SIZE_AUTO);
gtk_button_set_label( GTK_BUTTON(button_email), "Send via email");
}
-gboolean
+static gboolean
cbScaleRelease(GtkWidget *widget, GdkEventButton *ev, gpointer data)
{
AppData* app = (AppData* ) data;
if (getAppState(app) == APPSTATE_RECORDING || NULL == app->playPipeline)
return FALSE;
- seekToTime(app->playPipeline, gtk_adjustment_get_value(app->mainViewData.adjustment));
+ seekToTime(app->playPipeline, gtk_adjustment_get_value(GTK_ADJUSTMENT(app->mainViewData.adjustment)));
return FALSE;
}
-gboolean
+static gboolean
evKeypress(GtkWidget *widget, GdkEventKey *ev, AppData *appdata)
{
HildonProgram *app = NULL;
HildonWindow *window = NULL;
GtkWidget *hbox = NULL;
- GtkWidget *label = NULL;
GtkWidget *ctime = NULL;
GtkWidget *etime = NULL;
GtkWidget *filename = NULL;
GtkWidget *format = NULL;
GtkWidget *state = NULL;
- GtkWidget *toolBar = NULL;
- GtkWidget *infohbox = NULL;
GtkWidget *table = NULL;
GtkWidget *scale = NULL;
GtkObject *adjustment = NULL;
ctime = gtk_label_new("00:00");
etime = gtk_label_new("00:00");
scale = gtk_hscale_new(GTK_ADJUSTMENT(adjustment));
- gtk_scale_set_draw_value(scale, FALSE);
- gtk_box_pack_start(hbox, ctime, FALSE, FALSE, HILDON_MARGIN_DOUBLE);
- gtk_box_pack_end(hbox, etime, FALSE, FALSE, HILDON_MARGIN_DOUBLE);
- gtk_box_pack_end(hbox, scale, TRUE, TRUE, HILDON_MARGIN_DOUBLE);
- gtk_box_set_homogeneous(hbox, FALSE);
+ gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), ctime, FALSE, FALSE, HILDON_MARGIN_DOUBLE);
+ gtk_box_pack_end(GTK_BOX(hbox), etime, FALSE, FALSE, HILDON_MARGIN_DOUBLE);
+ gtk_box_pack_end(GTK_BOX(hbox), scale, TRUE, TRUE, HILDON_MARGIN_DOUBLE);
+ gtk_box_set_homogeneous(GTK_BOX(hbox), FALSE);
- gtk_table_attach_defaults(table, filename,
+ gtk_table_attach_defaults(GTK_TABLE(table), filename,
1, 4, 1, 2);
- gtk_table_attach_defaults(table, format,
+ gtk_table_attach_defaults(GTK_TABLE(table), format,
1, 4, 2, 3);
- gtk_table_attach_defaults(table, state,
+ gtk_table_attach_defaults(GTK_TABLE(table), state,
1, 4, 3, 4);
- gtk_table_attach_defaults(table, hbox,
+ gtk_table_attach_defaults(GTK_TABLE(table), hbox,
0, 5, 5, 6);
recimage = gtk_image_new_from_file(REC_ICON);
rec = gtk_event_box_new();
data->buttonRec = GTK_WIDGET(rec);
- gtk_container_add(rec, recimage);
+ gtk_container_add(GTK_CONTAINER(rec), recimage);
playimage = gtk_image_new_from_file(PLAY_ICON);
play = gtk_event_box_new();
data->buttonPlay = GTK_WIDGET(play);
- gtk_container_add(play, playimage);
+ gtk_container_add(GTK_CONTAINER(play), playimage);
stopimage = gtk_image_new_from_file(STOP_ICON);
stop = gtk_event_box_new();
- gtk_container_add(stop, stopimage);
+ gtk_container_add(GTK_CONTAINER(stop), stopimage);
- gtk_table_attach_defaults(table, rec,
+ gtk_table_attach_defaults(GTK_TABLE(table), rec,
5, 6, 4, 6);
- gtk_table_attach_defaults(table, play,
+ gtk_table_attach_defaults(GTK_TABLE(table), play,
5, 6, 2, 4);
- gtk_table_attach_defaults(table, stop,
+ gtk_table_attach_defaults(GTK_TABLE(table), stop,
5, 6, 0, 2);
static gboolean cbStopPlayback(AppData *data)
{
- gint ret;
ULOG_INFO("Stopping playback");
g_assert(data != NULL);
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);
return FALSE;
}
-static void cbUserSeek(GtkAdjustment *adjustment, gpointer data)
-{
- AppData *app;
-
- g_return_if_fail(data != NULL);
- app = (AppData *) data;
-
- if (getAppState(app) != APPSTATE_READY && getAppState(app) != APPSTATE_PAUSED || NULL == app->playPipeline)
- return;
-
- seekToTime(app->playPipeline, gtk_adjustment_get_value(adjustment));
-}
-
-static gchar *cbFormatSeekbarValue(GtkScale *scale, gdouble value)
-{
-/* ULOG_INFO("cbFormatSeekbarValue");*/
- gint mins = 0;
- gint digits = gtk_scale_get_digits(scale);
-
- if (value >= 60.0)
- {
- mins = value / 60;
- value -= mins * 60.0;
- return g_strdup_printf("%d:%0*.*f", mins, digits + 3, digits, value);
- }
- /* mins:sec.frac */
- return g_strdup_printf("%0.*f", digits, value);
-}
-
static gboolean cbUpdateRecLength(AppData *data)
{
- struct timeval tv;
guint mins = 0;
gdouble secs;
gchar *tmp;