Mirror with some correction

Dependencies:   mbed FastIO FastPWM USBDevice

Committer:
arnoz
Date:
Fri Oct 01 08:19:46 2021 +0000
Revision:
116:7a67265d7c19
Parent:
77:0b96f6867312
- Correct information regarding your last merge

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mjr 77:0b96f6867312 1 // IR Protocol List
mjr 77:0b96f6867312 2 //
mjr 77:0b96f6867312 3 // This file provides a list of the protocol singletons. It's
mjr 77:0b96f6867312 4 // designed to be included multiple times in the compilation.
mjr 77:0b96f6867312 5 // On each inclusion, we insert a desired bit of code for each
mjr 77:0b96f6867312 6 // of the singletons. We use this to declare all of the singleton
mjr 77:0b96f6867312 7 // instances, then to call various methods in all of them.
mjr 77:0b96f6867312 8 //
mjr 77:0b96f6867312 9 // By convention, the singletons are named s_ClassName.
mjr 77:0b96f6867312 10 //
mjr 77:0b96f6867312 11 // To use this file, #define ONE of the following macros:
mjr 77:0b96f6867312 12 //
mjr 77:0b96f6867312 13 // * IR_PROTOCOL_RXTX(className) - define this if you want to include
mjr 77:0b96f6867312 14 // expansions for all of the protocol classes, send or receive. This
mjr 77:0b96f6867312 15 // includes the dual use classes, the send-only classes, and the
mjr 77:0b96f6867312 16 // receive-only classes.
mjr 77:0b96f6867312 17 //
mjr 77:0b96f6867312 18 // * IR_PROTOCOL_RX(className) - define this if you only want to include
mjr 77:0b96f6867312 19 // expansions for RECEIVER protocol classes. This includes dual-purpose
mjr 77:0b96f6867312 20 // classes with both sender and receiver, plus the receive-only classes.
mjr 77:0b96f6867312 21 //
mjr 77:0b96f6867312 22 // * IR_PROTOCOL_TX(className) - define this if you only want to include
mjr 77:0b96f6867312 23 // expansions for TRANSMITTER protocol classes. This includes the
mjr 77:0b96f6867312 24 // dual-purpose classes with both sender and receiver, plus the
mjr 77:0b96f6867312 25 // transmit-only classes.
mjr 77:0b96f6867312 26 //
mjr 77:0b96f6867312 27 // After #define'ing the desired macro, #include this file. This file
mjr 77:0b96f6867312 28 // can be #include'd multiple times in one file for different expansions
mjr 77:0b96f6867312 29 // of the list.
mjr 77:0b96f6867312 30
mjr 77:0b96f6867312 31
mjr 77:0b96f6867312 32 // Internally, we use the same three macros:
mjr 77:0b96f6867312 33 //
mjr 77:0b96f6867312 34 // IR_PROTOCOL_RXTX(className) - define a send/receive class
mjr 77:0b96f6867312 35 // IR_PROTOCOL_RX(className) - define a send-only class
mjr 77:0b96f6867312 36 // IR_PROTOCOL_TX(className) - define a receive-only class
mjr 77:0b96f6867312 37 //
mjr 77:0b96f6867312 38 // To set things up, see which one the caller defined, and implicitly
mjr 77:0b96f6867312 39 // create expansions for the other two. If the caller wants all classes,
mjr 77:0b96f6867312 40 // define _RX and _TX to expand to the same thing as _RXTX. If the caller
mjr 77:0b96f6867312 41 // only wants senders, define _RXTX to expand to _TX, and define _RX to
mjr 77:0b96f6867312 42 // empty. Vice versa with receive-only.
mjr 77:0b96f6867312 43 //
mjr 77:0b96f6867312 44 #if defined(IR_PROTOCOL_RXTX)
mjr 77:0b96f6867312 45 # define IR_PROTOCOL_RX(cls) IR_PROTOCOL_RXTX(cls)
mjr 77:0b96f6867312 46 # define IR_PROTOCOL_TX(cls) IR_PROTOCOL_RXTX(cls)
mjr 77:0b96f6867312 47 #elif defined(IR_PROTOCOL_RX)
mjr 77:0b96f6867312 48 # define IR_PROTOCOL_RXTX(cls) IR_PROTOCOL_RX(cls)
mjr 77:0b96f6867312 49 # define IR_PROTOCOL_TX(cls)
mjr 77:0b96f6867312 50 #elif defined(IR_PROTOCOL_TX)
mjr 77:0b96f6867312 51 # define IR_PROTOCOL_RXTX(cls) IR_PROTOCOL_TX(cls)
mjr 77:0b96f6867312 52 # define IR_PROTOCOL_RX(cls)
mjr 77:0b96f6867312 53 #endif
mjr 77:0b96f6867312 54
mjr 77:0b96f6867312 55 // define the protocol handlers
mjr 77:0b96f6867312 56 IR_PROTOCOL_RXTX(IRPNEC_32_48)
mjr 77:0b96f6867312 57 IR_PROTOCOL_RXTX(IRPNEC_32x)
mjr 77:0b96f6867312 58 IR_PROTOCOL_RXTX(IRPRC5)
mjr 77:0b96f6867312 59 IR_PROTOCOL_RXTX(IRPRC6)
mjr 77:0b96f6867312 60 IR_PROTOCOL_RXTX(IRPSony)
mjr 77:0b96f6867312 61 IR_PROTOCOL_RXTX(IRPDenon)
mjr 77:0b96f6867312 62 IR_PROTOCOL_RXTX(IRPKaseikyo)
mjr 77:0b96f6867312 63 IR_PROTOCOL_RXTX(IRPSamsung20)
mjr 77:0b96f6867312 64 IR_PROTOCOL_RXTX(IRPSamsung36)
mjr 77:0b96f6867312 65 IR_PROTOCOL_RXTX(IRPLutron)
mjr 77:0b96f6867312 66 IR_PROTOCOL_RXTX(IRPOrtekMCE)
mjr 77:0b96f6867312 67
mjr 77:0b96f6867312 68 // clear the macros to make way for future definitions
mjr 77:0b96f6867312 69 #undef IR_PROTOCOL_RXTX
mjr 77:0b96f6867312 70 #undef IR_PROTOCOL_RX
mjr 77:0b96f6867312 71 #undef IR_PROTOCOL_TX