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