mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
afe255aa0b
with the "red" key. The former main menu action of suspending live TV moved to the "blue" key. Squashed commit of the following: commit7175d7de91
Author: Frank Schmirler <vdr@schmirler.de> Date: Sun Nov 27 11:51:26 2011 +0100 Updated README commit94aef85adc
Author: Frank Schmirler <vdr@schmirler.de> Date: Sun Nov 27 11:32:16 2011 +0100 Moved "closing connection" log message to overload of cTBSocket::Close() in cServerConnection. commit9b91301d94
Author: Frank Schmirler <vdr@schmirler.de> Date: Fri Nov 25 00:24:37 2011 +0100 Don't keep a pointer to the connection in components MulticastGroup structure as the connection may now be deleted from outside via menu. commit7347e24123
Author: Frank Schmirler <vdr@schmirler.de> Date: Thu Nov 24 23:45:59 2011 +0100 Fixed missing Display() call after disconnecting a client. commitc652e8fa81
Author: Frank Schmirler <vdr@schmirler.de> Date: Tue Nov 22 01:15:09 2011 +0100 Added server menu with list of clients. Connections can be terminated with the "red" key. The former main menu action of suspending live TV moved to the "blue" key.
85 lines
2.3 KiB
C++
85 lines
2.3 KiB
C++
#ifndef VDR_STREAMDEV_LIVESTREAMER_H
|
|
#define VDR_STREAMDEV_LIVESTREAMER_H
|
|
|
|
#include <vdr/config.h>
|
|
#include <vdr/receiver.h>
|
|
|
|
#include "server/streamer.h"
|
|
#include "common.h"
|
|
|
|
namespace Streamdev {
|
|
class cTSRemux;
|
|
}
|
|
class cStreamdevPatFilter;
|
|
class cStreamdevLiveReceiver;
|
|
|
|
// --- cStreamdevLiveStreamer -------------------------------------------------
|
|
|
|
class cStreamdevLiveStreamer: public cStreamdevStreamer {
|
|
private:
|
|
int m_Priority;
|
|
int m_Pids[MAXRECEIVEPIDS + 1];
|
|
int m_NumPids;
|
|
eStreamType m_StreamType;
|
|
const cChannel *m_Channel;
|
|
cDevice *m_Device;
|
|
cStreamdevLiveReceiver *m_Receiver;
|
|
cStreamdevPatFilter *m_PatFilter;
|
|
Streamdev::cTSRemux *m_Remux;
|
|
|
|
void StartReceiver(void);
|
|
bool HasPid(int Pid);
|
|
|
|
public:
|
|
cStreamdevLiveStreamer(int Priority, const cServerConnection *Connection);
|
|
virtual ~cStreamdevLiveStreamer();
|
|
|
|
void SetDevice(cDevice *Device) { m_Device = Device; }
|
|
bool SetPid(int Pid, bool On);
|
|
bool SetPids(int Pid, const int *Pids1 = NULL, const int *Pids2 = NULL, const int *Pids3 = NULL);
|
|
bool SetChannel(const cChannel *Channel, eStreamType StreamType, const int* Apid = NULL, const int* Dpid = NULL);
|
|
void SetPriority(int Priority);
|
|
void GetSignal(int *DevNum, int *Strength, int *Quality) const;
|
|
cString ToText() const;
|
|
|
|
virtual int Put(const uchar *Data, int Count);
|
|
virtual uchar *Get(int &Count);
|
|
virtual void Del(int Count);
|
|
|
|
virtual void Attach(void);
|
|
virtual void Detach(void);
|
|
|
|
// Statistical purposes:
|
|
virtual std::string Report(void);
|
|
};
|
|
|
|
|
|
// --- cStreamdevFilterStreamer -------------------------------------------------
|
|
|
|
//#include <vdr/status.h>
|
|
|
|
class cStreamdevLiveFilter;
|
|
|
|
class cStreamdevFilterStreamer: public cStreamdevStreamer /*, public cStatus*/ {
|
|
private:
|
|
cDevice *m_Device;
|
|
cStreamdevLiveFilter *m_Filter;
|
|
//const cChannel *m_Channel;
|
|
|
|
public:
|
|
cStreamdevFilterStreamer();
|
|
virtual ~cStreamdevFilterStreamer();
|
|
|
|
void SetDevice(cDevice *Device);
|
|
//void SetChannel(const cChannel *Channel);
|
|
bool SetFilter(u_short Pid, u_char Tid, u_char Mask, bool On);
|
|
|
|
virtual void Attach(void);
|
|
virtual void Detach(void);
|
|
|
|
// cStatus message handlers
|
|
//virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
|
|
};
|
|
|
|
#endif // VDR_STREAMDEV_LIVESTREAMER_H
|