Code Search for Developers
 
 
  

MusicLink.h from marsyas at Krugle


Show MusicLink.h syntax highlighted

#ifndef MUSICLINK_H
#define MUSICLINK_H

#include <QSet>
#include <QSetIterator>
#include <QMap>
#include <QMapIterator>
#include <QString>
#include "MusicTrack.h"

class MusicLink;
class MusicArtist;
class MusicPlaylist;

typedef MusicLink MusicAlbum;
typedef QMap<QString, MusicAlbum*>  MusicAlbumMap;
typedef QMapIterator<QString, MusicAlbum*>  MusicAlbumIterator; 

typedef MusicLink MusicGenre;
typedef QSet<MusicGenre*>  MusicGenreSet; 
typedef QMap<QString, MusicGenre*> MusicGenreMap;
typedef QMapIterator<QString, MusicGenre*> MusicGenreIterator;

typedef QSet<MusicArtist*>  MusicArtistSet; 
typedef QMap<QString, MusicArtist*> MusicArtistMap;
typedef QMapIterator<QString, MusicArtist*> MusicArtistIterator;

typedef QMap<QString, MusicPlaylist*>  MusicPlaylistMap;
typedef QMapIterator<QString, MusicPlaylist*>  MusicPlaylistIterator; 

class MusicLink
{
public:
	MusicLink(QString name);
	virtual ~MusicLink();

	QString getName() const { return _name; }
	MusicTrackIterator getTracks() const;

	void linkTrack(MusicTrack *track);

private:
	QString _name;
	MusicTrackVector *_tracks;
};

class MusicArtist : public MusicLink
{
public:
	MusicArtist(QString name);
	~MusicArtist();

	void linkAlbum(MusicTrack *track);
	MusicAlbumIterator getAlbums() const;

private:
	MusicAlbumMap *_albums;
};

class MusicPlaylist : public MusicLink
{
public:
	MusicPlaylist(QString name);
	~MusicPlaylist() {}

	void setPersistentId(QString persistentId);
	void setPlaylistId(int id);

	QString getPersistentId() const { return _persistentId; }
	int getPlaylistId() const { return _playlistId; }

private:
	QString _persistentId;
	int _playlistId;
};

#endif /* MUSICLINK_H */




See more files for this project here

marsyas

Marsyas (Music Analysis, Retrieval and Synthesis for Audio Signals) is a framework for developing systems for audio processing. It provides an general architecture for connecting audio, soundfiles, signal processing blocks and machine learning.

Project homepage: http://sourceforge.net/projects/marsyas
Programming language(s): C++
License: other

  MusicCollection.cpp
  MusicCollection.h
  MusicLink.cpp
  MusicLink.h
  MusicTrack.cpp
  MusicTrack.h