summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4364a0b)
raw | patch | inline | side by side (parent: 4364a0b)
author | Max Kellermann <max@duempel.org> | |
Fri, 19 Sep 2008 12:10:37 +0000 (14:10 +0200) | ||
committer | Max Kellermann <max@duempel.org> | |
Fri, 19 Sep 2008 12:10:37 +0000 (14:10 +0200) |
Move everything which is solely filelist related to filelist.c and
filelist.h. Fix the indentation of that file, and provide the struct
name "filelist". Don't clear data in mpdclient_filelist_free() before
calling g_free(). Constify the "song" parameter to
mpdclient_filelist_find_song().
filelist.h. Fix the indentation of that file, and provide the struct
name "filelist". Don't clear data in mpdclient_filelist_free() before
calling g_free(). Constify the "song" parameter to
mpdclient_filelist_find_song().
src/Makefile.am | patch | blob | history | |
src/filelist.c | [new file with mode: 0644] | patch | blob |
src/filelist.h | [new file with mode: 0644] | patch | blob |
src/mpdclient.c | patch | blob | history | |
src/mpdclient.h | patch | blob | history |
diff --git a/src/Makefile.am b/src/Makefile.am
index fc0160e65c54877c97e9f650e40b61a7cda9a71c..a16fef52171ece3f1d1a9609616819519d637563 100644 (file)
--- a/src/Makefile.am
+++ b/src/Makefile.am
song.h \
mpdclient.h\
playlist.h \
+ filelist.h \
options.h\
conf.h\
command.h\
main.c\
mpdclient.c\
playlist.c \
+ filelist.c \
options.c\
conf.c\
command.c\
diff --git a/src/filelist.c b/src/filelist.c
--- /dev/null
+++ b/src/filelist.c
@@ -0,0 +1,69 @@
+/*
+ * (c) 2004 by Kalle Wallin <kaw@linux.se>
+ * (c) 2008 Max Kellermann <max@duempel.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "filelist.h"
+#include "libmpdclient.h"
+
+#include <string.h>
+
+void
+mpdclient_filelist_free(struct filelist *filelist)
+{
+ GList *list = g_list_first(filelist->list);
+
+ if (list == NULL)
+ return;
+
+ while (list != NULL) {
+ filelist_entry_t *entry = list->data;
+
+ if (entry->entity)
+ mpd_freeInfoEntity(entry->entity);
+
+ g_free(entry);
+ list = list->next;
+ }
+
+ g_list_free(filelist->list);
+ g_free(filelist->path);
+ g_free(filelist);
+}
+
+struct filelist_entry *
+mpdclient_filelist_find_song(struct filelist *fl,
+ const struct mpd_song *song)
+{
+ GList *list = g_list_first(fl->list);
+
+ while (list && song) {
+ filelist_entry_t *entry = list->data;
+ mpd_InfoEntity *entity = entry->entity;
+
+ if (entity && entity->type == MPD_INFO_ENTITY_TYPE_SONG) {
+ struct mpd_song *song2 = entity->info.song;
+
+ if (strcmp(song->file, song2->file) == 0)
+ return entry;
+ }
+
+ list = list->next;
+ }
+
+ return NULL;
+}
diff --git a/src/filelist.h b/src/filelist.h
--- /dev/null
+++ b/src/filelist.h
@@ -0,0 +1,53 @@
+/*
+ * (c) 2004 by Kalle Wallin <kaw@linux.se>
+ * (c) 2008 Max Kellermann <max@duempel.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef FILELIST_H
+#define FILELIST_H
+
+#include <glib.h>
+
+struct mpd_song;
+
+typedef struct filelist_entry {
+ guint flags;
+ struct mpd_InfoEntity *entity;
+} filelist_entry_t;
+
+typedef struct filelist {
+ /* path */
+ gchar *path;
+
+ /* list length */
+ guint length;
+
+ /* true if the list is updated */
+ gboolean updated;
+
+ /* the list */
+ GList *list;
+} mpdclient_filelist_t;
+
+void
+mpdclient_filelist_free(struct filelist *filelist);
+
+struct filelist_entry *
+mpdclient_filelist_find_song(struct filelist *flist,
+ const struct mpd_song *song);
+
+#endif
diff --git a/src/mpdclient.c b/src/mpdclient.c
index a2e272119e8a13d62c172ced23d006f85a17bcc5..2f5591f609154b2c1446f7e852af1b9f6ec15f2c 100644 (file)
--- a/src/mpdclient.c
+++ b/src/mpdclient.c
/*** Filelist functions *****************************************************/
/****************************************************************************/
-void
-mpdclient_filelist_free(mpdclient_filelist_t *filelist)
-{
- GList *list = g_list_first(filelist->list);
-
- D("mpdclient_filelist_free()\n");
- if (list == NULL)
- return;
- while (list != NULL) {
- filelist_entry_t *entry = list->data;
-
- if (entry->entity)
- mpd_freeInfoEntity(entry->entity);
- g_free(entry);
- list=list->next;
- }
- g_list_free(filelist->list);
- g_free(filelist->path);
- filelist->path = NULL;
- filelist->list = NULL;
- filelist->length = 0;
- g_free(filelist);
-}
-
-
mpdclient_filelist_t *
mpdclient_filelist_get(mpdclient_t *c, const gchar *path)
{
return NULL;
}
-filelist_entry_t *
-mpdclient_filelist_find_song(mpdclient_filelist_t *fl, struct mpd_song *song)
-{
- GList *list = g_list_first(fl->list);
-
- while( list && song)
- {
- filelist_entry_t *entry = list->data;
- mpd_InfoEntity *entity = entry->entity;
-
- if( entity && entity->type==MPD_INFO_ENTITY_TYPE_SONG )
- {
- struct mpd_song *song2 = entity->info.song;
-
- if( strcmp(song->file, song2->file) == 0 )
- {
- return entry;
- }
- }
- list = list->next;
- }
- return NULL;
-}
-
int
mpdclient_filelist_add_all(mpdclient_t *c, mpdclient_filelist_t *fl)
{
diff --git a/src/mpdclient.h b/src/mpdclient.h
index 0698cbf452061511ae97699f827ff23b5e1f4823..c55e15453c5f8ae5e6668ae7f8267ec20fca39f5 100644 (file)
--- a/src/mpdclient.h
+++ b/src/mpdclient.h
#include "libmpdclient.h"
#include "playlist.h"
+#include "filelist.h"
#define MPD_VERSION_EQ(c,x,y,z) (c->connection->version[0] == x && \
c->connection->version[1] == y && \
(c->connection->version[0]==x && c->connection->version[1]==y && \
c->connection->version[2]<z) )
-typedef struct filelist_entry {
- guint flags;
- mpd_InfoEntity *entity;
-} filelist_entry_t;
-
-typedef struct mpdclient_filelist {
- /* path */
- gchar *path;
- /* list length */
- guint length;
- /* true if the list is updated */
- gboolean updated;
- /* the list */
- GList *list;
-
-} mpdclient_filelist_t;
-
typedef struct mpdclient {
/* playlist */
mpdclient_playlist_t playlist;
/*** filelist functions ***************************************************/
-void mpdclient_filelist_free(mpdclient_filelist_t *filelist);
+
mpdclient_filelist_t *mpdclient_filelist_get(mpdclient_t *c, const gchar *path);
mpdclient_filelist_t *mpdclient_filelist_search(mpdclient_t *c,
int exact_match,
mpdclient_filelist_t *mpdclient_filelist_update(mpdclient_t *c,
mpdclient_filelist_t *flist);
-#define HIGHLIGHT (0x01)
-void mpdclient_filelist_set_flags(mpdclient_filelist_t *flist,
- struct mpd_song *song,
- guint flags);
-
-void mpdclient_filelist_clear_flags(mpdclient_filelist_t *flist);
-void mpdclient_filelist_clear_flags(mpdclient_filelist_t *flist);
-filelist_entry_t *mpdclient_filelist_find_song(mpdclient_filelist_t *flist,
- struct mpd_song *song);
-
/* add all songs in filelist to the playlist */
int mpdclient_filelist_add_all(mpdclient_t *c, mpdclient_filelist_t *fl);