1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
// SPDX-License-Identifier: BSD-3-Clause
// Copyright The Music Player Daemon Project
#ifndef LIBMPDCLIENT_TAG_H
#define LIBMPDCLIENT_TAG_H
/**
* @since libmpdclient 2.10 added support for #MPD_TAG_MUSICBRAINZ_RELEASETRACKID.
* @since libmpdclient 2.11 added support for #MPD_TAG_ARTIST_SORT,
* #MPD_TAG_ALBUM_ARTIST_SORT.
* @since libmpdclient 2.17 added support for #MPD_TAG_LABEL,
* #MPD_TAG_MUSICBRAINZ_WORKID,
* #MPD_TAG_GROUPING,
* #MPD_TAG_WORK,
* #MPD_TAG_CONDUCTOR.
* @since libmpdclient 2.20 added support for #MPD_TAG_COMPOSER_SORT,
* #MPD_TAG_ENSEMBLE,
* #MPD_TAG_MOVEMENT,
* #MPD_TAG_MOVEMENTNUMBER,
* #MPD_TAG_LOCATION.
* @since libmpdclient 2.21 added support for #MPD_TAG_MOOD,
* #MPD_TAG_TITLE_SORT.
*/
enum mpd_tag_type
{
/**
* Special value returned by mpd_tag_name_parse() when an
* unknown name was passed.
*/
MPD_TAG_UNKNOWN = -1,
MPD_TAG_ARTIST,
MPD_TAG_ALBUM,
MPD_TAG_ALBUM_ARTIST,
MPD_TAG_TITLE,
MPD_TAG_TRACK,
MPD_TAG_NAME,
MPD_TAG_GENRE,
MPD_TAG_DATE,
MPD_TAG_COMPOSER,
MPD_TAG_PERFORMER,
MPD_TAG_COMMENT,
MPD_TAG_DISC,
MPD_TAG_MUSICBRAINZ_ARTISTID,
MPD_TAG_MUSICBRAINZ_ALBUMID,
MPD_TAG_MUSICBRAINZ_ALBUMARTISTID,
MPD_TAG_MUSICBRAINZ_TRACKID,
MPD_TAG_MUSICBRAINZ_RELEASETRACKID,
MPD_TAG_ORIGINAL_DATE,
MPD_TAG_ARTIST_SORT,
MPD_TAG_ALBUM_ARTIST_SORT,
MPD_TAG_ALBUM_SORT,
MPD_TAG_LABEL,
MPD_TAG_MUSICBRAINZ_WORKID,
MPD_TAG_GROUPING,
MPD_TAG_WORK,
MPD_TAG_CONDUCTOR,
MPD_TAG_COMPOSER_SORT,
MPD_TAG_ENSEMBLE,
MPD_TAG_MOVEMENT,
MPD_TAG_MOVEMENTNUMBER,
MPD_TAG_LOCATION,
MPD_TAG_MOOD,
MPD_TAG_TITLE_SORT,
MPD_TAG_MUSICBRAINZ_RELEASEGROUPID,
/* IMPORTANT: the ordering of tag types above must be
retained, or else the libmpdclient ABI breaks */
MPD_TAG_COUNT
};
#ifdef __cplusplus
extern "C" {
#endif
/**
* Looks up the name of the specified tag.
*
* @return the name, or NULL if the tag type is not valid
*/
const char *
mpd_tag_name(enum mpd_tag_type type);
/**
* Parses a tag name, and returns its #mpd_tag_type value.
*
* @return a #mpd_tag_type value, or MPD_TAG_UNKNOWN if the name was
* not recognized
*/
enum mpd_tag_type
mpd_tag_name_parse(const char *name);
/**
* Same as mpd_tag_name_parse(), but ignores case.
*
* @return a #mpd_tag_type value, or MPD_TAG_UNKNOWN if the name was
* not recognized
*/
enum mpd_tag_type
mpd_tag_name_iparse(const char *name);
#ifdef __cplusplus
}
#endif
#endif
|