r2959 - trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src

abraxa at sita.openmoko.org abraxa at sita.openmoko.org
Thu Sep 13 08:49:00 CEST 2007


Author: abraxa
Date: 2007-09-13 08:48:53 +0200 (Thu, 13 Sep 2007)
New Revision: 2959

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/files_page.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.h
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.h
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.h
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.h
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist_page.c
Log:
Now informs user when appending a single file to the playlist, too
Auto-creates playlist directory now          
Minor clean-ups/clarifications



Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -220,7 +220,7 @@
 	GtkTreeViewColumn *column;
 	GdkPixbuf *track_icon;
 
-	track_icon = pixbuf_new_from_file("ico-tracktype-generic.png");
+	track_icon = pixbuf_new_from_file("ico-filetype-generic.png");
 
 	// Create data model
 	omp_editor_page_list_store = gtk_list_store_new(COLUMN_COUNT,
@@ -276,7 +276,7 @@
 	main_vbox = gtk_vbox_new(FALSE, 0);
 
 	// Caption
-	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 5, 5, 5, 5);
 	gtk_box_pack_start(GTK_BOX(main_vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0);
 	omp_editor_title_label = label;
@@ -301,7 +301,7 @@
 	image = gtk_image_new_from_icon_name("gtk-file", GTK_ICON_SIZE_BUTTON);
 	gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(image), TRUE, TRUE, 0);
 
-	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_label_set_text(GTK_LABEL(label), _("Add Tracks"));
 	gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/files_page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/files_page.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/files_page.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -92,17 +92,25 @@
 /**
  * Confirms to the user that the files have been added successfully
  * @param track_count Number of tracks that were added
- * @note We only use this when adding directories as it would be annoying otherwise
  */
 void
 omp_files_page_success_report(guint track_count)
 {
 	GtkWidget *dialog;
 
-	dialog = gtk_message_dialog_new(0,
-		GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
-		_("Successfully added %d files"), track_count);
+	if (!track_count) return;
 
+	if (track_count == 1)
+	{
+		dialog = gtk_message_dialog_new(0,
+			GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
+			_("File added successfully"));
+	} else {
+		dialog = gtk_message_dialog_new(0,
+			GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
+			_("Successfully added %d files"), track_count);
+	}
+
 	// We don't want a title of "<unnamed>"
 	gtk_window_set_title(GTK_WINDOW(dialog), " ");
 
@@ -281,7 +289,8 @@
 
 			} else {
 
-				omp_playlist_track_append_file(entry_name_abs);
+				if (omp_playlist_track_append_file(entry_name_abs))
+					omp_files_page_success_report(1);
 			}
 
 			// Save playlist
@@ -459,9 +468,8 @@
 
 	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(omp_files_page_set_prev_dir), NULL);
 
-	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, 0);
-	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 5, 5, 5, 5);
-	gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(alignment), FALSE, FALSE, 0);
+	alignment = label_create(&label, "Sans 6", "black", 0.05, 0.5, 1, 0, PANGO_ELLIPSIZE_START);
+	gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 	omp_files_path_label = label;
 
 	// File list viewport

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -29,7 +29,7 @@
 #include "guitools.h"
 
 /// Absolute path to the UI pixmaps
-gchar *ui_image_path = NULL;
+gchar *omp_ui_image_path = NULL;
 
 
 
@@ -44,7 +44,7 @@
 	GdkPixbuf *pixbuf = NULL;
 	GError *error = NULL;
 
