diff --git a/src/input/Device.h b/src/input/Device.h index 92ec60f..d56c43f 100644 --- a/src/input/Device.h +++ b/src/input/Device.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -100,11 +101,30 @@ class Device : /// virtual std::string attributeDescribeString() const = 0; - /// Generic internal pid filtering Update function - virtual void updatePIDFilters() {} + /// + virtual mpegts::Filter &getFilterData() = 0; + + /// Generic pid filtering Update function + virtual void updatePIDFilters() { + getFilterData().updatePIDFilters(_feID, + // openPid lambda function + [&](const int) { + return true; + }, + // closePid lambda function + [&](const int) { + return true; + }); + } - /// Generic internal pid filtering Close function - virtual void closeActivePIDFilters() {} + /// Generic pid filtering Close function + virtual void closeActivePIDFilters() { + getFilterData().closeActivePIDFilters(_feID, + // closePid lambda function + [&](const int) { + return true; + }); + } /// FeID getFeID() const { diff --git a/src/input/childpipe/TSReader.cpp b/src/input/childpipe/TSReader.cpp index b330e9e..e3d9995 100644 --- a/src/input/childpipe/TSReader.cpp +++ b/src/input/childpipe/TSReader.cpp @@ -201,26 +201,6 @@ std::string TSReader::attributeDescribeString() const { return ""; } -void TSReader::updatePIDFilters() { - _deviceData.getFilterData().updatePIDFilters(_feID, - // openPid lambda function - [&](const int) { - return true; - }, - // closePid lambda function - [&](const int) { - return true; - }); -} - -void TSReader::closeActivePIDFilters() { - _deviceData.getFilterData().closeActivePIDFilters(_feID, - // closePid lambda function - [&](const int) { - return true; - }); -} - // ============================================================================= // -- Other member functions -------------------------------------------------- // ============================================================================= diff --git a/src/input/childpipe/TSReader.h b/src/input/childpipe/TSReader.h index d93a5f1..4b00afa 100644 --- a/src/input/childpipe/TSReader.h +++ b/src/input/childpipe/TSReader.h @@ -108,14 +108,14 @@ class TSReader : virtual std::string attributeDescribeString() const final; - virtual void updatePIDFilters() final; - - virtual void closeActivePIDFilters() final; + virtual mpegts::Filter &getFilterData() final { + return _deviceData.getFilterData(); + } // ===================================================================== // -- Other member functions ------------------------------------------ // ===================================================================== - private: + protected: // ===================================================================== // -- Data members ----------------------------------------------------- diff --git a/src/input/dvb/Frontend.h b/src/input/dvb/Frontend.h index 1af348b..beb710f 100644 --- a/src/input/dvb/Frontend.h +++ b/src/input/dvb/Frontend.h @@ -171,6 +171,10 @@ class Frontend : virtual std::string attributeDescribeString() const final; + virtual mpegts::Filter &getFilterData() final { + return _frontendData.getFilterData(); + } + /// virtual void updatePIDFilters() final; diff --git a/src/input/file/TSReader.h b/src/input/file/TSReader.h index d169f59..eb1fed0 100644 --- a/src/input/file/TSReader.h +++ b/src/input/file/TSReader.h @@ -108,6 +108,11 @@ class TSReader : virtual std::string attributeDescribeString() const final; + virtual mpegts::Filter &getFilterData() final + { + return _deviceData.getFilterData(); + } + // ===================================================================== // -- Other member functions ------------------------------------------ // ===================================================================== diff --git a/src/input/stream/Streamer.cpp b/src/input/stream/Streamer.cpp index b126228..5360062 100644 --- a/src/input/stream/Streamer.cpp +++ b/src/input/stream/Streamer.cpp @@ -205,29 +205,6 @@ std::string Streamer::attributeDescribeString() const { return ""; } -void Streamer::updatePIDFilters() { - _deviceData.getFilterData().updatePIDFilters(_feID, - // openPid lambda function - [&](const int pid) { - SI_LOG_DEBUG("Frontend: @#1, ADD_PID: PID @#2", _feID, PID(pid)); - return true; - }, - // closePid lambda function - [&](const int pid) { - SI_LOG_DEBUG("Frontend: @#1, REMOVE_PID: PID @#2", _feID, PID(pid)); - return true; - }); -} - -void Streamer::closeActivePIDFilters() { - _deviceData.getFilterData().closeActivePIDFilters(_feID, - // closePid lambda function - [&](const int pid) { - SI_LOG_DEBUG("Frontend: @#1, REMOVE_PID: PID @#2", _feID, PID(pid)); - return true; - }); -} - // ============================================================================= // -- Other member functions -------------------------------------------------- // ============================================================================= diff --git a/src/input/stream/Streamer.h b/src/input/stream/Streamer.h index e6209dd..a15dbeb 100644 --- a/src/input/stream/Streamer.h +++ b/src/input/stream/Streamer.h @@ -109,9 +109,9 @@ class Streamer : virtual std::string attributeDescribeString() const final; - virtual void updatePIDFilters() final; - - virtual void closeActivePIDFilters() final; + virtual mpegts::Filter &getFilterData() final { + return _deviceData.getFilterData(); + } // ===================================================================== // -- Other member functions ------------------------------------------