Advanced Settings Panel
[pierogi] / protocols / jvcprotocol.h
1 #ifndef JVCPROTOCOL_H
2 #define JVCPROTOCOL_H
3
4 #include "spaceprotocol.h"
5
6 class PIRRX51Hardware;
7
8 //
9 // JVC has its own protocol, similar in some ways to the popular NEC protocol.
10 // The main differences are that the address and command segments are not
11 // sent with an inverted copy, and that repeats are implemented by sending
12 // the body without a header, rather than a header without a body.
13 //
14
15 class JVCProtocol: public SpaceProtocol
16 {
17 public:
18   JVCProtocol(
19     QObject *guiObject,
20     unsigned int index);
21
22 public slots:
23   void startSendingCommand(
24     unsigned int threadableID,
25     PIRKeyName command);
26
27 private:
28   int generateStandardCommand(
29     const PIRKeyBits &pkb,
30     PIRRX51Hardware &device);
31
32   int generateHeadlessCommand(
33     const PIRKeyBits &pkb,
34     PIRRX51Hardware &device);
35 };
36
37 #endif // JVCPROTOCOL_H