[Maemo-recorder-commits] r6 - trunk/src
jait at garage.maemo.org
jait at garage.maemo.org
Fri Sep 8 18:04:23 EEST 2006
Author: jait
Date: 2006-09-08 18:04:22 +0300 (Fri, 08 Sep 2006)
New Revision: 6
Modified:
trunk/src/maemo-recorder-au.c
trunk/src/maemo-recorder-ui.c
trunk/src/maemo-recorder.c
trunk/src/maemo-recorder.h
trunk/src/settings.c
trunk/src/settings.h
Log:
reworked settings: made it look more like other maemo dialogs, made some things static, fixed names and formatting etc..
Modified: trunk/src/maemo-recorder-au.c
===================================================================
--- trunk/src/maemo-recorder-au.c 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/maemo-recorder-au.c 2006-09-08 15:04:22 UTC (rev 6)
@@ -1,4 +1,4 @@
-/* vim: set ts=4 sw=4 et: */
+/* vim: set sts=4 sw=4 et: */
/*
* maemo-recorder-au.c
* Support for reading and writing AU/SND files
Modified: trunk/src/maemo-recorder-ui.c
===================================================================
--- trunk/src/maemo-recorder-ui.c 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/maemo-recorder-ui.c 2006-09-08 15:04:22 UTC (rev 6)
@@ -1,4 +1,4 @@
-/* vim: set ts=4 sw=4 et: */
+/* vim: set sts=4 sw=4 et: */
/*
* maemo-recorder-ui.c
*
@@ -312,7 +312,8 @@
ULOG_ERR("gst_element_link failed for src, filter and sink!");
return FALSE;
}
- break;
+ break;
+
case FORMAT_WAV:
gst_bin_add_many(GST_BIN(pipeline), src, parse, sink, NULL);
if (!gst_element_link_many (src, parse, sink, NULL))
@@ -347,6 +348,7 @@
}
break;
+
case FORMAT_WAV:
gst_bin_add_many(GST_BIN(pipeline), src, parse, NULL);
if (!gst_element_link_many (src, parse, NULL))
@@ -357,7 +359,6 @@
app->playPipeline = pipeline;
g_signal_connect(parse, "pad_added",
G_CALLBACK(new_pad_cb), app);
-
break;
default:
@@ -425,6 +426,7 @@
data->recPipeline = NULL;
*/
break;
+
default:
pipeline = data->playPipeline;
/*
@@ -504,11 +506,11 @@
break;
case GST_STATE_READY:
- /* hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, "Ready..."); */
- ULOG_INFO("%s() - Ready", G_STRFUNC);
- gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry),
+ /* hildon_banner_show_information(GTK_WIDGET(data->mainView), NULL, "Ready..."); */
+ ULOG_INFO("%s() - Ready", G_STRFUNC);
+ gtk_entry_set_text(GTK_ENTRY(data->mainViewData.stateEntry),
RECORDER_MSG_READY);
- break;
+ break;
case GST_STATE_PAUSED:
{
@@ -576,6 +578,7 @@
g_free (debug);
break;
}
+
case GST_MESSAGE_ERROR:
{
GError *err;
@@ -588,6 +591,7 @@
/* break; */
/* flow through to eos */
}
+
case GST_MESSAGE_EOS:
{
ULOG_INFO("%s() - eos", G_STRFUNC);
@@ -613,6 +617,7 @@
}
break;
}
+
case GST_MESSAGE_STATE_CHANGED:
{
GstState old;
@@ -1081,7 +1086,7 @@
static void cbSettings(GtkWidget* widget, AppData *data)
{
- edit_settings( widget, data );
+ settings_edit( widget, data );
}
static void cbSaveAs(GtkWidget* widget, AppData *data)
@@ -1542,13 +1547,13 @@
item_settings = gtk_menu_item_new_with_label (_("Settings"));
item_pcma = gtk_radio_menu_item_new_with_label(
- group, "PCM A-law");
+ group, FORMAT_NAME_PCMA);
item_ilbc = gtk_radio_menu_item_new_with_label_from_widget(
- GTK_RADIO_MENU_ITEM(item_pcma), "iLBC");
+ 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), "PCM u-law");
+ 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), "WAV");
+ GTK_RADIO_MENU_ITEM(item_pcma), FORMAT_NAME_WAV);
data->filter = get_default_filter();
Modified: trunk/src/maemo-recorder.c
===================================================================
--- trunk/src/maemo-recorder.c 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/maemo-recorder.c 2006-09-08 15:04:22 UTC (rev 6)
@@ -118,8 +118,9 @@
/* initialise gtk */
gtk_init(&argc, &argv);
- appData->gconf_client = init_settings(argc, argv);
+ appData->gconf_client = settings_init(argc, argv);
+
maemo_recorder_ui_new(appData);
ret = osso_rpc_set_default_cb_f(appData->osso,
Modified: trunk/src/maemo-recorder.h
===================================================================
--- trunk/src/maemo-recorder.h 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/maemo-recorder.h 2006-09-08 15:04:22 UTC (rev 6)
@@ -78,6 +78,11 @@
FORMAT_WAV
} AudioFormat;
+#define FORMAT_NAME_WAV "WAV"
+#define FORMAT_NAME_PCMA "PCM A-law"
+#define FORMAT_NAME_PCMU "PCM u-law"
+#define FORMAT_NAME_ILBC "iLBC"
+
/* TODO: this kind of struct might be more handy when passing around audioformat info */
#if 0
struct _AudioFormatSpec
Modified: trunk/src/settings.c
===================================================================
--- trunk/src/settings.c 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/settings.c 2006-09-08 15:04:22 UTC (rev 6)
@@ -1,3 +1,4 @@
+/* vim: set sts=4 sw=4 et: */
/*
* settings.c
* GConf settings
@@ -21,6 +22,8 @@
*/
#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <locale.h>
#include <hildon-widgets/hildon-caption.h>
#include <stdlib.h>
#include <string.h>
@@ -30,259 +33,310 @@
#include "maemo-recorder.h"
#include "settings.h"
-#define GCONF_PATH "/apps/maemo-recorder/settings"
-#define KEY_DEFAULT_DIR GCONF_PATH "/default_dir"
-#define KEY_DEFAULT_FILTER GCONF_PATH "/default_filter"
+#define GCONF_PATH "/apps/maemo-recorder/settings"
+#define KEY_DEFAULT_DIR GCONF_PATH "/default_dir"
+#define KEY_DEFAULT_FILTER GCONF_PATH "/default_filter"
typedef struct _SettingsPriv SettingsPriv;
struct _SettingsPriv
{
- GConfClient *gconf;
- gchar* default_dir;
- gint default_filter;
+ GConfClient *gconf;
+ gchar *default_dir;
+ gint default_filter;
};
-SettingsPriv *settings_priv;
+static SettingsPriv *settings_priv;
typedef struct _SettingsData SettingsData;
struct _SettingsData
{
- AppData* appdata;
- GtkWidget* label;
- GtkWidget* window;
- GtkComboBox *format_combobox;
+ AppData *appdata;
+ GtkWidget *dir_entry;
+ GtkWidget *window;
+ GtkWidget *format_combobox;
};
-SettingsData *settings_data;
+static SettingsData *settings_data;
-static gboolean load_settings();
+static gboolean load_settings(void);
-static void set_default()
+static void
+reset_defaults()
{
- gchar* str;
+ gchar *str;
str = g_strdup_printf("/home/user/MyDocs/.sounds");
- gconf_client_set_string(
- settings_priv->gconf,
- KEY_DEFAULT_DIR,
- str,
- NULL);
+ gconf_client_set_string(settings_priv->gconf, KEY_DEFAULT_DIR, str, NULL);
+ g_free(settings_priv->default_dir);
settings_priv->default_dir = str;
- gconf_client_set_int(
- settings_priv->gconf,
- KEY_DEFAULT_FILTER,
- FORMAT_ILBC,
- NULL);
+ gconf_client_set_int(settings_priv->gconf,
+ KEY_DEFAULT_FILTER, FORMAT_ILBC, NULL);
settings_priv->default_filter = FORMAT_ILBC;
}
-gint get_default_filter()
+gint
+get_default_filter()
{
load_settings();
return settings_priv->default_filter;
}
-void set_default_filter( gint filter )
+void
+set_default_filter(gint filter)
{
- gconf_client_set_int(
- settings_priv->gconf,
- KEY_DEFAULT_FILTER,
- filter,
- NULL);
- settings_priv->default_filter = filter;
-
+ gconf_client_set_int(settings_priv->gconf,
+ KEY_DEFAULT_FILTER, filter, NULL);
+ settings_priv->default_filter = filter;
+
}
-gchar* get_default_dir()
+gchar *
+get_default_dir()
{
load_settings();
return settings_priv->default_dir;
}
-void set_default_dir(gchar* selected)
+void
+set_default_dir(gchar * selected)
{
- gconf_client_set_string(
- settings_priv->gconf,
- KEY_DEFAULT_DIR,
- selected,
- NULL);
+ gconf_client_set_string(settings_priv->gconf,
+ KEY_DEFAULT_DIR, selected, NULL);
}
-static void cb_format_changed(gpointer data)
+static void
+cb_format_changed(gpointer data)
{
- gint active;
+ gint active;
- active = gtk_combo_box_get_active(settings_data->format_combobox);
- switch (active)
- {
- case 0:
- settings_priv->default_filter = FORMAT_WAV;
- break;
- case 1:
- settings_priv->default_filter = FORMAT_PCMA;
- break;
- case 2:
- settings_priv->default_filter = FORMAT_ILBC;
- break;
- default:
- break;
-
- }
+ active =
+ gtk_combo_box_get_active(GTK_COMBO_BOX
+ (settings_data->format_combobox));
+ switch (active)
+ {
+ case 0:
+ settings_priv->default_filter = FORMAT_WAV;
+ break;
+ case 1:
+ settings_priv->default_filter = FORMAT_PCMA;
+ break;
+ case 2:
+ settings_priv->default_filter = FORMAT_ILBC;
+ break;
+ default:
+ break;
+ }
}
-static void cb_chdir(gpointer data)
+static void
+cb_chdir(gpointer data)
{
- GtkWidget* dialog = NULL;
- gchar *selected = NULL;
+ GtkWidget *dialog = NULL;
g_assert(settings_data);
/* create dialog */
- dialog = GTK_WIDGET(hildon_file_chooser_dialog_new(
- GTK_WINDOW(settings_data->window),
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER));
+ dialog =
+ GTK_WIDGET(hildon_file_chooser_dialog_new
+ (GTK_WINDOW(settings_data->window),
+ GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER));
/* show it */
gtk_widget_show_all(dialog);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
{
- selected = g_strdup_printf("Default dir: %s",
- gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
- gtk_label_set_text(GTK_LABEL(settings_data->label), selected);
- settings_priv->default_dir = g_strdup(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
+ g_free(settings_priv->default_dir);
+ settings_priv->default_dir =
+ g_strdup(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
+ gtk_label_set_text(GTK_LABEL(settings_data->dir_entry),
+ settings_priv->default_dir);
}
gtk_widget_destroy(dialog);
}
-static gboolean load_settings()
+static gboolean
+load_settings()
{
- settings_priv->default_dir = gconf_client_get_string(
- settings_priv->gconf,
- KEY_DEFAULT_DIR,
- NULL);
+ g_free(settings_priv->default_dir);
+ settings_priv->default_dir = gconf_client_get_string(settings_priv->gconf,
+ KEY_DEFAULT_DIR,
+ NULL);
- settings_priv->default_filter = gconf_client_get_int(
- settings_priv->gconf,
- KEY_DEFAULT_FILTER,
- NULL);
+ settings_priv->default_filter = gconf_client_get_int(settings_priv->gconf,
+ KEY_DEFAULT_FILTER,
+ NULL);
- if ( settings_priv->default_dir && settings_priv->default_filter )
+ if (settings_priv->default_dir && settings_priv->default_filter)
return TRUE;
else
- return FALSE;
-
+ return FALSE;
+
}
-GConfClient *init_settings(gint argc, gchar *argv[])
+GConfClient *
+settings_init(gint argc, gchar * argv[])
{
GError *err = NULL;
+
settings_priv = g_new0(SettingsPriv, 1);
settings_data = g_new0(SettingsData, 1);
+
gconf_init(argc, argv, &err);
- if(err)
+
+ if (err)
{
ULOG_ERR("Unable to initialize gconf");
- set_default();
+ reset_defaults();
return NULL;
}
+
settings_priv->gconf = gconf_client_get_default();
- if(!settings_priv->gconf)
+
+ if (!settings_priv->gconf)
{
ULOG_ERR("Unable to initialize gconf");
- set_default();
+ reset_defaults();
return NULL;
}
gconf_client_add_dir(settings_priv->gconf, GCONF_PATH,
- GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- if(!load_settings())
+ if (!load_settings())
{
ULOG_ERR("Unable to load all settings");
- set_default();
+ reset_defaults();
return settings_priv->gconf;
}
-
+
return settings_priv->gconf;
}
-void edit_settings(GtkWidget* widget, AppData *data)
+void
+settings_edit(GtkWidget * widget, AppData * data)
{
- GtkWidget* btn_chdir;
- GtkWidget* label_def_format;
- gint res;
- gchar* str;
+ GtkWidget *vbox;
+ GtkWidget *btn_chdir;
+ GtkWidget *alignment;
+ GtkWidget *caption;
+ GtkSizeGroup *group;
+ gint res;
- load_settings();
+ load_settings();
- settings_data->appdata = data;
-
- settings_data->window = gtk_dialog_new_with_buttons("Settings",
- GTK_WINDOW(data->mainView),
- GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR,
- "OK", RESP_OK,
- "Cancel", RESP_CANCEL,
- NULL, NULL);
-
- settings_data->format_combobox = GTK_COMBO_BOX(gtk_combo_box_new_text());
-
- g_signal_connect(G_OBJECT(settings_data->window),
- "delete_event",
- G_CALLBACK(gtk_widget_destroy),
- NULL);
+ settings_data->appdata = data;
- str = g_strdup_printf("Default dir: %s", get_default_dir());
- settings_data->label = gtk_label_new(str);
- label_def_format = gtk_label_new("Default format");
-
- btn_chdir = gtk_button_new_with_label("Change dir");
-
- g_signal_connect(G_OBJECT(btn_chdir), "clicked",
- G_CALLBACK(cb_chdir),
- settings_data);
-
- gtk_widget_set_size_request(btn_chdir, 40, 40);
-
- gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "WAV");
- gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "PCM A-law");
- gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox), "iLBC");
-
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), settings_data->label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), btn_chdir, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), label_def_format, FALSE, FALSE, 5);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(settings_data->window)->vbox), GTK_WIDGET(settings_data->format_combobox), FALSE, FALSE, 0);
+ settings_data->window = gtk_dialog_new_with_buttons(_("Settings"),
+ GTK_WINDOW(data->
+ mainView),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT
+ |
+ GTK_DIALOG_NO_SEPARATOR,
+ _("OK"),
+ GTK_RESPONSE_OK,
+ _("Cancel"),
+ GTK_RESPONSE_CANCEL,
+ NULL, NULL);
- if (settings_priv->default_filter == FORMAT_ILBC)
- gtk_combo_box_set_active(settings_data->format_combobox, 2);
- if (settings_priv->default_filter == FORMAT_WAV)
- gtk_combo_box_set_active(settings_data->format_combobox, 0);
- if (settings_priv->default_filter == FORMAT_PCMA)
- gtk_combo_box_set_active(settings_data->format_combobox, 1);
+ g_signal_connect(G_OBJECT(settings_data->window),
+ "delete_event", G_CALLBACK(gtk_widget_destroy), NULL);
+ group = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL));
+ vbox = gtk_vbox_new(FALSE, HILDON_MARGIN_DEFAULT);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox),
+ HILDON_MARGIN_DEFAULT);
+ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(settings_data->window)->vbox),
+ vbox);
- g_signal_connect(G_OBJECT(settings_data->format_combobox), "changed",
- G_CALLBACK(cb_format_changed), settings_data);
-
- gtk_widget_show_all(settings_data->window);
-
- res = gtk_dialog_run(GTK_DIALOG(settings_data->window));
+ /* GtkEntry looks worse because the text get ellipsized */
+ settings_data->dir_entry = gtk_label_new(get_default_dir());
- if(res == RESP_OK)
- {
- set_default_dir(settings_priv->default_dir);
- set_default_filter(settings_priv->default_filter);
- printf("ok");
- } else {
- printf("cancel");
- }
-
- gtk_widget_destroy(settings_data->window);
+ /*
+ gtk_editable_set_editable(GTK_EDITABLE(settings_data->dir_entry), FALSE);
+ gtk_entry_set_text(GTK_ENTRY(settings_data->dir_entry), get_default_dir());
+ */
+
+ /* In maemo world it seems to "folder", not "directory" =( */
+ caption = hildon_caption_new(group, _("Default save folder:"),
+ settings_data->dir_entry, NULL,
+ HILDON_CAPTION_OPTIONAL);
+
+ gtk_box_pack_start(GTK_BOX(vbox), caption, FALSE, FALSE, 0);
+
+ /* browse button */
+ btn_chdir = gtk_button_new_with_label(_("Browse"));
+ alignment = gtk_alignment_new(1.0, 0.5, 0.0, 0.0);
+
+ gtk_container_add(GTK_CONTAINER(alignment), btn_chdir);
+ gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
+
+ g_signal_connect(G_OBJECT(btn_chdir), "clicked",
+ G_CALLBACK(cb_chdir), settings_data);
+
+ /*
+ gtk_widget_set_size_request(btn_chdir, 40, 40);
+ */
+
+ /* format combo */
+ settings_data->format_combobox = gtk_combo_box_new_text();
+
+ gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox),
+ FORMAT_NAME_WAV);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox),
+ FORMAT_NAME_PCMA);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(settings_data->format_combobox),
+ FORMAT_NAME_ILBC);
+
+ switch (settings_priv->default_filter)
+ {
+ case FORMAT_WAV:
+ gtk_combo_box_set_active(GTK_COMBO_BOX
+ (settings_data->format_combobox), 0);
+ break;
+
+ case FORMAT_PCMA:
+ gtk_combo_box_set_active(GTK_COMBO_BOX
+ (settings_data->format_combobox), 1);
+ break;
+
+ case FORMAT_ILBC:
+ default:
+ gtk_combo_box_set_active(GTK_COMBO_BOX
+ (settings_data->format_combobox), 2);
+ break;
+ }
+
+ g_signal_connect(G_OBJECT(settings_data->format_combobox), "changed",
+ G_CALLBACK(cb_format_changed), settings_data);
+
+ caption = hildon_caption_new(group, _("Default recording format:"),
+ settings_data->format_combobox, NULL,
+ HILDON_CAPTION_OPTIONAL);
+
+ gtk_box_pack_start(GTK_BOX(vbox), caption, FALSE, FALSE, 0);
+
+
+ gtk_widget_show_all(settings_data->window);
+ res = gtk_dialog_run(GTK_DIALOG(settings_data->window));
+
+ if (res == GTK_RESPONSE_OK)
+ {
+ set_default_dir(settings_priv->default_dir);
+ set_default_filter(settings_priv->default_filter);
+ ULOG_DEBUG("ok");
+ }
+ else
+ {
+ ULOG_DEBUG("cancel");
+ }
+
+ gtk_widget_destroy(settings_data->window);
}
-
Modified: trunk/src/settings.h
===================================================================
--- trunk/src/settings.h 2006-09-04 07:54:36 UTC (rev 5)
+++ trunk/src/settings.h 2006-09-08 15:04:22 UTC (rev 6)
@@ -1,3 +1,4 @@
+/* vim: set sts=4 sw=4 et: */
/*
* settings.h
* GConf settings
@@ -24,18 +25,16 @@
#define _SETTINGS_H
#include <gconf/gconf-client.h>
-#define RESP_OK 1
-#define RESP_CANCEL 2
-void edit_settings(GtkWidget* widget, AppData *data);
+void settings_edit(GtkWidget* widget, AppData *data);
-gint get_default_filter();
-void set_default_filter( gint filter );
+gint get_default_filter(void);
+void set_default_filter(gint filter);
-gchar* get_default_dir();
+gchar* get_default_dir(void);
void set_default_dir(gchar* selected);
-GConfClient *init_settings(gint argc, gchar *argv[]);
+GConfClient *settings_init(gint argc, gchar *argv[]);
-#endif // _SETTINGS_H
+#endif /* _SETTINGS_H */
More information about the Maemo-recorder-commits
mailing list