diff options
| author | etobi <git@e-tobi.net> | 2009-10-25 19:33:00 +0100 |
|---|---|---|
| committer | etobi <git@e-tobi.net> | 2009-10-25 19:33:00 +0100 |
| commit | bd012765a88067d3806e208923674750fffa0542 (patch) | |
| tree | 39d96ba9c957f9c748f8aa67fd09ae66f15b4be8 | |
| parent | ee0b7d685e1eccb22cc4d5ed0d7bd9bded052949 (diff) | |
| download | vdr-plugin-osdteletext-bd012765a88067d3806e208923674750fffa0542.tar.gz vdr-plugin-osdteletext-bd012765a88067d3806e208923674750fffa0542.tar.bz2 | |
Remove cTxtReceiver::running member and use base class Running() instead
Instead of buffer.Signal() clean up buffer with buffer.Clear() which implicitly
will trigger the signal in the base class
(References #177)
Patch provided by Andreas Brachold
| -rw-r--r-- | txtrecv.c | 19 | ||||
| -rw-r--r-- | txtrecv.h | 3 |
2 files changed, 7 insertions, 15 deletions
@@ -541,7 +541,7 @@ void cTxtStatus::ChannelSwitch(const cDevice *Device, int ChannelNumber) cTxtReceiver::cTxtReceiver(int TPid, tChannelID chan) : cReceiver(chan, -1, TPid), cThread("osdteletext-receiver"), - TxtPage(0), buffer((188+60)*75), running(false) + TxtPage(0), buffer((188+60)*75) { Storage::instance()->prepareDirectory(ChannelID()); // 10 ms timeout on getting TS frames @@ -551,12 +551,8 @@ cTxtReceiver::cTxtReceiver(int TPid, tChannelID chan) cTxtReceiver::~cTxtReceiver() { - cReceiver::Detach(); - if (running) { - running=false; - buffer.Signal(); - Cancel(2); - } + Detach(); + Activate(false); buffer.Clear(); delete TxtPage; } @@ -569,13 +565,11 @@ void cTxtReceiver::Stop() void cTxtReceiver::Activate(bool On) { if (On) { - if (!running) { - running=true; + if (!Running()) { Start(); } } - else if (running) { - running = false; + else if (Running()) { buffer.Signal(); Cancel(2); } @@ -593,7 +587,7 @@ void cTxtReceiver::Receive(uchar *Data, int Length) void cTxtReceiver::Action() { - while (running) { + while (Running()) { cFrame *frame=buffer.Get(); if (frame) { uchar *Datai=frame->Data(); @@ -612,7 +606,6 @@ void cTxtReceiver::Action() { } buffer.Clear(); - running=false; } uchar cTxtReceiver::unham16 (uchar *p) @@ -166,9 +166,8 @@ private: protected: virtual void Activate(bool On); virtual void Receive(uchar *Data, int Length); - void Action(); + virtual void Action(); cRingTxtFrames buffer; - bool running; public: cTxtReceiver(int TPid, tChannelID chan); virtual ~cTxtReceiver(); |
