diff options
author | lordjaxom <lordjaxom> | 2005-02-08 19:54:52 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2005-02-08 19:54:52 +0000 |
commit | 78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3 (patch) | |
tree | 4b792b0fa20c5857431dc4139217f06c172fdf8a /server/streamer.h | |
parent | b2b925d1a933c9129eb84699e9893d80e7e9534d (diff) | |
download | vdr-plugin-streamdev-78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3.tar.gz vdr-plugin-streamdev-78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3.tar.bz2 |
- transfer
Diffstat (limited to 'server/streamer.h')
-rw-r--r-- | server/streamer.h | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/server/streamer.h b/server/streamer.h index 0f374b5..ff6411d 100644 --- a/server/streamer.h +++ b/server/streamer.h @@ -1,5 +1,5 @@ /* - * $Id: streamer.h,v 1.2 2005/02/08 13:59:16 lordjaxom Exp $ + * $Id: streamer.h,v 1.3 2005/02/08 19:54:52 lordjaxom Exp $ */ #ifndef VDR_STREAMDEV_STREAMER_H @@ -10,21 +10,37 @@ #include <vdr/tools.h> class cTBSocket; +class cStreamdevStreamer; + +#define MAXTRANSMITBLOCKSIZE TS_SIZE*10 +#define STREAMERBUFSIZE MEGABYTE(4) +#define WRITERBUFSIZE KILOBYTE(192) + +class cStreamdevWriter: public cThread { +private: + cStreamdevStreamer *m_Streamer; + cTBSocket *m_Socket; + bool m_Active; + +protected: + virtual void Action(void); + +public: + cStreamdevWriter(cTBSocket *Socket, cStreamdevStreamer *Streamer); + virtual ~cStreamdevWriter(); +}; class cStreamdevStreamer: public cThread { private: bool m_Active; - int m_Receivers; - uchar *m_Buffer; - const char *m_Name; - cTBSocket *m_Socket; + cStreamdevWriter *m_Writer; cRingBufferLinear *m_RingBuffer; + cRingBufferLinear *m_SendBuffer; protected: - virtual uchar *Process(const uchar *Data, int &Count, int &Result); virtual void Action(void); - const cTBSocket *Socket(void) const { return m_Socket; } + //const cTBSocket *Socket(void) const { return m_Socket; } public: cStreamdevStreamer(const char *Name); @@ -33,8 +49,13 @@ public: virtual void Start(cTBSocket *Socket); virtual void Stop(void); - int Put(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); } + void Activate(bool On); + int Receive(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); } void ReportOverflow(int Bytes) { m_RingBuffer->ReportOverflow(Bytes); } + + virtual int Put(const uchar *Data, int Count); + virtual uchar *Get(int &Count); + virtual void Del(int Count); virtual void Detach(void) = 0; virtual void Attach(void) = 0; |