Interim Update
[pierogi] / protocols / directvprotocol.h
1 #ifndef DIRECTVPROTOCOL_H
2 #define DIRECTVPROTOCOL_H
3
4 #include "pirprotocol.h"
5
6 class PIRRX51Hardware;
7
8 enum DirectvGapSize
9 {
10   ShortGap_Directv,
11   LongGap_Directv
12 };
13
14 enum DirectvFreq
15 {
16   LowFreq_Directv,
17   MediumFreq_Directv,
18   HighFreq_Directv
19 };
20
21 class DirectvProtocol: public PIRProtocol
22 {
23 public:
24   DirectvProtocol(
25     QObject *guiObject,
26     unsigned int index);
27
28   void setProtocolParms(
29     DirectvGapSize gap,
30     DirectvFreq freq);
31
32 private:
33   void startSendingCommand(
34     unsigned int threadableID,
35     PIRKeyName command);
36
37   int generateStandardCommand(
38     const PIRKeyBits &pkb,
39     PIRRX51Hardware &rx51device);
40
41   int pushDTVBits(
42     const CommandSequence &bits,
43     PIRRX51Hardware &device);
44
45   void generateChecksum(
46     const CommandSequence &bits,
47     CommandSequence &checksumBits);
48 };
49
50 #endif // DIRECTVPROTOCOL_H