-	image_file_name = g_strdup_printf("%s/%s", ui_image_path, file_name);
+	image_file_name = g_strdup_printf("%s/%s", omp_ui_image_path, file_name);
 
 	if(g_file_test(image_file_name, G_FILE_TEST_EXISTS))
 	{
@@ -66,16 +66,18 @@
  * Creates a label with default properties, wraps it up in a GtkAlignment and returns the latter for direct use
  * @param label Will be filled with a GtkLabel
  * @param font_info The desired font to be used (e.g. "Times 10")
+ * @param color_desc A string containing the name of the desired color (e.g. "black")
  * @param xalign Horizontal alignment (0..1)
  * @param yalign Vertical alignment (0..1)
  * @param xscale Horizontal expansion (0..1)
  * @param yscale Vertical expansion (0..1)
+ * @param ellipsize_mode Pango ellipsization mode to set for this label
  * @note See gtk_alignment_new() for further info
  */
 GtkWidget *
 label_create(GtkWidget **label, gchar *font_info, gchar *color_desc,
 	gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale,
-	gint max_char_count)
+	PangoEllipsizeMode ellipsize_mode)
 {
 	GdkColor color;
 	PangoFontDescription *font_desc;
@@ -88,10 +90,9 @@
 	pango_font_description_free(font_desc);
 	gtk_misc_set_alignment(GTK_MISC(*label), 0, 0.5);
 
-	if (max_char_count)
+	if (ellipsize_mode != PANGO_ELLIPSIZE_NONE)
 	{
-		gtk_label_set_width_chars(GTK_LABEL(*label), max_char_count);
-		gtk_label_set_ellipsize(GTK_LABEL(*label), PANGO_ELLIPSIZE_END);
+		gtk_label_set_ellipsize(GTK_LABEL(*label), ellipsize_mode);
 	}
 
 	gdk_color_parse(color_desc, &color);
@@ -121,7 +122,7 @@
 
 //	g_object_set(G_OBJECT(*button), "xalign", (gfloat)0.37, "yalign", (gfloat)0.37, NULL);
 
-	image_file_name = g_build_path("/", ui_image_path, image_name, NULL);
+	image_file_name = g_build_path("/", omp_ui_image_path, image_name, NULL);
 	btn_image = gtk_image_new_from_file(image_file_name);
 	g_free(image_file_name);
 	gtk_container_add(GTK_CONTAINER(button), GTK_WIDGET(btn_image));
@@ -158,7 +159,7 @@
 {
 	gchar *image_file_name;
 
-	image_file_name = g_build_path("/", ui_image_path, image_name, NULL);
+	image_file_name = g_build_path("/", omp_ui_image_path, image_name, NULL);
 	*image = gtk_image_new_from_file(image_file_name);
 	g_free(image_file_name);
 	gtk_container_add(GTK_CONTAINER(container), GTK_WIDGET(*image));
@@ -202,7 +203,7 @@
 	gchar *image_file_name;
 	GtkWidget *icon, *alignment;
 
-	image_file_name = g_build_path("/", ui_image_path, image_name, NULL);
+	image_file_name = g_build_path("/", omp_ui_image_path, image_name, NULL);
 	icon = gtk_image_new_from_file(image_file_name);
 	g_free(image_file_name);
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.h	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/guitools.h	2007-09-13 06:48:53 UTC (rev 2959)
@@ -31,12 +31,12 @@
 
 #include "main.h"
 
-extern gchar *ui_image_path;
+extern gchar *omp_ui_image_path;
 
 GdkPixbuf *pixbuf_new_from_file(const gchar* file_name);
 
 GtkWidget *label_create(GtkWidget **label, gchar *font_info, gchar *color_desc,
-	gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale, gint max_char_count);
+	gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale, PangoEllipsizeMode ellipsize_mode);
 GtkWidget *button_create_with_image(gchar *image_name, GtkWidget **image, GCallback callback);
 
 void error_dialog(gchar *message);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -390,7 +390,7 @@
 
 	// Initialize various things necessary for the full player UI
 	moko_stock_register();
-	ui_image_path = g_build_filename(DATA_DIR, RELATIVE_UI_IMAGE_PATH, NULL);
+	omp_ui_image_path = g_build_path("/", DATA_DIR, OMP_RELATIVE_UI_IMAGE_PATH, NULL);
 
 	g_set_application_name(_("Media Player"));
 	gtk_window_set_default_icon_name("openmoko-soundandvideo");
@@ -421,7 +421,7 @@
 	omp_playback_free();
 	omp_playlist_free();
 	gst_deinit();
-	g_free(ui_image_path);
+	g_free(omp_ui_image_path);
 
 	omp_session_free();
 	omp_config_free();

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.h	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main.h	2007-09-13 06:48:53 UTC (rev 2959)
@@ -29,15 +29,6 @@
 
 #include <gtk/gtk.h>
 
-// Where to find application-specific images relative to $DATA_DIR (/usr/share/openmoko-mediaplayer)?
-#define RELATIVE_UI_IMAGE_PATH "/images"
-
-// Where to find the playlist files relative to the user's home directory?
-#define RELATIVE_PLAYLIST_PATH "/playlists"
-
-// What file to save/load session data to/from? File name is relative to user's home directory
-#define SESSION_FILE_NAME "/.openmoko-mediaplayer"
-
 enum omp_notebook_tabs
 {
 	OMP_TAB_MAIN = 0,

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -102,64 +102,6 @@
 }
 
 /**
- * Sets a desired EQ/visualization band to a new level
- * @param pos Band to change (0..11)
- * @param level Level to set (0..15, anything higher gets capped)
- */
-void
-omp_main_band_set(guint pos, guint level)
-{
-	gchar *image_file_name;
-
-	// Sanity checks
-	g_return_if_fail(pos < 12);
-
-	// Pseudo-logarithmize the value
-	guint value = 0;
-
-	switch (level)
-	{
-		case 0:
-		case 1:
-		case 2:
-			value = 1;
-			break;
-
-		case 3:
-		case 4:
-			value = 2;
-			break;
-
-		case 5:
-		case 6:
-			value = 3;
-			break;
-
-		case 7:
-		case 8:
-		case 9:
-		case 10:
-		case 11:
-		case 12:
-		case 13:
-		case 14:
-		case 15:
-			value = level-3;
-			break;
-
-		default:
-			value = 12;
-	}
-
-	// Determine file name of the new image to use and apply it
-	image_file_name = g_strdup_printf("%s/ind-music-eq-%02d.png", ui_image_path, value);
-
-	gtk_image_set_from_file(GTK_IMAGE(main_widgets.band_image[pos]), image_file_name);
-
-	g_free(image_file_name);
-}
-
-/**
  * Gets called when the time slider's value got changed (yes, that means it gets called at least once per second)
  */
 void
@@ -350,12 +292,12 @@
 	gtk_container_add(GTK_CONTAINER(destination), GTK_WIDGET(mainvbox));
 
 	// Title label
-	alignment = label_create(&main_widgets.title_label, "Sans 8", "black", 0, 0, 1, 0, 18);
+	alignment = label_create(&main_widgets.title_label, "Sans 8", "black", 0, 0, 1, 0, PANGO_ELLIPSIZE_END);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 10, 0, 35, 30);
 	gtk_box_pack_start(GTK_BOX(mainvbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 
 	// Artist label
-	alignment = label_create(&main_widgets.artist_label, "Sans 6", "black", 0, 0, 1, 0, 30);
+	alignment = label_create(&main_widgets.artist_label, "Sans 6", "black", 0, 0, 1, 0, PANGO_ELLIPSIZE_END);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 5, 0, 35, 30);
 	gtk_box_pack_start(GTK_BOX(mainvbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 
@@ -376,7 +318,7 @@
 	container_add_image(GTK_CONTAINER(alignment), "ico-track.png");
 
 	// Track number
-	alignment = label_create(&main_widgets.track_number_label, "Sans 5", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&main_widgets.track_number_label, "Sans 5", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_box_pack_start(GTK_BOX(upper_hbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 
 	// Time icon
@@ -386,7 +328,7 @@
 	container_add_image(GTK_CONTAINER(alignment), "ico-time.png");
 
 	// Time
-	alignment = label_create(&main_widgets.time_label, "Sans 5", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&main_widgets.time_label, "Sans 5", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_box_pack_start(GTK_BOX(upper_hbox), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 
 	// --- --- --- --- --- Slider --- --- --- --- ---
@@ -422,7 +364,7 @@
 	gtk_container_add(GTK_CONTAINER(alignment), GTK_WIDGET(middle_hbox));
 
 	// EQ/Visualization bands
-	image_file_name = g_build_path("/", ui_image_path, "ind-music-eq-12.png", NULL);
+	image_file_name = g_build_path("/", omp_ui_image_path, "ind-music-eq-12.png", NULL);
 
 	for (i=0; i<12; i++)
 	{
@@ -450,7 +392,7 @@
 	container_add_image_with_ref(GTK_CONTAINER(alignment), "ind-music-volume-00.png", &main_widgets.volume_image);
 
 	// Volume label
-	alignment = label_create(&main_widgets.volume_label, "Sans 5", "darkorange", 0, 0, 1, 0, 0);
+	alignment = label_create(&main_widgets.volume_label, "Sans 5", "darkorange", 0, 0, 1, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 6, 0, 10, 0);
 	gtk_box_pack_start(GTK_BOX(volume_box), GTK_WIDGET(alignment), TRUE, TRUE, 0);
 	caption = g_strdup_printf(OMP_WIDGET_CAPTION_VOLUME, 0);
@@ -724,9 +666,9 @@
 
 	if (state)
 	{
-		image_file_name = g_build_filename(ui_image_path, "ico-shuffle-on.png", NULL);
+		image_file_name = g_build_filename(omp_ui_image_path, "ico-shuffle-on.png", NULL);
 	} else {
-		image_file_name = g_build_filename(ui_image_path, "ico-shuffle-off.png", NULL);
+		image_file_name = g_build_filename(omp_ui_image_path, "ico-shuffle-off.png", NULL);
 	}
 
 	gtk_image_set_from_file(GTK_IMAGE(main_widgets.shuffle_button_image), image_file_name);
@@ -744,19 +686,19 @@
 	switch (mode)
 	{
 		case OMP_REPEAT_OFF:
-			image_file_name = g_build_filename(ui_image_path, "ico-repeat-off.png", NULL);
+			image_file_name = g_build_filename(omp_ui_image_path, "ico-repeat-off.png", NULL);
 			break;
 
 		case OMP_REPEAT_ONCE:
-			image_file_name = g_build_filename(ui_image_path, "ico-repeat-once.png", NULL);
+			image_file_name = g_build_filename(omp_ui_image_path, "ico-repeat-once.png", NULL);
 			break;
 
 		case OMP_REPEAT_CURRENT:
-			image_file_name = g_build_filename(ui_image_path, "ico-repeat-current.png", NULL);
+			image_file_name = g_build_filename(omp_ui_image_path, "ico-repeat-current.png", NULL);
 			break;
 
 		case OMP_REPEAT_ALL:
-			image_file_name = g_build_filename(ui_image_path, "ico-repeat-all.png", NULL);
+			image_file_name = g_build_filename(omp_ui_image_path, "ico-repeat-all.png", NULL);
 	}
 
 	gtk_image_set_from_file(GTK_IMAGE(main_widgets.repeat_button_image), image_file_name);
@@ -833,7 +775,7 @@
 
 	volume = omp_playback_get_volume();
 
-	image_file_name = g_strdup_printf("%s/ind-music-volume-%02d.png", ui_image_path, volume/10);
+	image_file_name = g_strdup_printf("%s/ind-music-volume-%02d.png", omp_ui_image_path, volume/10);
 	gtk_image_set_from_file(GTK_IMAGE(main_widgets.volume_image), image_file_name);
 	g_free(image_file_name);
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -25,6 +25,7 @@
  */
 
 #include <glib.h>
+#include <glib/gstdio.h>
 
 #include <string.h>
 #include <stdlib.h>
@@ -180,11 +181,18 @@
 void
 omp_session_init()
 {
+	gchar *path_name;
+
 	// This mustn't be called more than once
 	g_return_if_fail(omp_session == NULL);
 
 	omp_session = g_new0(struct _omp_session, 1);
 	omp_session_reset();
+
+	// Make sure the playlist directory exists
+	path_name = g_build_path("/", g_get_home_dir(), OMP_RELATIVE_PLAYLIST_PATH, NULL);
+	g_mkdir(path_name, S_IRUSR | S_IWUSR | S_IXUSR);  // rwx for the user, nothing for anyone else
+	g_free(path_name);
 }
 
 /**
@@ -254,8 +262,8 @@
 
 	g_return_if_fail(omp_session);
 
-	// SESSION_FILE_NAME is relative to user's home dir
-	file_name = g_build_filename(g_get_home_dir(), SESSION_FILE_NAME, NULL);
+	// OMP_SESSION_FILE_NAME is relative to user's home dir
+	file_name = g_build_filename(g_get_home_dir(), OMP_SESSION_FILE_NAME, NULL);
 
 	// Permissions for created session file are 0600
 	session_file = creat(file_name, S_IRUSR | S_IWUSR);
@@ -290,8 +298,8 @@
 
 	g_return_if_fail(omp_session);
 
-	// SESSION_FILE_NAME is relative to user's home dir
-	file_name = g_build_filename(g_get_home_dir(), SESSION_FILE_NAME, NULL);
+	// OMP_SESSION_FILE_NAME is relative to user's home dir
+	file_name = g_build_filename(g_get_home_dir(), OMP_SESSION_FILE_NAME, NULL);
 
 	session_file = open(file_name, O_RDONLY);
 	if (session_file == -1) goto io_error;

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.h	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/persistent.h	2007-09-13 06:48:53 UTC (rev 2959)
@@ -35,8 +35,20 @@
 
 #define OMP_EVENT_SESSION_FILE_CHOOSER_PATH_CHANGED "session_file_chooser_path_changed"
 
+// Default path to open in the file chooser
 #define OMP_DEFAULT_FILE_CHOOSER_PATH "/media/card/"
 
+// What file to save/load session data to/from? File name is relative to user's home directory
+#define OMP_SESSION_FILE_NAME "/.openmoko-mediaplayer"
+
+// Where to find application-specific images relative to $DATA_DIR (/usr/share/openmoko-mediaplayer)?
+#define OMP_RELATIVE_UI_IMAGE_PATH "/images"
+
+// Where to find the playlist files relative to the user's home directory?
+#define OMP_RELATIVE_PLAYLIST_PATH "/playlists"
+
+
+
 /// Application configuration data
 /// @note Default values are taken from omp_default_config
 /// @note Update that struct as well if you make changes here!

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -320,7 +320,7 @@
 omp_playback_get_track_position()
 {
 	GstFormat format = GST_FORMAT_TIME;
-	gint64 position;
+	gint64 position = 0;
 
 	if (!omp_gst_playbin)
 	{
@@ -341,10 +341,7 @@
 	GstState pipe_state;
 	gint64 pos;
 
-	if (!omp_gst_playbin)
-	{
-		return;
-	}
+	if (!omp_gst_playbin) return;
 
 	// If we don't clamp it to values >= 0 we trigger EOS messages which make the playlist mess up
 	if (position < 0) position = 0;

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -905,9 +905,10 @@
 
 /**
  * Appends a track to the end of the playlist
+ * @return TRUE on success, FALSE on failure
  * @todo Make unicode-safe
  */
-void
+gboolean
 omp_playlist_track_append_file(gchar *file_name)
 {
 	omp_spiff_track *new_track;
@@ -915,8 +916,8 @@
 	gchar *uri, name_char;
 	guint name_pos, uri_pos, name_len;
 
-	if (!omp_playlist) return;
-	if (!file_name) return;
+	if (!omp_playlist) return FALSE;
+	if (!file_name) return FALSE;
 
 	// Try to make the "last track" pointer valid - if it stays NULL then the list is empty
 	if (!omp_playlist_last_track)
@@ -927,9 +928,13 @@
 	// Append track
 	if (omp_playlist_last_track)
 	{
+		// List already has entries - we append
 		new_track = omp_spiff_new_track_before(&omp_playlist_last_track->next);
 		omp_playlist_last_track = omp_playlist_last_track->next;
+
 	} else {
+
+		// List is empty - we start it
 		new_track = omp_spiff_new_track_before(&omp_playlist->tracks);
 		omp_playlist_last_track = omp_playlist->tracks;
 	}
@@ -976,6 +981,8 @@
 
 	// Notify UI of the change
 	g_signal_emit_by_name(G_OBJECT(omp_window), OMP_EVENT_PLAYLIST_TRACK_COUNT_CHANGED);
+
+	return TRUE;
 }
 
 /**

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.h	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.h	2007-09-13 06:48:53 UTC (rev 2959)
@@ -92,7 +92,7 @@
 void omp_playlist_advance_iter(omp_playlist_iter *iter);
 gboolean omp_playlist_iter_finished(omp_playlist_iter *iter);
 
-void omp_playlist_track_append_file(gchar *file_name);
+gboolean omp_playlist_track_append_file(gchar *file_name);
 guint omp_playlist_track_append_directory(gchar *dir_name);
 
 gchar *get_base_file_name(gchar *file_name);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist_page.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist_page.c	2007-09-12 17:33:29 UTC (rev 2958)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist_page.c	2007-09-13 06:48:53 UTC (rev 2959)
@@ -34,6 +34,7 @@
 
 #include "guitools.h"
 #include "main.h"
+#include "persistent.h"
 #include "playlist.h"
 #include "playlist_page.h"
 
@@ -161,7 +162,7 @@
 		FILE_NAME_COLUMN, &playlist_file, -1);
 
 	playlist_file_abs =
-		g_build_filename(g_get_home_dir(), RELATIVE_PLAYLIST_PATH, playlist_file, NULL);
+		g_build_filename(g_get_home_dir(), OMP_RELATIVE_PLAYLIST_PATH, playlist_file, NULL);
 
 	// Determine what to do
 	switch (column_id)
@@ -200,7 +201,7 @@
 	g_return_if_fail(name[0] != 0);
 
 	// Playlist path is relative to user's home dir
-	path = g_build_path("/", g_get_home_dir(), RELATIVE_PLAYLIST_PATH, NULL);
+	path = g_build_path("/", g_get_home_dir(), OMP_RELATIVE_PLAYLIST_PATH, NULL);
 	file_name = g_strdup_printf("%s/%s.%s", path, name, OMP_PLAYLIST_FILE_EXTENSION);
 
 	omp_playlist_create(file_name);
@@ -225,7 +226,7 @@
 	gtk_list_store_clear(omp_playlist_page_list_store);
 
 	// Playlist path is relative to user's home dir
-	path = g_build_path("/", g_get_home_dir(), RELATIVE_PLAYLIST_PATH, NULL);
+	path = g_build_path("/", g_get_home_dir(), OMP_RELATIVE_PLAYLIST_PATH, NULL);
 
 	playlist_dir = g_dir_open(path, 0, &error);
 
@@ -325,7 +326,7 @@
 	main_vbox = gtk_vbox_new(FALSE, 0);
 
 	// Caption #1
-	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 5, 5, 5, 5);
 	gtk_box_pack_start(GTK_BOX(main_vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0);
 	gtk_label_set_text(GTK_LABEL(label), _("Select Playlist to load:"));
@@ -338,7 +339,7 @@
 	omp_playlist_page_list_create(GTK_CONTAINER(scroll_box));
 
 	// Caption #2
-	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, 0);
+	alignment = label_create(&label, "Sans 6", "black", 0, 0, 0, 0, PANGO_ELLIPSIZE_NONE);
 	gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 5, 5, 5, 5);
 	gtk_box_pack_start(GTK_BOX(main_vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0);
 	gtk_label_set_text(GTK_LABEL(label), _("Enter name to create a new playlist:"));
@@ -348,7 +349,7 @@
 	omp_playlist_page_entry = gtk_entry_new();
 	button = gtk_button_new();
 
-	image_file_name = g_build_filename(ui_image_path, "ico-playlist-new.png", NULL);
+	image_file_name = g_build_filename(omp_ui_image_path, "ico-playlist-new.png", NULL);
 	image = gtk_image_new_from_file(image_file_name);
 	g_free(image_file_name);
 	gtk_container_add(GTK_CONTAINER(button), GTK_WIDGET(image));





More information about the commitlog mailing list