diff --git a/; b/; deleted file mode 100644 index e4080bd..0000000 --- a/; +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef DOUBLEBUFFERPLAYER_H -#ifndef DOUBLEBUFFERPLAYER_H -#define DOUBLEBUFFERPLAYER_H - -#include -#include -#include -#include "logger.hpp" - -class DoubleBufferPlayer : public QObject -{ - Q_OBJECT - Q_PROPERTY(QObject* videoOutput READ videoOutput WRITE setVideoOutput NOTIFY videoOutputChanged) - -public: - explicit DoubleBufferPlayer(QObject *parent = nullptr) : QObject(parent) - { - m_playerA = new QMediaPlayer(this); - m_playerB = new QMediaPlayer(this); - - m_activePlayer = m_playerA; - m_nextPlayer = m_playerB; - } - - QObject* videoOutput() const { return m_videoOutput; } - - void setVideoOutput(QObject *output) - { - if (m_videoOutput != output) { - m_videoOutput = output; - if (m_videoOutput) { - m_activePlayer->setVideoOutput(m_videoOutput); - } - emit videoOutputChanged(); - } - } - - Q_INVOKABLE void prepareNext(const QUrl &url) - { - m_nextPlayer->setSource(url); - } - - Q_INVOKABLE void swapAndPlay() - { - if (!m_videoOutput) return; - - m_activePlayer->stop(); - - std::swap(m_activePlayer, m_nextPlayer); - - m_activePlayer->setVideoOutput(m_videoOutput); - m_activePlayer->play(); - } - -signals: - void videoOutputChanged(); - -private: - QMediaPlayer *m_playerA{nullptr}; - QMediaPlayer *m_playerB{nullptr}; - QMediaPlayer *m_activePlayer{nullptr}; - QMediaPlayer *m_nextPlayer{nullptr}; - QObject *m_videoOutput{nullptr}; -}; - -#endif