Bug #918 » receiver-fix-2.diff
| txtrecv.c | ||
|---|---|---|
|
int TPid = newLiveChannel->Tpid();
|
||
|
if (TPid) {
|
||
|
receiver = new cTxtReceiver(TPid, newLiveChannel->GetChannelID(), storeTopText, storage);
|
||
|
receiver = new cTxtReceiver(newLiveChannel, storeTopText, storage);
|
||
|
cDevice::ActualDevice()->AttachReceiver(receiver);
|
||
|
}
|
||
| ... | ... | |
|
}
|
||
|
cTxtReceiver::cTxtReceiver(int TPid, tChannelID chan, bool storeTopText, Storage* storage)
|
||
|
: cReceiver(chan, -1, TPid), cThread("osdteletext-receiver"),
|
||
|
cTxtReceiver::cTxtReceiver(const cChannel* chan, bool storeTopText, Storage* storage)
|
||
|
#if APIVERSNUM >= 10712
|
||
|
: cReceiver(chan, -1), cThread("osdteletext-receiver"),
|
||
|
#else
|
||
|
: cReceiver(chan, -1, chan->Tpid()), cThread("osdteletext-receiver"),
|
||
|
#endif
|
||
|
TxtPage(0), storeTopText(storeTopText), buffer((188+60)*75), storage(storage)
|
||
|
{
|
||
|
#if APIVERSNUM >= 10712
|
||
|
AddPid(chan->Tpid());
|
||
|
#endif
|
||
|
storage->prepareDirectory(ChannelID());
|
||
|
// 10 ms timeout on getting TS frames
|
||
| txtrecv.h | ||
|---|---|---|
|
virtual void Receive(uchar *Data, int Length);
|
||
|
virtual void Action();
|
||
|
public:
|
||
|
cTxtReceiver(int TPid, tChannelID chan, bool storeTopText, Storage* storage);
|
||
|
cTxtReceiver(const cChannel* chan, bool storeTopText, Storage* storage);
|
||
|
virtual ~cTxtReceiver();
|
||
|
virtual void Stop();
|
||
|
};
|
||