From 386c303121a8c53f11cc91c59bbe87f93a503b31 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 7 Sep 2008 13:28:01 +0200 Subject: tag: moved code to tag_print.c Move everything which dumps a tag to a file descriptor to tag_print.c. This relaxes dependencies and splits the code into smaller parts. --- src/Makefile.am | 3 +++ src/command.c | 1 + src/song.c | 1 + src/tag.c | 27 ++------------------------- src/tag.h | 4 ---- src/tag_internal.h | 24 ++++++++++++++++++++++++ src/tag_print.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/tag_print.h | 28 ++++++++++++++++++++++++++++ 8 files changed, 105 insertions(+), 29 deletions(-) create mode 100644 src/tag_internal.h create mode 100644 src/tag_print.c create mode 100644 src/tag_print.h diff --git a/src/Makefile.am b/src/Makefile.am index d73030aa7..2c3905414 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -82,8 +82,10 @@ mpd_headers = \ state_file.h \ stats.h \ tag.h \ + tag_internal.h \ tag_pool.h \ tag_id3.h \ + tag_print.h \ tagTracker.h \ utf8.h \ utils.h \ @@ -147,6 +149,7 @@ mpd_SOURCES = \ tag.c \ tag_pool.c \ tag_id3.c \ + tag_print.c \ tagTracker.c \ utils.c \ volume.c \ diff --git a/src/command.c b/src/command.c index faa68e8d0..3e03c50b9 100644 --- a/src/command.c +++ b/src/command.c @@ -36,6 +36,7 @@ #include "dbUtils.h" #include "tag.h" #include "client.h" +#include "tag_print.h" #include "os_compat.h" #define COMMAND_PLAY "play" diff --git a/src/song.c b/src/song.c index 067ce440a..c6ef97b53 100644 --- a/src/song.c +++ b/src/song.c @@ -27,6 +27,7 @@ #include "decoder_list.h" #include "decoder_api.h" #include "myfprintf.h" +#include "tag_print.h" #define SONG_KEY "key: " #define SONG_MTIME "mtime: " diff --git a/src/tag.c b/src/tag.c index 6e31a1651..248951e9d 100644 --- a/src/tag.c +++ b/src/tag.c @@ -17,8 +17,8 @@ */ #include "tag.h" +#include "tag_internal.h" #include "tag_pool.h" -#include "myfprintf.h" #include "utils.h" #include "utf8.h" #include "log.h" @@ -53,7 +53,7 @@ const char *mpdTagItemKeys[TAG_NUM_OF_ITEM_TYPES] = { "Disc" }; -static mpd_sint8 ignoreTagItems[TAG_NUM_OF_ITEM_TYPES]; +mpd_sint8 ignoreTagItems[TAG_NUM_OF_ITEM_TYPES]; void tag_lib_init(void) { @@ -104,29 +104,6 @@ void tag_lib_init(void) free(temp); } -void tag_print_types(int fd) -{ - int i; - - for (i = 0; i < TAG_NUM_OF_ITEM_TYPES; i++) { - if (ignoreTagItems[i] == 0) - fdprintf(fd, "tagtype: %s\n", mpdTagItemKeys[i]); - } -} - -void tag_print(int fd, const struct tag *tag) -{ - int i; - - if (tag->time >= 0) - fdprintf(fd, SONG_TIME "%i\n", tag->time); - - for (i = 0; i < tag->numOfItems; i++) { - fdprintf(fd, "%s: %s\n", mpdTagItemKeys[tag->items[i]->type], - tag->items[i]->value); - } -} - struct tag *tag_ape_load(const char *file) { struct tag *ret = NULL; diff --git a/src/tag.h b/src/tag.h index 72d570ac4..a6cb4a781 100644 --- a/src/tag.h +++ b/src/tag.h @@ -84,10 +84,6 @@ static inline void tag_add_item(struct tag *tag, enum tag_type itemType, tag_add_item_n(tag, itemType, value, strlen(value)); } -void tag_print_types(int fd); - -void tag_print(int fd, const struct tag *tag); - struct tag *tag_dup(const struct tag *tag); int tag_equal(const struct tag *tag1, const struct tag *tag2); diff --git a/src/tag_internal.h b/src/tag_internal.h new file mode 100644 index 000000000..165a9d665 --- /dev/null +++ b/src/tag_internal.h @@ -0,0 +1,24 @@ +/* the Music Player Daemon (MPD) + * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) + * This project's homepage is: http://www.musicpd.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 TAG_INTERNAL_H +#define TAG_INTERNAL_H + +extern mpd_sint8 ignoreTagItems[TAG_NUM_OF_ITEM_TYPES]; + +#endif diff --git a/src/tag_print.c b/src/tag_print.c new file mode 100644 index 000000000..c5d50880f --- /dev/null +++ b/src/tag_print.c @@ -0,0 +1,46 @@ +/* the Music Player Daemon (MPD) + * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) + * This project's homepage is: http://www.musicpd.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 "tag_print.h" +#include "tag.h" +#include "tag_internal.h" +#include "myfprintf.h" +#include "song.h" + +void tag_print_types(int fd) +{ + int i; + + for (i = 0; i < TAG_NUM_OF_ITEM_TYPES; i++) { + if (ignoreTagItems[i] == 0) + fdprintf(fd, "tagtype: %s\n", mpdTagItemKeys[i]); + } +} + +void tag_print(int fd, const struct tag *tag) +{ + int i; + + if (tag->time >= 0) + fdprintf(fd, SONG_TIME "%i\n", tag->time); + + for (i = 0; i < tag->numOfItems; i++) { + fdprintf(fd, "%s: %s\n", mpdTagItemKeys[tag->items[i]->type], + tag->items[i]->value); + } +} diff --git a/src/tag_print.h b/src/tag_print.h new file mode 100644 index 000000000..aa2b2898f --- /dev/null +++ b/src/tag_print.h @@ -0,0 +1,28 @@ +/* the Music Player Daemon (MPD) + * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) + * This project's homepage is: http://www.musicpd.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 TAG_PRINT_H +#define TAG_PRINT_H + +struct tag; + +void tag_print_types(int fd); + +void tag_print(int fd, const struct tag *tag); + +#endif -- cgit v1.2.3