libmusicbrainz3  3.0.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
releasegroup.h
Go to the documentation of this file.
1 /*
2  * MusicBrainz -- The Internet music metadatabase
3  *
4  * Copyright (C) 2006 Lukas Lalinsky
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  *
21  */
22 
23 #ifndef __MUSICBRAINZ3_RELEASEGROUP_H__
24 #define __MUSICBRAINZ3_RELEASEGROUP_H__
25 
26 #include <string>
28 #include <musicbrainz3/entity.h>
29 #include <musicbrainz3/lists.h>
30 
31 namespace MusicBrainz
32 {
33 
34  class Artist;
35 
40  class MB_API ReleaseGroup : public Entity
41  {
42  public:
43 
44  static const std::string TYPE_NONE;
45 
46  static const std::string TYPE_ALBUM;
47  static const std::string TYPE_SINGLE;
48  static const std::string TYPE_EP;
49  static const std::string TYPE_COMPILATION;
50  static const std::string TYPE_SOUNDTRACK;
51  static const std::string TYPE_SPOKENWORD;
52  static const std::string TYPE_INTERVIEW;
53  static const std::string TYPE_AUDIOBOOK;
54  static const std::string TYPE_LIVE;
55  static const std::string TYPE_REMIX;
56  static const std::string TYPE_OTHER;
57 
64  ReleaseGroup(const std::string &id = std::string(),
65  const std::string &title = std::string());
66 
70  ~ReleaseGroup();
71 
83  std::string getTitle() const;
84 
92  void setTitle(const std::string &title);
93 
99  Artist *getArtist();
100 
106  void setArtist(Artist *artist);
107 
113  void setType(const std::string &type);
114 
122  std::string getType() const;
123 
124  ReleaseList &getReleases();
125  int getNumReleases() const;
126  Release *getRelease(int index);
127 
128  private:
129 
130  class ReleaseGroupPrivate;
131  ReleaseGroupPrivate *d;
132  };
133 
134 }
135 
136 #endif
137 
Represents an artist.
Definition: artist.h:46
static const std::string TYPE_EP
Definition: releasegroup.h:48
static const std::string TYPE_OTHER
Definition: releasegroup.h:56
A first-level MusicBrainz class.
Definition: entity.h:56
static const std::string TYPE_REMIX
Definition: releasegroup.h:55
static const std::string TYPE_NONE
Definition: releasegroup.h:44
static const std::string TYPE_ALBUM
Definition: releasegroup.h:46
std::vector< Release * > ReleaseList
A vector of pointers to Release objects.
Definition: lists.h:61
static const std::string TYPE_AUDIOBOOK
Definition: releasegroup.h:53
Represents a Release Group.
Definition: releasegroup.h:40
static const std::string TYPE_SINGLE
Definition: releasegroup.h:47
static const std::string TYPE_SOUNDTRACK
Definition: releasegroup.h:50
static const std::string TYPE_COMPILATION
Definition: releasegroup.h:49
static const std::string TYPE_SPOKENWORD
Definition: releasegroup.h:51
static const std::string TYPE_INTERVIEW
Definition: releasegroup.h:52
#define MB_API
Definition: defines.h:40
Represents a Release.
Definition: release.h:47
static const std::string TYPE_LIVE
Definition: releasegroup.h:54