#ifndef MUSICLIBRARYPRIVATE_H
#define MUSICLIBRARYPRIVATE_H

#include "musiclibrary.h"

class ArtistPrivate;

class MusicLibraryPrivate
{
public:
    MusicLibraryPrivate(MusicLibrary *pubPtr);
    ~MusicLibraryPrivate();

    // Public API
    QList<Artist *> listArtists() const;
    QList<Record *> listRecords() const;
    QList<Song *> listSongs() const;

    // Private API
    void addArtist(ArtistPrivate *artist) { artists.append(artist); }
    void removeArtist(ArtistPrivate *artist) { artists.removeOne(artist); }
    void notifyChanged(MusicObjectPrivate *object);

private:
    MusicLibrary *pPtr;
    QList<ArtistPrivate *> artists;
};

#endif // MUSICLIBRARYPRIVATE_H
