~thomas-voss/media-hub/fix-seek-does-not-send-reply

« back to all changes in this revision

Viewing changes to include/com/ubuntu/music/track.h

  • Committer: thomas-voss
  • Date: 2013-10-07 11:07:11 UTC
  • Revision ID: thomas.voss@canonical.com-20131007110711-a6wc1pz09jatz1g0
More refactoring of local spike.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
#include "com/ubuntu/music/connection.h"
22
22
 
 
23
#include <chrono>
23
24
#include <functional>
24
25
#include <map>
25
26
#include <memory>
26
27
#include <string>
 
28
#include <vector>
27
29
 
28
30
namespace com
29
31
{
38
40
public:
39
41
    typedef std::string UriType;
40
42
 
41
 
    typedef std::map<std::string, std::string> MetaData;
 
43
    struct Id;
42
44
 
43
 
    Track(const Track&);
44
 
    ~Track();
 
45
    Track(const Id& id);
 
46
    Track(const Track&) = delete;
 
47
    virtual ~Track();
45
48
 
46
49
    Track& operator=(const Track&);
47
50
    bool operator==(const Track&) const;
48
51
 
49
 
    const UriType& uri() const;
50
 
 
51
 
    const Property<MetaData>& meta_data() const;
52
 
    
53
 
  private:
54
 
    friend class Player;
55
 
    friend class TrackList;
56
 
 
57
 
    explicit Track(const UriType& uri, const MetaData& meta_data);
58
 
 
 
52
    virtual const Id& id() const;
 
53
 
 
54
    typedef std::map<std::string, std::string> MetaData;
 
55
    /*
 
56
    class MetaData
 
57
    {
 
58
    public:
 
59
        MetaData() = default;
 
60
        MetaData(const MetaData&) = default;
 
61
        ~MetaData() = default;
 
62
 
 
63
        MetaData& operator=(const MetaData&) = default;
 
64
 
 
65
        bool operator==(const MetaData&) const
 
66
        {
 
67
            return true;
 
68
        }
 
69
 
 
70
        bool operator!=(const MetaData&) const
 
71
        {
 
72
            return false;
 
73
        }
 
74
 
 
75
        struct NotImplementedFields
 
76
        {
 
77
            NotImplementedFields() = default;
 
78
 
 
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;
 
97
        };
 
98
    };
 
99
*/
 
100
private:
59
101
    struct Private;
60
102
    std::unique_ptr<Private> d;
61
103
};