aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-12-19 14:47:54 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-12-19 14:47:54 +0000
commit740ae9b4a03c13901e4f4ffc008e4c0cfd63d896 (patch)
tree148ab6985db0ea9f67380740f19d32b12b2e8c6d /lib/service
parentc9e02e35c9c420e16921f2bedcaf380477a24849 (diff)
downloadenigma2-740ae9b4a03c13901e4f4ffc008e4c0cfd63d896.tar.gz
enigma2-740ae9b4a03c13901e4f4ffc008e4c0cfd63d896.zip
decoder: switch off audio in trickmodes
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/iservice.h3
-rw-r--r--lib/service/servicedvb.cpp9
-rw-r--r--lib/service/servicedvb.h1
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index ed1cf3a5..378bdcc9 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -278,6 +278,9 @@ public:
enum { dirForward = +1, dirBackward = -1 };
virtual RESULT seekRelative(int direction, pts_t to)=0;
virtual RESULT getPlayPosition(pts_t &SWIG_OUTPUT)=0;
+ /* if you want to do several seeks in a row, you can enable the trickmode.
+ audio will be switched off, sync will be disabled etc. */
+ virtual RESULT setTrickmode(int trick=0)=0;
};
TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr);
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 790bfca6..fc35b521 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -669,7 +669,7 @@ RESULT eDVBServicePlay::setSlowMotion(int ratio)
RESULT eDVBServicePlay::setFastForward(int ratio)
{
if (m_decoder)
- m_decoder->setFastForward(ratio);
+ return m_decoder->setFastForward(ratio);
else
return -1;
}
@@ -758,6 +758,13 @@ RESULT eDVBServicePlay::getPlayPosition(pts_t &pos)
return pvr_channel->getCurrentPosition(demux, pos);
}
+RESULT eDVBServicePlay::setTrickmode(int trick=0)
+{
+ if (m_decoder)
+ m_decoder->setTrickmode(trick);
+ return 0;
+}
+
RESULT eDVBServicePlay::frontendStatusInfo(ePtr<iFrontendStatusInformation> &ptr)
{
ptr = this;
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index e99faffd..b1df4cb7 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -84,6 +84,7 @@ public:
RESULT seekTo(pts_t to);
RESULT seekRelative(int direction, pts_t to);
RESULT getPlayPosition(pts_t &pos);
+ RESULT setTrickmode(int trick=0);
// iServiceInformation
RESULT getName(std::string &name);