]> Some of my projects - aniplayer.git/commitdiff
Add end of file notification
authorAPTX <redacted>
Mon, 21 Feb 2022 13:24:03 +0000 (22:24 +0900)
committerAPTX <redacted>
Mon, 21 Feb 2022 13:25:00 +0000 (22:25 +0900)
backendplugins/backend_mpv/backendmpv.cpp
core/player.cpp
core/player.h
pluginapi/aniplayer/playerplugininterface.h

index bd3b22b..508060f 100644 (file)
@@ -394,6 +394,9 @@ void MpvInstance::processMpvEvents() {
       else
         qCInfo(mpvBackend) << "File ended. Reason:" << endFile->reason;
       m_player->playStateChanged(PlayerPluginInterface::PlayState::Stopped);
+      if (endFile->reason == MPV_END_FILE_REASON_EOF) {
+        m_player->playbackEndOfFileReached();
+      }
     } break;
     case MPV_EVENT_IDLE: {
       m_player->playStateChanged(PlayerPluginInterface::PlayState::Stopped);
index 6b67651..566b161 100644 (file)
@@ -321,6 +321,10 @@ void Player::playbackMaxVolumeChanged(Player::Volume volume) {
   emit maxVolumeChanged(volume);
 }
 
+void Player::playbackEndOfFileReached() {
+  playNextPlaylistEntryOnEndOfFile();
+}
+
 void Player::backendVideoTracksChanged(
     const PlayerPluginInterface::TrackList &tracks) {
   m_videoTrackModel->setTracks(tracks);
index 6d891cd..6e588a1 100644 (file)
@@ -188,6 +188,7 @@ protected:
   void playbackPositionChanged(TimeStamp) override;
   void playbackVolumeChanged(Volume) override;
   void playbackMaxVolumeChanged(Volume) override;
+  void playbackEndOfFileReached() override;
   void backendVideoTracksChanged(const TrackList &) override;
   void backendAudioTracksChanged(const TrackList &) override;
   void backendSubtitleTracksChanged(const TrackList &) override;
index 1f7b70a..928f6c2 100644 (file)
@@ -45,6 +45,7 @@ public:
   virtual void playbackPositionChanged(TimeStamp) = 0;
   virtual void playbackVolumeChanged(Volume) = 0;
   virtual void playbackMaxVolumeChanged(Volume) = 0;
+  virtual void playbackEndOfFileReached() = 0;
 
   struct Track {
     QString title;