aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/decoder.h
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2008-11-18 00:40:19 +0100
committerFelix Domke <tmbinc@elitedvb.net>2008-11-18 00:40:19 +0100
commit4f7990ff2a55874b9eb65e3c9cd47dacb9f76deb (patch)
tree47ebc002512c74a06eb08c5b6739d24c7c4443ed /lib/dvb/decoder.h
parent3aedbe22cf74b72ad0c3e2bc1869e914701e6574 (diff)
downloadenigma2-4f7990ff2a55874b9eb65e3c9cd47dacb9f76deb.tar.gz
enigma2-4f7990ff2a55874b9eb65e3c9cd47dacb9f76deb.zip
rework decoder states
Diffstat (limited to 'lib/dvb/decoder.h')
-rw-r--r--lib/dvb/decoder.h42
1 files changed, 30 insertions, 12 deletions
diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h
index 05e07ef9..04501fe6 100644
--- a/lib/dvb/decoder.h
+++ b/lib/dvb/decoder.h
@@ -119,10 +119,12 @@ private:
changeVideo = 1,
changeAudio = 2,
changePCR = 4,
- changeText = 8
+ changeText = 8,
+ changeState = 16,
};
int m_changed, m_decoder;
- int m_is_ff, m_is_sm, m_is_trickmode;
+ int m_state;
+ int m_ff_sm_ratio;
int setState();
ePtr<eConnection> m_demux_event_conn;
ePtr<eConnection> m_video_event_conn;
@@ -148,17 +150,33 @@ public:
RESULT setSyncPCR(int pcrpid);
RESULT setTextPID(int textpid);
RESULT setSyncMaster(int who);
- RESULT start();
- RESULT preroll();
- RESULT freeze(int cont);
- RESULT unfreeze();
- RESULT setSinglePictureMode(int when);
- RESULT setPictureSkipMode(int what);
- RESULT setFastForward(int frames_to_skip);
- RESULT setSlowMotion(int repeat);
- RESULT setZoom(int what);
+
+ /*
+ The following states exist:
+
+ - stop: data source closed, no playback
+ - pause: data source active, decoder paused
+ - play: data source active, decoder consuming
+ - decoder fast forward: data source linear, decoder drops frames
+ - trickmode, highspeed reverse: data source fast forwards / reverses, decoder just displays frames as fast as it can
+ - slow motion: decoder displays frames multiple times
+ */
+ enum {
+ stateStop,
+ statePause,
+ statePlay,
+ stateDecoderFastForward,
+ stateTrickmode,
+ stateSlowMotion
+ };
+ RESULT set(); /* just apply settings, keep state */
+ RESULT play(); /* -> play */
+ RESULT pause(); /* -> pause */
+ RESULT setFastForward(int frames_to_skip); /* -> decoder fast forward */
+ RESULT setSlowMotion(int repeat); /* -> slow motion **/
+ RESULT setTrickmode(); /* -> highspeed fast forward */
+
RESULT flush();
- RESULT setTrickmode(int what);
RESULT showSinglePic(const char *filename);
RESULT setRadioPic(const std::string &filename);
/* what 0=auto, 1=video, 2=audio. */