summaryrefslogtreecommitdiff
path: root/server/streamer.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/streamer.h')
-rw-r--r--server/streamer.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/server/streamer.h b/server/streamer.h
new file mode 100644
index 0000000..1bfcc47
--- /dev/null
+++ b/server/streamer.h
@@ -0,0 +1,43 @@
+/*
+ * $Id: streamer.h,v 1.1 2004/12/30 22:44:21 lordjaxom Exp $
+ */
+
+#ifndef VDR_STREAMDEV_STREAMER_H
+#define VDR_STREAMDEV_STREAMER_H
+
+#include <vdr/thread.h>
+#include <vdr/ringbuffer.h>
+#include <vdr/tools.h>
+
+class cTBSocket;
+
+class cStreamdevStreamer: public cThread {
+private:
+ bool m_Active;
+ int m_Receivers;
+ uchar *m_Buffer;
+ const char *m_Name;
+ cTBSocket *m_Socket;
+ cRingBufferLinear *m_RingBuffer;
+
+protected:
+ virtual uchar *Process(const uchar *Data, int &Count, int &Result);
+ virtual void Action(void);
+
+ const cTBSocket *Socket(void) const { return m_Socket; }
+
+public:
+ cStreamdevStreamer(const char *Name);
+ virtual ~cStreamdevStreamer();
+
+ virtual void Start(cTBSocket *Socket);
+ virtual void Stop(void);
+
+ int Put(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); }
+
+ virtual void Detach(void) = 0;
+ virtual void Attach(void) = 0;
+};
+
+#endif // VDR_STREAMDEV_STREAMER_H
+