rpms/gmpc/F-7 gmpc-fix-album-play-order.diff, NONE, 1.1 gmpc.spec, 1.10, 1.11
Adrian Reber (adrian)
fedora-extras-commits at redhat.com
Thu Jun 21 14:02:37 UTC 2007
- Previous message (by thread): rpms/fail2ban/FC-6 fail2ban-0.8-sshd-filter.diff, 1.1, 1.2 fail2ban.spec, 1.6, 1.7
- Next message (by thread): rpms/Inventor/devel .cvsignore, 1.5, 1.6 Inventor.spec, 1.38, 1.39 sources, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: adrian
Update of /cvs/extras/rpms/gmpc/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26145
Modified Files:
gmpc.spec
Added Files:
gmpc-fix-album-play-order.diff
Log Message:
* Wed Jun 20 2007 Adrian Reber <adrian at lisas.de> - 0.14.0-2
- applied patch to fix album play order from David Woodhouse
gmpc-fix-album-play-order.diff:
--- NEW FILE gmpc-fix-album-play-order.diff ---
--- gmpc-0.14.0/src/playlist3-artist-browser.c~ 2007-06-13 09:40:34.000000000 +0100
+++ gmpc-0.14.0/src/playlist3-artist-browser.c 2007-06-13 11:13:16.000000000 +0100
@@ -32,6 +32,7 @@
#include "playlist3-artist-browser.h"
#include "config1.h"
#include "TreeSearchWidget.h"
+#include <libmpd/libmpd-internal.h>
static void pl3_artist_browser_add(GtkWidget *cat_tree);
static void pl3_artist_browser_fill_tree(GtkWidget *, GtkTreeIter *);
@@ -50,6 +51,7 @@ static int pl3_artist_browser_playlist_k
static void pl3_artist_browser_connection_changed(MpdObj *mi, int connect, gpointer data);
static int pl3_artist_browser_key_press_event(GtkWidget *mw, GdkEventKey *event, int type);
static void pl3_artist_browser_status_changed(MpdObj *mi,ChangedStatusType what, void *data);
+static MpdData *pl3_artist_browser_sort_tracks(MpdData *);
static void pl3_artist_browser_reupdate(void);
@@ -270,7 +272,60 @@ static void pl3_artist_browser_cover_art
}
+static MpdData *pl3_artist_browser_sort_tracks(MpdData *data)
+{
+ MpdData_real *new_list = NULL;
+
+ /* This should always be the case anyway, but just to make sure... */
+ data = mpd_data_get_first(data);
+
+ while (data) {
+ /* Insert new element 'data' into list 'new_list' */
+ MpdData_real **pos;
+ MpdData_real *data_real = (MpdData_real *)data;
+
+ data = mpd_data_get_next_real(data, FALSE);
+
+ data_real->next = NULL;
+
+ for (pos = &new_list; *pos; pos = &(*pos)->next) {
+ /* Sort on two keys. First album... */
+ int cmp = strcmp((*pos)->song->album?:"",
+ data_real->song->album?:"");
+
+ if (cmp > 0)
+ break;
+ if (cmp < 0)
+ continue;
+ cmp = strcmp((*pos)->song->disc?:"",
+ data_real->song->disc?:"");
+ if (cmp > 0)
+ break;
+ if (cmp < 0)
+ continue;
+
+ /* ... then track number */
+ if (atoi((*pos)->song->track?:"") >
+ atoi(data_real->song->track?:""))
+ break;
+ }
+ data_real->next = *pos;
+ *pos = data_real;
+ }
+ data = (MpdData *)new_list;
+
+ if (new_list) {
+ new_list->head->first = new_list;
+
+ new_list->prev = NULL;
+ while (new_list->next) {
+ new_list->next->prev = new_list;
+ new_list = new_list->next;
+ }
+ }
+ return data;
+}
static long unsigned pl3_artist_browser_view_folder(GtkTreeIter *iter_cat)
{
@@ -392,6 +447,7 @@ static long unsigned pl3_artist_browser_
data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
/* artist is selected */
while(data != NULL)
{
@@ -456,6 +512,7 @@ static long unsigned pl3_artist_browser_
if(pb) g_object_unref(pb);
/* artist and album is selected */
data = mpd_database_find(connection,MPD_TABLE_ALBUM, string, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
while (data != NULL)
{
if(data->type == MPD_DATA_TYPE_SONG)
@@ -594,6 +651,7 @@ static void pl3_artist_browser_add_folde
/* artist selected */
gchar *message = g_strdup_printf("Added songs from artist '%s'",artist);
MpdData * data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
while (data != NULL)
{
if(data->type == MPD_DATA_TYPE_SONG)
@@ -612,6 +670,7 @@ static void pl3_artist_browser_add_folde
/* fetch all songs by this album and check if the artist is right. from mpd and add them to the add-list */
gchar *message = g_strdup_printf("Added songs from album '%s' ",title);
MpdData *data = mpd_database_find(connection, MPD_TABLE_ALBUM, title, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
while (data != NULL)
{
if(data->type == MPD_DATA_TYPE_SONG)
@@ -896,6 +955,7 @@ static void pl3_artist_browser_add_selec
else if (type&PL3_ENTRY_ARTIST)
{
MpdData * data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
while (data != NULL)
{
if(data->type == MPD_DATA_TYPE_SONG)
@@ -910,6 +970,7 @@ static void pl3_artist_browser_add_selec
{
MpdData *data = NULL;
data = mpd_database_find(connection, MPD_TABLE_ALBUM, album, TRUE);
+ data = pl3_artist_browser_sort_tracks(data);
while (data != NULL)
{
if(data->type == MPD_DATA_TYPE_SONG)
Index: gmpc.spec
===================================================================
RCS file: /cvs/extras/rpms/gmpc/F-7/gmpc.spec,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- gmpc.spec 25 Mar 2007 16:42:33 -0000 1.10
+++ gmpc.spec 21 Jun 2007 14:01:54 -0000 1.11
@@ -1,7 +1,7 @@
Name: gmpc
Summary: GNOME frontend for the MPD
Version: 0.14.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPL
Group: Applications/Multimedia
@@ -19,6 +19,7 @@
Source9: gmpc-coveramazon-0.14.0.tar.gz
Source10: gmpc-autoplaylist-0.14.0.tar.gz
Patch0: gmpc-lib-plugins.diff
+Patch1: gmpc-fix-album-play-order.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: scrollkeeper, gtk2-devel, libglade2-devel
@@ -51,6 +52,7 @@
# this patch adds %{_libdir}/gmpc/plugins to the plugins search path
%patch0
sed -i -e 's,@@PLUGINS_PATH@@,"%{_libdir}/%{name}",g' src/main.c
+%patch1 -p1
%build
@@ -115,6 +117,9 @@
%{_libdir}/pkgconfig/*.pc
%changelog
+* Wed Jun 20 2007 Adrian Reber <adrian at lisas.de> - 0.14.0-2
+- applied patch to fix album play order from David Woodhouse
+
* Sun Mar 25 2007 Adrian Reber <adrian at lisas.de> - 0.14.0-1
- updated to 0.14.0
- added more plugins
- Previous message (by thread): rpms/fail2ban/FC-6 fail2ban-0.8-sshd-filter.diff, 1.1, 1.2 fail2ban.spec, 1.6, 1.7
- Next message (by thread): rpms/Inventor/devel .cvsignore, 1.5, 1.6 Inventor.spec, 1.38, 1.39 sources, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list