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

abraxa at sita.openmoko.org abraxa at sita.openmoko.org
Sat Sep 1 13:35:49 CEST 2007


Author: abraxa
Date: 2007-09-01 13:35:46 +0200 (Sat, 01 Sep 2007)
New Revision: 2883

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.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
Log:
Bugfix: Make the playlist editor handle meta data properly on creation



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-01 11:12:10 UTC (rev 2882)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/editor_page.c	2007-09-01 11:35:46 UTC (rev 2883)
@@ -147,8 +147,9 @@
 omp_editor_page_list_populate()
 {
 	GtkTreeIter tree_iter;
-	guint track_num, duration;
-	gchar *track_title, *track_duration;
+	guint track_num;
+	gulong int_duration;
+	gchar *artist, *title, *duration, *caption;
 	omp_playlist_iter *pl_iter;
 
 	gtk_list_store_clear(omp_editor_page_list_store);
@@ -158,26 +159,41 @@
 	// Iterate over the playlist and gather track infos to fill the list with
 	while (!omp_playlist_iter_finished(pl_iter))
 	{
-		omp_playlist_get_track_from_iter(pl_iter, &track_num, &track_title, &duration);
+		omp_playlist_get_track_from_iter(pl_iter, &track_num, &artist, &title, &int_duration);
 
-		if (duration > 0)
+		if (int_duration > 0)
 		{
-			track_duration = g_strdup_printf(OMP_WIDGET_CAPTION_EDITOR_TRACK_TIME,
-				duration / 60000, (duration/1000) % 60);
+			duration = g_strdup_printf(OMP_WIDGET_CAPTION_EDITOR_TRACK_TIME,
+				(gint)(int_duration / 60000), (gint)(int_duration/1000) % 60);
 		} else {
-			track_duration = g_strdup("");
+			duration = g_strdup("");
 		}
 
+		if (artist)
+		{
+			if (strcmp(artist, "") != 0)
+			{
+				caption = g_strdup_printf(_("%1$s - %2$s"), artist, title);
+			} else {
+				caption = g_strdup(title);
+			}
+
+		} else {
+			caption = g_strdup(title);
+		}
+
 		gtk_list_store_append(omp_editor_page_list_store, &tree_iter);
 		gtk_list_store_set(omp_editor_page_list_store, &tree_iter,
 			NUMBER_COLUMN, track_num+1,
-			TITLE_COLUMN, track_title,
-			DURATION_COLUMN, track_duration, -1);
+			TITLE_COLUMN, caption,
+			DURATION_COLUMN, duration, -1);
 
-		g_free(track_duration);
-		g_free(track_title);
+		omp_playlist_advance_iter(pl_iter);
 
-		omp_playlist_advance_iter(pl_iter);
+		g_free(title);
+		g_free(artist);
+		g_free(caption);
+		g_free(duration);
 	}
 }
 

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-01 11:12:10 UTC (rev 2882)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.c	2007-09-01 11:35:46 UTC (rev 2883)
@@ -807,8 +807,8 @@
  * @param track_title Destination for the track title (can be NULL), must be freed after use
  */
 void
-omp_playlist_get_track_from_iter(omp_playlist_iter *iter, guint *track_num, gchar **track_title,
-	guint *duration)
+omp_playlist_get_track_from_iter(omp_playlist_iter *iter, guint *track_num, gchar **track_artist,
+ gchar **track_title, gulong *duration)
 {
 	// Sanity checks - one silent, one not
 	if (!iter) return;
@@ -820,6 +820,16 @@
 		*track_num = iter->track_num;
 	}
 
+	if (track_artist)
+	{
+		if (iter->track)
+		{
+			*track_artist = g_strdup(iter->track->creator);
+		} else {
+			*track_artist = NULL;
+		}
+	}
+
 	if (track_title)
 	{
 		if (iter->track)

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-01 11:12:10 UTC (rev 2882)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playlist.h	2007-09-01 11:35:46 UTC (rev 2883)
@@ -88,7 +88,7 @@
 
 omp_playlist_iter *omp_playlist_init_iterator();
 void omp_playlist_get_track_from_iter(omp_playlist_iter *iter, guint *track_num,
-	gchar **track_title, guint *duration);
+	gchar **track_artist, gchar **track_title, gulong *duration);
 void omp_playlist_advance_iter(omp_playlist_iter *iter);
 gboolean omp_playlist_iter_finished(omp_playlist_iter *iter);
 





More information about the commitlog mailing list