/* Copyright (C) 2019 by Kevin Whitaker This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) version 3 or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of version 3 of the license. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef SIMPLECASTENGINE_H #define SIMPLECASTENGINE_H #include #include #include "minimediaplayer.h" #include "simplecasttcpservice.h" /** * Simple Cast Engine is a Plasma DataEngine that conveys that status on the media player casting to to other code like Plasmoids. */ class SimpleCastEngine : public Plasma::DataEngine { Q_OBJECT public: SimpleCastEngine(QObject *parent, const QVariantList &args); QStringList sources() const override; Plasma::Service *serviceForSource(const QString &source) override; private slots: void durationChanged(qint64 length); void positionChanged(qint64 position); void playStateChanged(bool isPlaying); void playlistChanged(QStringList playlist); protected: bool sourceRequestEvent(const QString &source) override; bool updateSourceEvent(const QString &source) override; MiniMediaPlayer *player; SimpleCastTcpService tcpService; }; #endif // SIMPLECASTENGINE_H