diff options
author | Mavridis Philippe <mavridisf@gmail.com> | 2023-05-31 18:38:04 +0300 |
---|---|---|
committer | Mavridis Philippe <mavridisf@gmail.com> | 2023-11-24 22:46:27 +0200 |
commit | 60d44437da2832fd52522f31dda872a0fe946e8f (patch) | |
tree | 878f88320cfe851c2a0f81aa6d6e030a3489418e | |
parent | d1fbb0527a98574cf2b7e6873531a913d9293acb (diff) | |
download | kaffeine-60d44437da2832fd52522f31dda872a0fe946e8f.tar.gz kaffeine-60d44437da2832fd52522f31dda872a0fe946e8f.zip |
mpvpart: add isSeekable() check
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
-rw-r--r-- | kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp | 14 | ||||
-rw-r--r-- | kaffeine/src/player-parts/libmpv-part/libmpv_part.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp b/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp index b28b264..35efd80 100644 --- a/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp +++ b/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp @@ -392,12 +392,26 @@ bool MpvPart::isStream() { return false; } +bool MpvPart::isSeekable() { + if (!m_mpv) return false; + + int result; + if (mpv_get_property(m_mpv, "seekable", MPV_FORMAT_FLAG, &result) < 0) { + return false; + } + return (bool)result; +} + void MpvPart::resetTime() { m_playtime->setText("0:00:00"); m_position->setValue(0); } void MpvPart::slotStartSeeking() { + if (!isSeekable()) { + emit setStatusBarText( i18n("Cannot seek current file!") ); + return; + } m_seeking = true; slotPause(true); } diff --git a/kaffeine/src/player-parts/libmpv-part/libmpv_part.h b/kaffeine/src/player-parts/libmpv-part/libmpv_part.h index 0b94f36..242c763 100644 --- a/kaffeine/src/player-parts/libmpv-part/libmpv_part.h +++ b/kaffeine/src/player-parts/libmpv-part/libmpv_part.h @@ -69,6 +69,7 @@ class MpvPart : public KaffeinePart bool isPaused(); bool isMute(); bool isStream(); + bool isSeekable(); bool closeURL(); static TDEAboutData* createAboutData(); |