39
41
typedef std::string UriType;
41
typedef std::map<std::string, std::string> MetaData;
46
Track(const Track&) = delete;
46
49
Track& operator=(const Track&);
47
50
bool operator==(const Track&) const;
49
const UriType& uri() const;
51
const Property<MetaData>& meta_data() const;
55
friend class TrackList;
57
explicit Track(const UriType& uri, const MetaData& meta_data);
52
virtual const Id& id() const;
54
typedef std::map<std::string, std::string> MetaData;
60
MetaData(const MetaData&) = default;
61
~MetaData() = default;
63
MetaData& operator=(const MetaData&) = default;
65
bool operator==(const MetaData&) const
70
bool operator!=(const MetaData&) const
75
struct NotImplementedFields
77
NotImplementedFields() = default;
79
virtual const UriType& uri() const = 0;
80
virtual const std::chrono::microseconds length() const = 0;
81
virtual const UriType& art_uri() const = 0;
82
virtual const std::string& album() const = 0;
83
virtual const std::vector<std::string>& album_artist() const = 0;
84
virtual const std::vector<std::string>& artist() const = 0;
85
virtual const std::string& as_text() const = 0;
86
virtual unsigned int audio_bpm() const = 0;
87
virtual float auto_rating() const = 0;
88
virtual const std::vector<std::string>& comment() const = 0;
89
virtual const std::vector<std::string>& composer() const = 0;
90
virtual unsigned int disc_number() const = 0;
91
virtual const std::vector<std::string>& genre() const = 0;
92
virtual const std::vector<std::string>& lyricist() const = 0;
93
virtual const std::string title() const = 0;
94
virtual unsigned int track_number() const = 0;
95
virtual unsigned int use_count() const = 0;
96
virtual float user_rating() const = 0;
60
102
std::unique_ptr<Private> d;