69 lines
1.3 KiB
C++
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;
|
|
}
|