#include "record.h"
#include "songprivate.h"
#include "recordprivate.h"
#include "mldebug.h"

Song::Song(Record *parent) : MusicObject(parent)
{
    LogAlloc();
    pPtr = new SongPrivate(this, static_cast<RecordPrivate *>(parent->privatePtr()));
}

Song::~Song()
{
    delete pPtr;
    LogDelete();
}

Record *Song::record()
{
    return static_cast<Record *>(parent());
}

void Song::setNumber(int number)
{
    static_cast<SongPrivate *>(pPtr)->setNumber(number);
}

int Song::number() const
{
    return static_cast<SongPrivate *>(pPtr)->number();
}

void Song::setMusicFile(const QString &fileName)
{
    static_cast<SongPrivate *>(pPtr)->setMusicFile(fileName);
}

QString Song::musicFile() const
{
    return static_cast<SongPrivate *>(pPtr)->musicFile();
}
