lena_pi/LenaPi/models/MusicModel.cpp
2018-11-27 22:05:56 +01:00

69 lines
1.3 KiB
C++

#include "MusicModel.h"
#include <QDir>
#include <QDebug>
#include <VLCQtCore/Media.h>
MusicModel::MusicModel(VlcInstance* instance, QObject *parent) : QObject(parent),
mVlc(instance)//, mMedia(new VlcMediaList(instance))
{
}
MusicModel::~MusicModel()
{
//if(mMedia)
// mMedia->deleteLater();
}
void MusicModel::init(NavigationItemModel *item)
{
mCurrentItem = item;
emit currentItemChanged();
/*for(int i = 0; i < mMedia->count(); i++){
mMedia->removeMedia(i);
}
qDebug() << mMedia->count();
*/
if(mMedia) delete mMedia;
mMedia = new VlcMediaList(mVlc);
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();
}
NavigationItemModel *MusicModel::getCurrentItem()
{
return mCurrentItem;
}
VlcMediaList *MusicModel::getMedia()
{
return mMedia;
}
bool MusicModel::isPlaying()
{
return mIsPlaying;
}