• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

release.h

Go to the documentation of this file.
00001 /*
00002  * MusicBrainz -- The Internet music metadatabase
00003  *
00004  * Copyright (C) 2006 Lukas Lalinsky
00005  *  
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  * 
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
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 

Generated on Mon Oct 18 2010 for libmusicbrainz3 by  doxygen 1.7.1