summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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();