2
* Copyright © 2014 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Thomas Voß <thomas.voss@canonical.com>
27
#define DATUM(Type, Name, VType) \
30
static constexpr const char* name{#Name};\
31
typedef VType ValueType;\
36
DATUM(Album, xesam:album, std::string)
37
DATUM(AlbumArtist, xesam:albumArtist, std::vector<std::string>)
38
DATUM(Artist, xesam:artist, std::vector<std::string>)
39
DATUM(AsText, xesam:asText, std::string)
40
DATUM(AudioBpm, xesam:audioBpm, std::int32_t)
41
DATUM(AutoRating, xesam:autoRating, double)
42
DATUM(Comment, xesam:comment, std::vector<std::string>)
43
DATUM(Composer, xesam:composer, std::vector<std::string>)
44
DATUM(ContentCreated, xesam:comment, std::string)
45
DATUM(DiscNumber, xesam:discNumber, std::int32_t)
46
DATUM(FirstUsed, xesam:firstUsed, std::string)
47
DATUM(Genre, xesam:genre, std::vector<std::string>)
48
DATUM(LastUsed, xesam:lastUsed, std::string)
49
DATUM(Lyricist, xesam:lyricist, std::vector<std::string>)
50
DATUM(Title, xesam:title, std::string)
51
DATUM(TrackNumber, xesam:trackNumber, std::int32_t)
52
DATUM(Url, xesam:url, std::string)
53
DATUM(UserRating, xesam:userRating, double)