/usr/include/musicbrainz3/track.h is in libmusicbrainz3-dev 3.0.2-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | /*
* MusicBrainz -- The Internet music metadatabase
*
* Copyright (C) 2006 Lukas Lalinsky
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* $Id: track.h 8794 2007-01-18 23:37:36Z luks $
*/
#ifndef __MUSICBRAINZ3_TRACK_H__
#define __MUSICBRAINZ3_TRACK_H__
#include <string>
#include <musicbrainz3/musicbrainz.h>
#include <musicbrainz3/entity.h>
namespace MusicBrainz
{
class Artist;
/**
* Represents a track.
*
* This class represents a track which may appear on one or more releases.
* A track may be associated with exactly one artist (the I{main} artist).
*
* Using getReleases, you can find out on which releases this track
* appears. To get the track number, too, use the
* Release::getTracksOffset method.
*
* @note Currently, the MusicBrainz server doesn't support tracks to
* be on more than one release.
*
* @see Release, Artist
*/
class MB_API Track : public Entity
{
public:
/**
* Constructor.
*
* @param id a string containing an absolute URI
* @param title a string containing the title
*/
Track(const std::string &id = std::string(),
const std::string &title = std::string());
/**
* Destructor.
*/
virtual ~Track();
/**
* Returns the track's title.
*
* The style and format of this attribute is specified by the
* style guide.
*
* @return a string containing an absolute URI
*
* @see <a href="http://musicbrainz.org/style.html">The MusicBrainz
* Style Guidelines</a>
*/
std::string getTitle() const;
/**
* Sets the track's title.
*
* @param title: a string containing the title
*
* @see: getTitle
*/
void setTitle(const std::string &title);
/**
* Returns the main artist of this track.
*
* @return: a pointer to Artist object, or NULL
*/
Artist *getArtist();
/**
* Sets this track's main artist.
*
* @param artist a pointer to Artist object, or NULL
*/
void setArtist(Artist *artist);
/**
* Returns the duration of this track in milliseconds.
*
* @return an int containing the duration in milliseconds
*/
int getDuration() const;
/**
* Sets the duration of this track in milliseconds.
*
* @param duration an int containing the duration in milliseconds
*/
void setDuration(const int duration);
/**
* Returns a list of releases from this artist.
*
* This may also include releases where this artist isn't the
* \e main artist but has just contributed one or more tracks
* (aka VA-Releases).
*
* @return: a list of pointers to Release objects
*/
ReleaseList &getReleases();
/**
* Returns number of releases.
*
* This is equivalent to \c getReleases().size()
*
* @return an int containing number of releases
*
* @see getReleases
*/
int getNumReleases() const;
/**
* Returns an release specified by index.
*
* This is equivalent to \c getReleases()[index]
*
* @return a pointer to Release instance
*
* @see getReleases
*/
Release *getRelease(int index);
/**
* Adds a release to this artist's list of releases.
*
* @param release a pointer to Release object
*/
void addRelease(Release *release);
/**
* Returns the offset of the release list.
*
* This is used if the track list is incomplete (ie. the web
* service only returned part of the tracks on this release).
* Note that the offset value is zero-based, which means track
* \a 0 is the first track.
*
* @return an integer containing the offset
*
* @see getReleases
*/
int getReleasesOffset() const;
/**
* Sets the offset of the release list.
*
* @param offset an integer containing the offset
*
* @see getReleasesOffset
*/
void setReleasesOffset(const int offset);
/**
* Returns the number of existing releases.
*
* This may or may not match with the number of elements that
* getReleases and getNumReleases returns. If the count is higher than
* the list, it indicates that the list is incomplete.
*
* @return an integer containing the count
*
* @see getReleases
*/
int getReleasesCount() const;
/**
* Sets the count of the release list.
*
* @param count an integer containing the count
*
* @see getReleasesCount
*/
void setReleasesCount(const int count);
private:
class TrackPrivate;
TrackPrivate *d;
};
}
#endif
|