#include "MusicModel.h" #include #include #include MusicModel::MusicModel(VlcInstance* instance, QObject *parent) : QObject(parent), mVlc(instance), mMedia(new VlcMediaList(instance)) { } MusicModel::~MusicModel() { // do not delete! will cause segmentation fault //if(mMedia) // mMedia->deleteLater(); } void MusicModel::init(NavigationItemModel *item) { mCurrentItem = item; emit currentItemChanged(); while(mMedia->count() > 0){ mMedia->removeMedia(0); } auto dir = QDir(mCurrentItem->getPath()); if(!dir.exists()) return; auto fileNames = dir.entryList(QDir::Files); for(auto file:fileNames){ if(file.endsWith(".flac") || file.endsWith(".mp3")){ mMedia->addMedia(new VlcMedia(dir.filePath(file), true, mVlc)); } } } void MusicModel::navigateBack() { emit navigateTo(mCurrentItem); } void MusicModel::playPause() { mIsPlaying = !mIsPlaying; if(mIsPlaying) emit play(); else emit pause(); } void MusicModel::stopMusic() { if(mIsPlaying){ mIsPlaying = false; emit stop(); } } void MusicModel::playNext() { emit next(); } void MusicModel::playPrevious() { emit previous(); } NavigationItemModel *MusicModel::getCurrentItem() { return mCurrentItem; } VlcMediaList *MusicModel::getMedia() { return mMedia; } bool MusicModel::isPlaying() { return mIsPlaying; }