Advanced Settings Panel
[pierogi] / protocols / rc6skyprotocol.h
1 #ifndef RC6SKYPROTOCOL_H
2 #define RC6SKYPROTOCOL_H
3
4 #include "pirprotocol.h"
5
6 class PIRRX51Hardware;
7
8 //
9 // The Sky protocol is a fairly close implementation of RC6 mode 6.
10 //
11
12 class RC6SkyProtocol: public PIRProtocol
13 {
14 public:
15   RC6SkyProtocol(
16     QObject *guiObject,
17     unsigned int index);
18
19 public slots:
20   void startSendingCommand(
21     unsigned int threadableID,
22     PIRKeyName command);
23
24 private:
25   int pushBits(
26     const CommandSequence &bits,
27     PIRRX51Hardware &device);
28
29   int pushZero(
30     PIRRX51Hardware &device);
31
32   int pushOne(
33     PIRRX51Hardware &device);
34
35   unsigned int biphaseUnit;
36
37   unsigned int buffer;
38   int keypressCount;
39
40   bool bufferContainsSpace;
41   bool bufferContainsPulse;
42 };
43
44 #endif // RC6SKYPROTOCOL_H