Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MUSICBRAINZ3_RELEASE_H__
00024 #define __MUSICBRAINZ3_RELEASE_H__
00025
00026 #include <string>
00027 #include <musicbrainz3/musicbrainz.h>
00028 #include <musicbrainz3/entity.h>
00029 #include <musicbrainz3/lists.h>
00030
00031 namespace MusicBrainz
00032 {
00033
00034 class Artist;
00035
00047 class MB_API Release : public Entity
00048 {
00049 public:
00050
00051 static const std::string TYPE_NONE;
00052
00053 static const std::string TYPE_ALBUM;
00054 static const std::string TYPE_SINGLE;
00055 static const std::string TYPE_EP;
00056 static const std::string TYPE_COMPILATION;
00057 static const std::string TYPE_SOUNDTRACK;
00058 static const std::string TYPE_SPOKENWORD;
00059 static const std::string TYPE_INTERVIEW;
00060 static const std::string TYPE_AUDIOBOOK;
00061 static const std::string TYPE_LIVE;
00062 static const std::string TYPE_REMIX;
00063 static const std::string TYPE_OTHER;
00064
00065 static const std::string TYPE_OFFICIAL;
00066 static const std::string TYPE_PROMOTION;
00067 static const std::string TYPE_BOOTLEG;
00068 static const std::string TYPE_PSEUDO_RELEASE;
00069
00076 Release(const std::string &id = std::string(),
00077 const std::string &title = std::string());
00078
00082 ~Release();
00083
00095 std::string getTitle() const;
00096
00104 void setTitle(const std::string &title);
00105
00120 std::string getTextLanguage() const;
00121
00129 void setTextLanguage(const std::string &language);
00130
00144 std::string getTextScript() const;
00145
00153 void setTextScript(const std::string &script);
00154
00160 Artist *getArtist();
00161
00167 void setArtist(Artist *artist);
00168
00174 ReleaseGroup *getReleaseGroup();
00175
00181 void setReleaseGroup(ReleaseGroup *releaseGroup);
00182
00191 std::string getAsin() const;
00192
00200 void setAsin(const std::string &asin);
00201
00209 TrackList &getTracks();
00210
00220 int getNumTracks() const;
00221
00233 Track *getTrack(int index);
00234
00247 int getTracksOffset() const;
00248
00256 void setTracksOffset(const int offset);
00257
00269 int getTracksCount() const;
00270
00278 void setTracksCount(const int count);
00279
00291 DiscList &getDiscs();
00292
00302 int getNumDiscs() const;
00303
00315 Disc *getDisc(int index);
00316
00326 ReleaseEventList &getReleaseEvents();
00327
00337 int getNumReleaseEvents() const;
00338
00350 ReleaseEvent *getReleaseEvent(int index);
00351
00357 void setTypes(const std::vector<std::string> &types);
00358
00366 std::vector<std::string> &getTypes();
00367
00373 int getNumTypes() const;
00374
00387 std::string getType(int index) const;
00388
00389 private:
00390
00391 class ReleasePrivate;
00392 ReleasePrivate *d;
00393 };
00394
00395 }
00396
00397 #endif
00398