summaryrefslogtreecommitdiff
path: root/streamdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'streamdevice.h')
-rw-r--r--streamdevice.h61
1 files changed, 34 insertions, 27 deletions
diff --git a/streamdevice.h b/streamdevice.h
index 8f8603b..412aafb 100644
--- a/streamdevice.h
+++ b/streamdevice.h
@@ -15,40 +15,47 @@
#include "pes2ts.h"
+enum ePlayState {psBufferReset,psBufferReseted,psPlay};
+
class cStreamDevice: public cDevice {
private:
- cPESRemux *m_Remux;
- bool m_Playing;
+ cPESRemux *m_Remux;
+ bool m_Playing;
+ ePlayState m_PlayState;
+ ePlayMode m_PlayMode;
+
protected:
public:
- cStreamDevice(void);
- ~cStreamDevice(void);
- virtual bool HasDecoder(void) const;
- virtual bool CanReplay(void) const;
- virtual bool SetPlayMode(ePlayMode PlayMode);
- virtual void TrickSpeed(int Speed);
- virtual void Clear(void);
- virtual void Play(void);
- virtual void Freeze(void);
- virtual void Mute(void);
- virtual void SetVolumeDevice (int Volume);
- virtual void StillPicture(const uchar *Data, int Length);
- virtual bool Poll(cPoller &Poller, int TimeoutMs = 0);
- virtual int PlayVideo(const uchar *Data, int Length);
+ cStreamDevice(void);
+ ~cStreamDevice(void);
+ virtual bool HasDecoder(void) const;
+ virtual bool CanReplay(void) const;
+ virtual bool SetPlayMode(ePlayMode PlayMode);
+ virtual void TrickSpeed(int Speed);
+ virtual void Clear(void);
+ virtual void Play(void);
+ virtual void Freeze(void);
+ virtual void Mute(void);
+ virtual void SetVolumeDevice (int Volume);
+ virtual void StillPicture(const uchar *Data, int Length);
+ virtual bool Poll(cPoller &Poller, int TimeoutMs = 0);
+ virtual int PlayVideo(const uchar *Data, int Length);
#if VDRVERSNUM < 10342
- virtual int PlayAudio(const uchar *Data, int Length);
+ virtual int PlayAudio(const uchar *Data, int Length);
#else
- virtual int PlayAudio(const uchar *Data, int Length, uchar Id);
+ virtual int PlayAudio(const uchar *Data, int Length, uchar Id);
#endif
- virtual int ProvidesCa(const cChannel *Channel) const;
- virtual void MakePrimaryDevice(bool On);
- uchar *Get(int &Count) { return m_Remux->Get(Count); }
- void LockOutput() { m_Remux->LockOutput(); }
- void UnlockOutput() { m_Remux->UnlockOutput(); }
- void Del(int Count) { m_Remux->DelOutput(Count); }
- void ClearOutput() { m_Remux->ClearOutput(); }
- int Available(void) { return m_Remux->Available(); }
- int Free(void) { return m_Remux->Free(); }
+ virtual int ProvidesCa(const cChannel *Channel) const;
+ virtual void MakePrimaryDevice(bool On);
+ uchar *Get(int &Count) { return m_Remux->Get(Count); }
+ void LockOutput() { m_Remux->LockOutput(); }
+ void UnlockOutput() { m_Remux->UnlockOutput(); }
+ void Del(int Count) { m_Remux->DelOutput(Count); }
+ void ClearOutput() { m_Remux->ClearOutput(); }
+ int Available(void) { return m_Remux->Available(); }
+ int Free(void) { return m_Remux->Free(); }
+ void SetPlayState(ePlayState PlayState) { m_PlayState = PlayState;}
+ ePlayState GetPlayState(void) { return m_PlayState; }
};
#endif