const char *args[] = {"loadfile", tmp.constData(), nullptr};
mpv_command_async(m_handle, 1, args);
pause();
+ m_currentlyLoading = source;
return true;
}
auto state = paused ? PlayerPluginInterface::PlayState::Paused
: PlayerPluginInterface::PlayState::Playing;
m_player->playStateChanged(state);
+ m_player->backendSourceChanged(m_currentlyLoading);
+ m_currentlyLoading = QUrl{};
} break;
case MPV_EVENT_END_FILE: {
m_loadedFile = false;
PlayerPluginInterface *m_player = nullptr;
mpv_handle *m_handle = nullptr;
Volume m_volumeToSet = -1;
+ QUrl m_currentlyLoading;
bool m_loadedFile = false;
Q_INVOKABLE void processMpvEvents();
#define PLAYERPLUGININTERFACE_H
#include <QtGlobal>
+#include <QUrl>
class QOpenGLFramebufferObject;
virtual void backendReadyToPlay() = 0;
+ virtual void backendSourceChanged(QUrl source) = 0;
virtual void playStateChanged(PlayState) = 0;
virtual void playbackDurationChanged(TimeStamp) = 0;
virtual void playbackPositionChanged(TimeStamp) = 0;
loadNextFile();
}
+void Player::backendSourceChanged(QUrl source)
+{
+ if (m_currentSource == source)
+ return;
+
+ m_currentSource = source;
+ emit currentSourceChanged(source);
+}
+
void Player::rendererSinkSet(VideoUpdateInterface *renderer) {
m_renderer = renderer;
m_rendererReady = false;
protected:
void backendReadyToPlay() override;
+ void backendSourceChanged(QUrl source) override;
void rendererSinkSet(VideoUpdateInterface *) override;
void rendererReady() override;
void playStateChanged(PlayerPluginInterface::PlayState) override;