From 01d489c736ac02742982560ee6c25cbef8eb7baa Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Wed, 29 Mar 2023 19:09:27 +0200
Subject: [PATCH] FIX: Fix for MPV version 0.35.1

---
 src/UI/DocumentViews/MpvContainer.cc | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/src/UI/DocumentViews/MpvContainer.cc b/src/UI/DocumentViews/MpvContainer.cc
index c0e3c49b..f52c629e 100644
--- a/src/UI/DocumentViews/MpvContainer.cc
+++ b/src/UI/DocumentViews/MpvContainer.cc
@@ -42,6 +42,7 @@ MpvContainer::initializeMpv()
     mpv_set_option_string(mpv, "no-ytdl", "yes");
     mpv_request_log_messages(mpv, "info");
     mpv_observe_property(mpv, 0, "pause", MPV_FORMAT_FLAG);
+    mpv_observe_property(mpv, 0, "unpause", MPV_FORMAT_FLAG);
     mpv_observe_property(mpv, 0, "duration", MPV_FORMAT_DOUBLE);
     mpv_observe_property(mpv, 0, "time-pos", MPV_FORMAT_DOUBLE);
 
@@ -143,18 +144,12 @@ MpvContainer::handleMpvEvent(const mpv_event *const event) noexcept
             logDebug() << "MPV -> set to" << (isPlaybackPaused ? "pause" : "play");
         }
 
-        break;
-
-    case MPV_EVENT_PAUSE:
-        isPlaybackPaused = true;
-        emit mpvPlaybackToggled(!isPlaybackPaused);
-        logDebug() << "MPV -> set to pause";
-        break;
+        else if (checkProp(prop, "unpause", MPV_FORMAT_FLAG)) {
+            isPlaybackPaused = !*reinterpret_cast<bool *>(prop->data);
+            emit mpvPlaybackToggled(!isPlaybackPaused);
+            logDebug() << "MPV -> set to" << (isPlaybackPaused ? "pause" : "play");
+        }
 
-    case MPV_EVENT_UNPAUSE:
-        isPlaybackPaused = false;
-        emit mpvPlaybackToggled(!isPlaybackPaused);
-        logDebug() << "MPV -> set to play";
         break;
 
     case MPV_EVENT_START_FILE: logDebug() << "MPV: Begin of file"; break;
@@ -171,17 +166,12 @@ MpvContainer::handleMpvEvent(const mpv_event *const event) noexcept
     case MPV_EVENT_GET_PROPERTY_REPLY:
     case MPV_EVENT_SET_PROPERTY_REPLY:
     case MPV_EVENT_FILE_LOADED:
-    case MPV_EVENT_TRACKS_CHANGED:
-    case MPV_EVENT_TRACK_SWITCHED:
     case MPV_EVENT_IDLE:
     case MPV_EVENT_TICK:
-    case MPV_EVENT_SCRIPT_INPUT_DISPATCH:
     case MPV_EVENT_CLIENT_MESSAGE:
     case MPV_EVENT_AUDIO_RECONFIG:
-    case MPV_EVENT_METADATA_UPDATE:
     case MPV_EVENT_SEEK:
     case MPV_EVENT_PLAYBACK_RESTART:
-    case MPV_EVENT_CHAPTER_CHANGE:
     case MPV_EVENT_QUEUE_OVERFLOW:
     case MPV_EVENT_HOOK: break;
     }
-- 
GitLab