52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#ifndef MUSICCONTROLLER_H
|
|
#define MUSICCONTROLLER_H
|
|
|
|
#include <QObject>
|
|
#include <QQmlContext>
|
|
#include <models/NavigationItemModel.h>
|
|
|
|
#include <VLCQtCore/Common.h>
|
|
#include <VLCQtCore/Instance.h>
|
|
#include <VLCQtCore/MediaListPlayer.h>
|
|
#include <VLCQtCore/Audio.h>
|
|
|
|
class MusicModel;
|
|
|
|
class MusicController : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
signals:
|
|
void navigateTo(NavigationItemModel* item);
|
|
|
|
public:
|
|
MusicController(QObject *parent = Q_NULLPTR);
|
|
~MusicController();
|
|
|
|
void initPlayer(NavigationItemModel* item);
|
|
|
|
void setContext(QQmlContext* context);
|
|
|
|
private:
|
|
void setContextProperties();
|
|
|
|
QQmlContext* mContext = Q_NULLPTR;
|
|
|
|
MusicModel* mModel = Q_NULLPTR;
|
|
|
|
VlcInstance* mVlc = Q_NULLPTR;
|
|
VlcMediaListPlayer* mPlayer = Q_NULLPTR;
|
|
VlcAudio* mVlcAudio = Q_NULLPTR;
|
|
|
|
bool mIsMediaListSet = false;
|
|
|
|
private slots:
|
|
/**
|
|
* @brief Stop player if necessary and forward signal navigatTo
|
|
* @param item target of navigation request
|
|
* @see navigateTo(NavigationItemModel* item);
|
|
*/
|
|
void onNavigationRequest(NavigationItemModel* item);
|
|
};
|
|
|
|
#endif // MUSICCONTROLLER_H
|