aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Alexander Treuman <jat@spatialrift.net>2007-03-31 18:43:16 +0000
committerJ. Alexander Treuman <jat@spatialrift.net>2007-03-31 18:43:16 +0000
commite3e4964f59ab9201a8ee686f898dc68df3fe416d (patch)
tree48627dd6b666873efafd305c87041876184bf4e8
parent2215c1796d68f680fa92631eeb745a4af8ca5fde (diff)
downloadmpd-e3e4964f59ab9201a8ee686f898dc68df3fe416d.tar.gz
mpd-e3e4964f59ab9201a8ee686f898dc68df3fe416d.tar.xz
mpd-e3e4964f59ab9201a8ee686f898dc68df3fe416d.zip
Adding tagtypes command to list available tag types (takes metadata_to_use
into account). git-svn-id: https://svn.musicpd.org/mpd/trunk@5792 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/command.c8
-rw-r--r--src/tag.c10
-rw-r--r--src/tag.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/command.c b/src/command.c
index dc427629f..3ae17f334 100644
--- a/src/command.c
+++ b/src/command.c
@@ -95,6 +95,7 @@
#define COMMAND_PLAYLISTADD "playlistadd"
#define COMMAND_PLAYLISTFIND "playlistfind"
#define COMMAND_PLAYLISTSEARCH "playlistsearch"
+#define COMMAND_TAGTYPES "tagtypes"
#define COMMAND_STATUS_VOLUME "volume"
#define COMMAND_STATUS_STATE "state"
@@ -177,6 +178,12 @@ static int handleUrlHandlers(int fd, int *permission, int argc, char *argv[])
return printRemoteUrlHandlers(fd);
}
+static int handleTagTypes(int fd, int *permission, int argc, char *argv[])
+{
+ printTagTypes(fd);
+ return 0;
+}
+
static int handlePlay(int fd, int *permission, int argc, char *argv[])
{
int song = -1;
@@ -1043,6 +1050,7 @@ void initCommands(void)
addCommand(COMMAND_PLAYLISTADD, PERMISSION_CONTROL, 2, 2, handlePlaylistAdd, NULL);
addCommand(COMMAND_PLAYLISTFIND, PERMISSION_READ, 2, -1, handlePlaylistFind, NULL);
addCommand(COMMAND_PLAYLISTSEARCH, PERMISSION_READ, 2, -1, handlePlaylistSearch, NULL);
+ addCommand(COMMAND_TAGTYPES, PERMISSION_READ, 0, 0, handleTagTypes, NULL);
sortList(commandList);
}
diff --git a/src/tag.c b/src/tag.c
index 36edef793..8279eb06b 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -116,6 +116,16 @@ void initTagConfig(void)
free(temp);
}
+void printTagTypes(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 printMpdTag(int fd, MpdTag * tag)
{
int i;
diff --git a/src/tag.h b/src/tag.h
index 21cba12a5..492ca32c7 100644
--- a/src/tag.h
+++ b/src/tag.h
@@ -78,6 +78,8 @@ void addItemToMpdTagWithLen(MpdTag * tag, int itemType, char *value, int len);
#define addItemToMpdTag(tag, itemType, value) \
addItemToMpdTagWithLen(tag, itemType, value, strlen(value))
+void printTagTypes(int fd);
+
void printMpdTag(int fd, MpdTag * tag);
MpdTag *mpdTagDup(MpdTag * tag);