Private
Public Access
1
0

Finish implementing basic play, engine, and service.

This commit is contained in:
2019-04-08 15:58:34 -04:00
parent 8bf9bef961
commit 0174e7784d
8 changed files with 314 additions and 50 deletions

View File

@@ -22,25 +22,55 @@
#include "simplecastservice.h"
SimpleCastEngine::SimpleCastEngine(QObject *parent, const QVariantList &args)
: Plasma::DataEngine(parent,args)
: Plasma::DataEngine(parent,args), player(new MiniMediaPlayer(this))
{
Q_UNUSED(args)
setMinimumPollingInterval(333);
connect(player,SIGNAL(playStateChanged(bool)),this,SLOT(playStateChanged(bool)));
connect(player,SIGNAL(trackDurationChanged(qint64)),this,SLOT(durationChanged(qint64)));
connect(player,SIGNAL(trackPositionChanged(qint64)),this,SLOT(positionChanged(qint64)));
connect(player,SIGNAL(playlistChanged(QStringList)),this,SLOT(playlistChanged(QStringList)));
}
void SimpleCastEngine::durationChanged(qint64 length)
{
setData("CurrentState","trackDuration",length);
}
void SimpleCastEngine::playStateChanged(bool isPlaying)
{
setData("CurrentState","playingState",isPlaying);
}
void SimpleCastEngine::positionChanged(qint64 position)
{
setData("CurrentState","trackPosition",position);
}
bool SimpleCastEngine::sourceRequestEvent(const QString& source)
{
setData(source, "you found me");
return true;
//return updateSourceEvent(source);//TODO
return updateSourceEvent(source);
}
void SimpleCastEngine::playlistChanged(QStringList playlist)
{
setData("Playlist",playlist);
}
bool SimpleCastEngine::updateSourceEvent(const QString& source)
{
//Source for current playlist(contains title and url)
//Source for current track time and length, and playing state
setData(source, "you found me again");
return true;//TODO
if(source == "Playlist")
{
setData(source, QStringList(player->getTrackNames()));
}
else if(source == "CurrentState")
{
QMap<QString,qint64> state = player->currentState();
setData(source,"trackDuration",state["duration"]);
setData(source,"trackPosition",state["position"]);
setData(source,"playingState",state["state"]);
}
return true;
}
QStringList SimpleCastEngine::sources() const
@@ -52,7 +82,7 @@ Plasma::Service * SimpleCastEngine::serviceForSource(const QString& source)
{
if(source == "CurrentState")
{
return new SimpleCastService(source, this);
return new SimpleCastService(source, player, this);
}
return Plasma::DataEngine::serviceForSource(source);
}