summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2023-05-31 18:38:04 +0300
committerMavridis Philippe <mavridisf@gmail.com>2023-11-24 22:46:27 +0200
commit60d44437da2832fd52522f31dda872a0fe946e8f (patch)
tree878f88320cfe851c2a0f81aa6d6e030a3489418e
parentd1fbb0527a98574cf2b7e6873531a913d9293acb (diff)
downloadkaffeine-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.cpp14
-rw-r--r--kaffeine/src/player-parts/libmpv-part/libmpv_part.h1
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();