X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/dd7c0aa4412c01533baff5d0baf47058975a18cb..371447724a1e150c37a777e58a4725a3d2561c01:/lib/service/servicemp3.cpp diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 730c4e7b..0308a56d 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -344,6 +344,65 @@ RESULT eServiceMP3::getName(std::string &name) return 0; } +int eServiceMP3::getInfo(int w) +{ + switch (w) + { + case sTitle: + case sArtist: + case sAlbum: + case sComment: + case sTracknumber: + case sGenre: + return resIsString; + default: + return resNA; + } +} + +std::string eServiceMP3::getInfoString(int w) +{ + gchar *tag = 0; + switch (w) + { + case sTitle: + tag = GST_TAG_TITLE; + break; + case sArtist: + tag = GST_TAG_ARTIST; + break; + case sAlbum: + tag = GST_TAG_ALBUM; + break; + case sComment: + tag = GST_TAG_COMMENT; + break; + case sTracknumber: + tag = GST_TAG_TRACK_NUMBER; + break; + case sGenre: + tag = GST_TAG_GENRE; + break; + default: + return ""; + } + + if (!m_stream_tags || !tag) + return ""; + + gchar *value; + + if (gst_tag_list_get_string(m_stream_tags, tag, &value)) + { + std::string res = value; + g_free(value); + return res; + } + + return ""; +} + + void foreach(const GstTagList *list, const gchar *tag, gpointer user_data) { if (tag)