diff options
Diffstat (limited to 'src/tag.h')
-rw-r--r-- | src/tag.h | 35 |
1 files changed, 30 insertions, 5 deletions
@@ -21,6 +21,8 @@ #include "../config.h" +#include "mpd_types.h" + #include <stdio.h> #ifdef HAVE_ID3TAG #ifdef USE_MPD_ID3TAG @@ -30,13 +32,27 @@ #endif #endif +#define TAG_ITEM_END -1 +#define TAG_ITEM_ARTIST 0 +#define TAG_ITEM_ALBUM 1 +#define TAG_ITEM_TITLE 2 +#define TAG_ITEM_TRACK 3 +#define TAG_ITEM_NAME 4 +#define TAG_ITEM_GENRE 5 +#define TAG_ITEM_DATE 6 + +#define TAG_NUM_OF_ITEM_TYPES 7 + +extern char * mpdTagItemKeys[]; + +typedef struct _MpdTagItem { + mpd_sint8 type; + char * value; +} MpdTagItem; + typedef struct _MpdTag { - char * artist; - char * album; - char * track; - char * title; - char * name; int time; + MpdTagItem * tagItems; } MpdTag; #ifdef HAVE_ID3TAG @@ -47,10 +63,16 @@ MpdTag * id3Dup(char * file); MpdTag * newMpdTag(); +void clearItemsFromMpdTag(MpdTag * tag, int itemType); + void clearMpdTag(MpdTag * tag); void freeMpdTag(MpdTag * tag); +void addItemToMpdTag(MpdTag * tag, int itemType, char * value); + +void addItemToMpdTagWithLen(MpdTag * tag, int itemType, char * value, int len); + void printMpdTag(FILE * fp, MpdTag * tag); MpdTag * mpdTagDup(MpdTag * tag); @@ -59,4 +81,7 @@ void validateUtf8Tag(MpdTag * tag); int mpdTagsAreEqual(MpdTag * tag1, MpdTag * tag2); +/* *last shoudl be initialzed to -1 before calling this function */ +char * getNextItemFromMpdTag(MpdTag * tag, int itemType, int * last); + #endif |