summaryrefslogtreecommitdiff
path: root/p2pvr/devices/mockTuner.h
blob: d0db11e513b6f3840e4cc6c36dc183039ab48eef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef P2PVR_MOCKTUNER_H
#define P2PVR_MOCKTUNER_H

#include <dvb.h>
#include <visibility.h>
#include <Ice/BuiltinSequences.h>
#include <boost/thread.hpp>
#include <logger.h>

namespace P2PVR {
namespace Testing {
class DLL_PUBLIC MockTuner : public Tuner {
	public:
		MockTuner(Ice::CommunicatorPtr);

		void TuneTo(const DVBSI::DeliveryPtr &) override;
		int GetStatus() override;
		std::string GetDevice() override;

		void ScanAndSendNetworkInformation(const RawDataClientPrx & client) override;
		void SendNetworkInformation(const RawDataClientPrx & client) override;
		void SendBouquetAssociations(const RawDataClientPrx & client) override;
		void SendServiceDescriptions(const RawDataClientPrx & client) override;
		void SendProgramMap(Ice::Int pid, const RawDataClientPrx & client) override;
		void SendProgramAssociationTable(const RawDataClientPrx & client) override;
		void SendEventInformation(const RawDataClientPrx & client) override;

		int StartSendingTS(const PacketIds & pids, const RawDataClientPrx & client) override;
		int StartSendingSection(Ice::Int pid, const RawDataClientPrx & client) override;
		void StopSending(int handle) override;

		static void SetEventsSet(int n);

	protected:
		static Ice::ByteSeq Decompress(const Ice::ByteSeq &);
		static void LZMA_ASSERT(int ret_xz);
		void DecompressAndSendPackets(const Ice::ByteSeq &, const RawDataClientPrx &) const;
		void SendLoop(const RawDataClientPrx & t, const Ice::ByteSeq & dataxz) const;

		static int eventSet;
		std::map<int, boost::thread *> senders;
		static int senderId;
		Ice::CommunicatorPtr ic;

		static IceTray::Logging::LoggerPtr logger;
};
}
}

#endif