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