summaryrefslogtreecommitdiff
path: root/p2pvr/lib/tuner.h
diff options
context:
space:
mode:
Diffstat (limited to 'p2pvr/lib/tuner.h')
-rw-r--r--p2pvr/lib/tuner.h18
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;