diff options
Diffstat (limited to 'p2pvr/lib/tuner.h')
-rw-r--r-- | p2pvr/lib/tuner.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/p2pvr/lib/tuner.h b/p2pvr/lib/tuner.h index 381c804..57bdd82 100644 --- a/p2pvr/lib/tuner.h +++ b/p2pvr/lib/tuner.h @@ -14,6 +14,21 @@ class Tuner : public P2PVR::PrivateTuner { public: + class IDataSender { + public: + IDataSender(const P2PVR::RawDataClientPrx &); + virtual ~IDataSender() = 0; + + virtual void NewData(const P2PVR::Data &) = 0; + virtual bool IsFinished() = 0; + uint64_t PacketsSent() const; + + protected: + uint64_t _packetsSent; + const P2PVR::RawDataClientPrx client; + }; + typedef boost::shared_ptr<IDataSender> BackgroundClient; + Tuner(const boost::filesystem::path & deviceFrontend); ~Tuner(); @@ -38,12 +53,10 @@ class Tuner : public P2PVR::PrivateTuner { INITOPTIONS; private: - static bool crc32(const P2PVR::Data &); int OpenDemux() const; uint64_t SendPID(int pid, const P2PVR::RawDataClientPrx & client, const Ice::Current &) const; static void RequestPID(int pid, int fd); uint64_t ReadDemuxAndSend(int fd, const P2PVR::RawDataClientPrx & client) const; - static bool IsValidSection(const P2PVR::Data &); void startSenderThread(); void senderThread(); static void setBufferSize(int fd, unsigned long bytes); @@ -51,7 +64,6 @@ class Tuner : public P2PVR::PrivateTuner { const boost::filesystem::path deviceFrontend; const boost::filesystem::path deviceRoot; typedef boost::function<bool(const P2PVR::Data &)> PacketCheckFunction; - typedef boost::tuple<P2PVR::RawDataClientPrx, PacketCheckFunction> BackgroundClient; typedef std::map<int, BackgroundClient> BackgroundClients; BackgroundClients backgroundClients; std::thread * backgroundThread; |