48 LiveTVPlayback(
const std::string& server,
unsigned port);
53 bool IsOpen() {
return ProtoMonitor::IsOpen(); }
54 void SetTuneDelay(
unsigned delay);
55 void SetLimitTuneAttempts(
bool limit);
56 bool SpawnLiveTV(
const std::string& chanNum,
const ChannelList& channels);
57 bool SpawnLiveTV(
const ChannelPtr& thisChannel);
60 void SetChunk(
unsigned size);
63 int64_t GetSize()
const;
64 int Read(
void *buffer,
unsigned n);
65 int64_t Seek(int64_t offset, WHENCE_t whence);
66 int64_t GetPosition()
const;
68 bool IsPlaying()
const;
69 bool IsLiveRecording()
const;
70 bool KeepLiveRecording(
bool keep);
71 ProgramPtr GetPlayedProgram()
const;
72 time_t GetLiveTimeStart()
const;
73 unsigned GetChainedCount()
const;
74 ProgramPtr GetChainedProgram(
unsigned sequence)
const;
75 uint32_t GetCardId()
const;
76 SignalStatusPtr GetSignal()
const;
79 void HandleBackendMessage(EventMessagePtr msg);
83 unsigned m_eventSubscriberId;
86 bool m_limitTuneAttempts;
87 ProtoRecorderPtr m_recorder;
88 SignalStatusPtr m_signal;
90 typedef std::vector<std::pair<ProtoTransferPtr, ProgramPtr> > chained_t;
94 ProtoTransferPtr currentTransfer;
95 unsigned currentSequence;
96 unsigned lastSequence;
98 volatile bool switchOnCreate;
103 bool IsChained(
const Program& program);
104 void HandleChainUpdate();
105 bool SwitchChain(
unsigned sequence);
106 bool SwitchChainLast();
108 typedef std::multimap<unsigned, std::pair<CardInputPtr, ChannelPtr> > preferredCards_t;
109 preferredCards_t FindTunableCardIds(
const std::string& chanNum,
const ChannelList& channels);
111 int _read(
void *buffer,
unsigned n);
112 int64_t _seek(int64_t offset, WHENCE_t whence);
115 struct { RingBuffer * rbuf; RingBufferPacket * packet;
int consumed; } m_buffer;