Infrared remote library for Arduino: send and receive infrared signals with multiple protocols Port from Arduino-IRremote https://github.com/z3t0/Arduino-IRremote
IRremote.h@0:70c8e56bac45, 2016-01-23 (annotated)
- Committer:
- yuhki50
- Date:
- Sat Jan 23 06:16:48 2016 +0000
- Revision:
- 0:70c8e56bac45
- Child:
- 3:17440cf7ab90
import https://github.com/z3t0/Arduino-IRremote e3ec11d
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yuhki50 | 0:70c8e56bac45 | 1 | |
yuhki50 | 0:70c8e56bac45 | 2 | //****************************************************************************** |
yuhki50 | 0:70c8e56bac45 | 3 | // IRremote |
yuhki50 | 0:70c8e56bac45 | 4 | // Version 2.0.1 June, 2015 |
yuhki50 | 0:70c8e56bac45 | 5 | // Copyright 2009 Ken Shirriff |
yuhki50 | 0:70c8e56bac45 | 6 | // For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html |
yuhki50 | 0:70c8e56bac45 | 7 | // Edited by Mitra to add new controller SANYO |
yuhki50 | 0:70c8e56bac45 | 8 | // |
yuhki50 | 0:70c8e56bac45 | 9 | // Interrupt code based on NECIRrcv by Joe Knapp |
yuhki50 | 0:70c8e56bac45 | 10 | // http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 |
yuhki50 | 0:70c8e56bac45 | 11 | // Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ |
yuhki50 | 0:70c8e56bac45 | 12 | // |
yuhki50 | 0:70c8e56bac45 | 13 | // JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) |
yuhki50 | 0:70c8e56bac45 | 14 | // LG added by Darryl Smith (based on the JVC protocol) |
yuhki50 | 0:70c8e56bac45 | 15 | // Whynter A/C ARC-110WD added by Francesco Meschia |
yuhki50 | 0:70c8e56bac45 | 16 | //****************************************************************************** |
yuhki50 | 0:70c8e56bac45 | 17 | |
yuhki50 | 0:70c8e56bac45 | 18 | #ifndef IRremote_h |
yuhki50 | 0:70c8e56bac45 | 19 | #define IRremote_h |
yuhki50 | 0:70c8e56bac45 | 20 | |
yuhki50 | 0:70c8e56bac45 | 21 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 22 | // The ISR header contains several useful macros the user may wish to use |
yuhki50 | 0:70c8e56bac45 | 23 | // |
yuhki50 | 0:70c8e56bac45 | 24 | #include "IRremoteInt.h" |
yuhki50 | 0:70c8e56bac45 | 25 | |
yuhki50 | 0:70c8e56bac45 | 26 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 27 | // Supported IR protocols |
yuhki50 | 0:70c8e56bac45 | 28 | // Each protocol you include costs memory and, during decode, costs time |
yuhki50 | 0:70c8e56bac45 | 29 | // Disable (set to 0) all the protocols you do not need/want! |
yuhki50 | 0:70c8e56bac45 | 30 | // |
yuhki50 | 0:70c8e56bac45 | 31 | #define DECODE_RC5 1 |
yuhki50 | 0:70c8e56bac45 | 32 | #define SEND_RC5 1 |
yuhki50 | 0:70c8e56bac45 | 33 | |
yuhki50 | 0:70c8e56bac45 | 34 | #define DECODE_RC6 1 |
yuhki50 | 0:70c8e56bac45 | 35 | #define SEND_RC6 1 |
yuhki50 | 0:70c8e56bac45 | 36 | |
yuhki50 | 0:70c8e56bac45 | 37 | #define DECODE_NEC 1 |
yuhki50 | 0:70c8e56bac45 | 38 | #define SEND_NEC 1 |
yuhki50 | 0:70c8e56bac45 | 39 | |
yuhki50 | 0:70c8e56bac45 | 40 | #define DECODE_SONY 1 |
yuhki50 | 0:70c8e56bac45 | 41 | #define SEND_SONY 1 |
yuhki50 | 0:70c8e56bac45 | 42 | |
yuhki50 | 0:70c8e56bac45 | 43 | #define DECODE_PANASONIC 1 |
yuhki50 | 0:70c8e56bac45 | 44 | #define SEND_PANASONIC 1 |
yuhki50 | 0:70c8e56bac45 | 45 | |
yuhki50 | 0:70c8e56bac45 | 46 | #define DECODE_JVC 1 |
yuhki50 | 0:70c8e56bac45 | 47 | #define SEND_JVC 1 |
yuhki50 | 0:70c8e56bac45 | 48 | |
yuhki50 | 0:70c8e56bac45 | 49 | #define DECODE_SAMSUNG 1 |
yuhki50 | 0:70c8e56bac45 | 50 | #define SEND_SAMSUNG 1 |
yuhki50 | 0:70c8e56bac45 | 51 | |
yuhki50 | 0:70c8e56bac45 | 52 | #define DECODE_WHYNTER 1 |
yuhki50 | 0:70c8e56bac45 | 53 | #define SEND_WHYNTER 1 |
yuhki50 | 0:70c8e56bac45 | 54 | |
yuhki50 | 0:70c8e56bac45 | 55 | #define DECODE_AIWA_RC_T501 1 |
yuhki50 | 0:70c8e56bac45 | 56 | #define SEND_AIWA_RC_T501 1 |
yuhki50 | 0:70c8e56bac45 | 57 | |
yuhki50 | 0:70c8e56bac45 | 58 | #define DECODE_LG 1 |
yuhki50 | 0:70c8e56bac45 | 59 | #define SEND_LG 1 |
yuhki50 | 0:70c8e56bac45 | 60 | |
yuhki50 | 0:70c8e56bac45 | 61 | #define DECODE_SANYO 1 |
yuhki50 | 0:70c8e56bac45 | 62 | #define SEND_SANYO 0 // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 63 | |
yuhki50 | 0:70c8e56bac45 | 64 | #define DECODE_MITSUBISHI 1 |
yuhki50 | 0:70c8e56bac45 | 65 | #define SEND_MITSUBISHI 0 // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 66 | |
yuhki50 | 0:70c8e56bac45 | 67 | #define DECODE_DISH 0 // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 68 | #define SEND_DISH 1 |
yuhki50 | 0:70c8e56bac45 | 69 | |
yuhki50 | 0:70c8e56bac45 | 70 | #define DECODE_SHARP 0 // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 71 | #define SEND_SHARP 1 |
yuhki50 | 0:70c8e56bac45 | 72 | |
yuhki50 | 0:70c8e56bac45 | 73 | #define DECODE_DENON 1 |
yuhki50 | 0:70c8e56bac45 | 74 | #define SEND_DENON 1 |
yuhki50 | 0:70c8e56bac45 | 75 | |
yuhki50 | 0:70c8e56bac45 | 76 | #define DECODE_PRONTO 0 // This function doe not logically make sense |
yuhki50 | 0:70c8e56bac45 | 77 | #define SEND_PRONTO 1 |
yuhki50 | 0:70c8e56bac45 | 78 | |
yuhki50 | 0:70c8e56bac45 | 79 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 80 | // When sending a Pronto code we request to send either the "once" code |
yuhki50 | 0:70c8e56bac45 | 81 | // or the "repeat" code |
yuhki50 | 0:70c8e56bac45 | 82 | // If the code requested does not exist we can request to fallback on the |
yuhki50 | 0:70c8e56bac45 | 83 | // other code (the one we did not explicitly request) |
yuhki50 | 0:70c8e56bac45 | 84 | // |
yuhki50 | 0:70c8e56bac45 | 85 | // I would suggest that "fallback" will be the standard calling method |
yuhki50 | 0:70c8e56bac45 | 86 | // The last paragraph on this page discusses the rationale of this idea: |
yuhki50 | 0:70c8e56bac45 | 87 | // http://www.remotecentral.com/features/irdisp2.htm |
yuhki50 | 0:70c8e56bac45 | 88 | // |
yuhki50 | 0:70c8e56bac45 | 89 | #define PRONTO_ONCE false |
yuhki50 | 0:70c8e56bac45 | 90 | #define PRONTO_REPEAT true |
yuhki50 | 0:70c8e56bac45 | 91 | #define PRONTO_FALLBACK true |
yuhki50 | 0:70c8e56bac45 | 92 | #define PRONTO_NOFALLBACK false |
yuhki50 | 0:70c8e56bac45 | 93 | |
yuhki50 | 0:70c8e56bac45 | 94 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 95 | // An enumerated list of all supported formats |
yuhki50 | 0:70c8e56bac45 | 96 | // You do NOT need to remove entries from this list when disabling protocols! |
yuhki50 | 0:70c8e56bac45 | 97 | // |
yuhki50 | 0:70c8e56bac45 | 98 | typedef |
yuhki50 | 0:70c8e56bac45 | 99 | enum { |
yuhki50 | 0:70c8e56bac45 | 100 | UNKNOWN = -1, |
yuhki50 | 0:70c8e56bac45 | 101 | UNUSED = 0, |
yuhki50 | 0:70c8e56bac45 | 102 | RC5, |
yuhki50 | 0:70c8e56bac45 | 103 | RC6, |
yuhki50 | 0:70c8e56bac45 | 104 | NEC, |
yuhki50 | 0:70c8e56bac45 | 105 | SONY, |
yuhki50 | 0:70c8e56bac45 | 106 | PANASONIC, |
yuhki50 | 0:70c8e56bac45 | 107 | JVC, |
yuhki50 | 0:70c8e56bac45 | 108 | SAMSUNG, |
yuhki50 | 0:70c8e56bac45 | 109 | WHYNTER, |
yuhki50 | 0:70c8e56bac45 | 110 | AIWA_RC_T501, |
yuhki50 | 0:70c8e56bac45 | 111 | LG, |
yuhki50 | 0:70c8e56bac45 | 112 | SANYO, |
yuhki50 | 0:70c8e56bac45 | 113 | MITSUBISHI, |
yuhki50 | 0:70c8e56bac45 | 114 | DISH, |
yuhki50 | 0:70c8e56bac45 | 115 | SHARP, |
yuhki50 | 0:70c8e56bac45 | 116 | DENON, |
yuhki50 | 0:70c8e56bac45 | 117 | PRONTO, |
yuhki50 | 0:70c8e56bac45 | 118 | } |
yuhki50 | 0:70c8e56bac45 | 119 | decode_type_t; |
yuhki50 | 0:70c8e56bac45 | 120 | |
yuhki50 | 0:70c8e56bac45 | 121 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 122 | // Set DEBUG to 1 for lots of lovely debug output |
yuhki50 | 0:70c8e56bac45 | 123 | // |
yuhki50 | 0:70c8e56bac45 | 124 | #define DEBUG 0 |
yuhki50 | 0:70c8e56bac45 | 125 | |
yuhki50 | 0:70c8e56bac45 | 126 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 127 | // Debug directives |
yuhki50 | 0:70c8e56bac45 | 128 | // |
yuhki50 | 0:70c8e56bac45 | 129 | #if DEBUG |
yuhki50 | 0:70c8e56bac45 | 130 | # define DBG_PRINT(...) Serial.print(__VA_ARGS__) |
yuhki50 | 0:70c8e56bac45 | 131 | # define DBG_PRINTLN(...) Serial.println(__VA_ARGS__) |
yuhki50 | 0:70c8e56bac45 | 132 | #else |
yuhki50 | 0:70c8e56bac45 | 133 | # define DBG_PRINT(...) |
yuhki50 | 0:70c8e56bac45 | 134 | # define DBG_PRINTLN(...) |
yuhki50 | 0:70c8e56bac45 | 135 | #endif |
yuhki50 | 0:70c8e56bac45 | 136 | |
yuhki50 | 0:70c8e56bac45 | 137 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 138 | // Mark & Space matching functions |
yuhki50 | 0:70c8e56bac45 | 139 | // |
yuhki50 | 0:70c8e56bac45 | 140 | int MATCH (int measured, int desired) ; |
yuhki50 | 0:70c8e56bac45 | 141 | int MATCH_MARK (int measured_ticks, int desired_us) ; |
yuhki50 | 0:70c8e56bac45 | 142 | int MATCH_SPACE (int measured_ticks, int desired_us) ; |
yuhki50 | 0:70c8e56bac45 | 143 | |
yuhki50 | 0:70c8e56bac45 | 144 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 145 | // Results returned from the decoder |
yuhki50 | 0:70c8e56bac45 | 146 | // |
yuhki50 | 0:70c8e56bac45 | 147 | class decode_results |
yuhki50 | 0:70c8e56bac45 | 148 | { |
yuhki50 | 0:70c8e56bac45 | 149 | public: |
yuhki50 | 0:70c8e56bac45 | 150 | decode_type_t decode_type; // UNKNOWN, NEC, SONY, RC5, ... |
yuhki50 | 0:70c8e56bac45 | 151 | unsigned int address; // Used by Panasonic & Sharp [16-bits] |
yuhki50 | 0:70c8e56bac45 | 152 | unsigned long value; // Decoded value [max 32-bits] |
yuhki50 | 0:70c8e56bac45 | 153 | int bits; // Number of bits in decoded value |
yuhki50 | 0:70c8e56bac45 | 154 | volatile unsigned int *rawbuf; // Raw intervals in 50uS ticks |
yuhki50 | 0:70c8e56bac45 | 155 | int rawlen; // Number of records in rawbuf |
yuhki50 | 0:70c8e56bac45 | 156 | int overflow; // true iff IR raw code too long |
yuhki50 | 0:70c8e56bac45 | 157 | }; |
yuhki50 | 0:70c8e56bac45 | 158 | |
yuhki50 | 0:70c8e56bac45 | 159 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 160 | // Decoded value for NEC when a repeat code is received |
yuhki50 | 0:70c8e56bac45 | 161 | // |
yuhki50 | 0:70c8e56bac45 | 162 | #define REPEAT 0xFFFFFFFF |
yuhki50 | 0:70c8e56bac45 | 163 | |
yuhki50 | 0:70c8e56bac45 | 164 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 165 | // Main class for receiving IR |
yuhki50 | 0:70c8e56bac45 | 166 | // |
yuhki50 | 0:70c8e56bac45 | 167 | class IRrecv |
yuhki50 | 0:70c8e56bac45 | 168 | { |
yuhki50 | 0:70c8e56bac45 | 169 | public: |
yuhki50 | 0:70c8e56bac45 | 170 | IRrecv (int recvpin) ; |
yuhki50 | 0:70c8e56bac45 | 171 | IRrecv (int recvpin, int blinkpin); |
yuhki50 | 0:70c8e56bac45 | 172 | |
yuhki50 | 0:70c8e56bac45 | 173 | void blink13 (int blinkflag) ; |
yuhki50 | 0:70c8e56bac45 | 174 | int decode (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 175 | void enableIRIn ( ) ; |
yuhki50 | 0:70c8e56bac45 | 176 | bool isIdle ( ) ; |
yuhki50 | 0:70c8e56bac45 | 177 | void resume ( ) ; |
yuhki50 | 0:70c8e56bac45 | 178 | |
yuhki50 | 0:70c8e56bac45 | 179 | private: |
yuhki50 | 0:70c8e56bac45 | 180 | long decodeHash (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 181 | int compare (unsigned int oldval, unsigned int newval) ; |
yuhki50 | 0:70c8e56bac45 | 182 | |
yuhki50 | 0:70c8e56bac45 | 183 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 184 | # if (DECODE_RC5 || DECODE_RC6) |
yuhki50 | 0:70c8e56bac45 | 185 | // This helper function is shared by RC5 and RC6 |
yuhki50 | 0:70c8e56bac45 | 186 | int getRClevel (decode_results *results, int *offset, int *used, int t1) ; |
yuhki50 | 0:70c8e56bac45 | 187 | # endif |
yuhki50 | 0:70c8e56bac45 | 188 | # if DECODE_RC5 |
yuhki50 | 0:70c8e56bac45 | 189 | bool decodeRC5 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 190 | # endif |
yuhki50 | 0:70c8e56bac45 | 191 | # if DECODE_RC6 |
yuhki50 | 0:70c8e56bac45 | 192 | bool decodeRC6 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 193 | # endif |
yuhki50 | 0:70c8e56bac45 | 194 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 195 | # if DECODE_NEC |
yuhki50 | 0:70c8e56bac45 | 196 | bool decodeNEC (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 197 | # endif |
yuhki50 | 0:70c8e56bac45 | 198 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 199 | # if DECODE_SONY |
yuhki50 | 0:70c8e56bac45 | 200 | bool decodeSony (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 201 | # endif |
yuhki50 | 0:70c8e56bac45 | 202 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 203 | # if DECODE_PANASONIC |
yuhki50 | 0:70c8e56bac45 | 204 | bool decodePanasonic (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 205 | # endif |
yuhki50 | 0:70c8e56bac45 | 206 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 207 | # if DECODE_JVC |
yuhki50 | 0:70c8e56bac45 | 208 | bool decodeJVC (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 209 | # endif |
yuhki50 | 0:70c8e56bac45 | 210 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 211 | # if DECODE_SAMSUNG |
yuhki50 | 0:70c8e56bac45 | 212 | bool decodeSAMSUNG (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 213 | # endif |
yuhki50 | 0:70c8e56bac45 | 214 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 215 | # if DECODE_WHYNTER |
yuhki50 | 0:70c8e56bac45 | 216 | bool decodeWhynter (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 217 | # endif |
yuhki50 | 0:70c8e56bac45 | 218 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 219 | # if DECODE_AIWA_RC_T501 |
yuhki50 | 0:70c8e56bac45 | 220 | bool decodeAiwaRCT501 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 221 | # endif |
yuhki50 | 0:70c8e56bac45 | 222 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 223 | # if DECODE_LG |
yuhki50 | 0:70c8e56bac45 | 224 | bool decodeLG (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 225 | # endif |
yuhki50 | 0:70c8e56bac45 | 226 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 227 | # if DECODE_SANYO |
yuhki50 | 0:70c8e56bac45 | 228 | bool decodeSanyo (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 229 | # endif |
yuhki50 | 0:70c8e56bac45 | 230 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 231 | # if DECODE_MITSUBISHI |
yuhki50 | 0:70c8e56bac45 | 232 | bool decodeMitsubishi (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 233 | # endif |
yuhki50 | 0:70c8e56bac45 | 234 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 235 | # if DECODE_DISH |
yuhki50 | 0:70c8e56bac45 | 236 | bool decodeDish (decode_results *results) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 237 | # endif |
yuhki50 | 0:70c8e56bac45 | 238 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 239 | # if DECODE_SHARP |
yuhki50 | 0:70c8e56bac45 | 240 | bool decodeSharp (decode_results *results) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 241 | # endif |
yuhki50 | 0:70c8e56bac45 | 242 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 243 | # if DECODE_DENON |
yuhki50 | 0:70c8e56bac45 | 244 | bool decodeDenon (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 245 | # endif |
yuhki50 | 0:70c8e56bac45 | 246 | } ; |
yuhki50 | 0:70c8e56bac45 | 247 | |
yuhki50 | 0:70c8e56bac45 | 248 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 249 | // Main class for sending IR |
yuhki50 | 0:70c8e56bac45 | 250 | // |
yuhki50 | 0:70c8e56bac45 | 251 | class IRsend |
yuhki50 | 0:70c8e56bac45 | 252 | { |
yuhki50 | 0:70c8e56bac45 | 253 | public: |
yuhki50 | 0:70c8e56bac45 | 254 | IRsend () { } |
yuhki50 | 0:70c8e56bac45 | 255 | |
yuhki50 | 0:70c8e56bac45 | 256 | void custom_delay_usec (unsigned long uSecs); |
yuhki50 | 0:70c8e56bac45 | 257 | void enableIROut (int khz) ; |
yuhki50 | 0:70c8e56bac45 | 258 | void mark (unsigned int usec) ; |
yuhki50 | 0:70c8e56bac45 | 259 | void space (unsigned int usec) ; |
yuhki50 | 0:70c8e56bac45 | 260 | void sendRaw (unsigned int buf[], unsigned int len, unsigned int hz) ; |
yuhki50 | 0:70c8e56bac45 | 261 | |
yuhki50 | 0:70c8e56bac45 | 262 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 263 | # if SEND_RC5 |
yuhki50 | 0:70c8e56bac45 | 264 | void sendRC5 (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 265 | # endif |
yuhki50 | 0:70c8e56bac45 | 266 | # if SEND_RC6 |
yuhki50 | 0:70c8e56bac45 | 267 | void sendRC6 (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 268 | # endif |
yuhki50 | 0:70c8e56bac45 | 269 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 270 | # if SEND_NEC |
yuhki50 | 0:70c8e56bac45 | 271 | void sendNEC (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 272 | # endif |
yuhki50 | 0:70c8e56bac45 | 273 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 274 | # if SEND_SONY |
yuhki50 | 0:70c8e56bac45 | 275 | void sendSony (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 276 | # endif |
yuhki50 | 0:70c8e56bac45 | 277 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 278 | # if SEND_PANASONIC |
yuhki50 | 0:70c8e56bac45 | 279 | void sendPanasonic (unsigned int address, unsigned long data) ; |
yuhki50 | 0:70c8e56bac45 | 280 | # endif |
yuhki50 | 0:70c8e56bac45 | 281 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 282 | # if SEND_JVC |
yuhki50 | 0:70c8e56bac45 | 283 | // JVC does NOT repeat by sending a separate code (like NEC does). |
yuhki50 | 0:70c8e56bac45 | 284 | // The JVC protocol repeats by skipping the header. |
yuhki50 | 0:70c8e56bac45 | 285 | // To send a JVC repeat signal, send the original code value |
yuhki50 | 0:70c8e56bac45 | 286 | // and set 'repeat' to true |
yuhki50 | 0:70c8e56bac45 | 287 | void sendJVC (unsigned long data, int nbits, bool repeat) ; |
yuhki50 | 0:70c8e56bac45 | 288 | # endif |
yuhki50 | 0:70c8e56bac45 | 289 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 290 | # if SEND_SAMSUNG |
yuhki50 | 0:70c8e56bac45 | 291 | void sendSAMSUNG (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 292 | # endif |
yuhki50 | 0:70c8e56bac45 | 293 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 294 | # if SEND_WHYNTER |
yuhki50 | 0:70c8e56bac45 | 295 | void sendWhynter (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 296 | # endif |
yuhki50 | 0:70c8e56bac45 | 297 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 298 | # if SEND_AIWA_RC_T501 |
yuhki50 | 0:70c8e56bac45 | 299 | void sendAiwaRCT501 (int code) ; |
yuhki50 | 0:70c8e56bac45 | 300 | # endif |
yuhki50 | 0:70c8e56bac45 | 301 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 302 | # if SEND_LG |
yuhki50 | 0:70c8e56bac45 | 303 | void sendLG (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 304 | # endif |
yuhki50 | 0:70c8e56bac45 | 305 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 306 | # if SEND_SANYO |
yuhki50 | 0:70c8e56bac45 | 307 | void sendSanyo ( ) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 308 | # endif |
yuhki50 | 0:70c8e56bac45 | 309 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 310 | # if SEND_MISUBISHI |
yuhki50 | 0:70c8e56bac45 | 311 | void sendMitsubishi ( ) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 312 | # endif |
yuhki50 | 0:70c8e56bac45 | 313 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 314 | # if SEND_DISH |
yuhki50 | 0:70c8e56bac45 | 315 | void sendDISH (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 316 | # endif |
yuhki50 | 0:70c8e56bac45 | 317 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 318 | # if SEND_SHARP |
yuhki50 | 0:70c8e56bac45 | 319 | void sendSharpRaw (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 320 | void sendSharp (unsigned int address, unsigned int command) ; |
yuhki50 | 0:70c8e56bac45 | 321 | # endif |
yuhki50 | 0:70c8e56bac45 | 322 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 323 | # if SEND_DENON |
yuhki50 | 0:70c8e56bac45 | 324 | void sendDenon (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 325 | # endif |
yuhki50 | 0:70c8e56bac45 | 326 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 327 | # if SEND_PRONTO |
yuhki50 | 0:70c8e56bac45 | 328 | void sendPronto (char* code, bool repeat, bool fallback) ; |
yuhki50 | 0:70c8e56bac45 | 329 | # endif |
yuhki50 | 0:70c8e56bac45 | 330 | } ; |
yuhki50 | 0:70c8e56bac45 | 331 | |
yuhki50 | 0:70c8e56bac45 | 332 | #endif |