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@3:17440cf7ab90, 2016-01-23 (annotated)
- Committer:
- yuhki50
- Date:
- Sat Jan 23 15:09:34 2016 +0000
- Revision:
- 3:17440cf7ab90
- Parent:
- 0:70c8e56bac45
porting
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 | 3:17440cf7ab90 | 154 | 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 | 3:17440cf7ab90 | 170 | IRrecv (PinName recvpin) ; |
yuhki50 | 0:70c8e56bac45 | 171 | int decode (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 172 | void enableIRIn ( ) ; |
yuhki50 | 3:17440cf7ab90 | 173 | void disableIRIn ( ) ; |
yuhki50 | 0:70c8e56bac45 | 174 | bool isIdle ( ) ; |
yuhki50 | 0:70c8e56bac45 | 175 | void resume ( ) ; |
yuhki50 | 0:70c8e56bac45 | 176 | |
yuhki50 | 0:70c8e56bac45 | 177 | private: |
yuhki50 | 3:17440cf7ab90 | 178 | void timer_isr (); |
yuhki50 | 0:70c8e56bac45 | 179 | long decodeHash (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 180 | int compare (unsigned int oldval, unsigned int newval) ; |
yuhki50 | 0:70c8e56bac45 | 181 | |
yuhki50 | 0:70c8e56bac45 | 182 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 183 | # if (DECODE_RC5 || DECODE_RC6) |
yuhki50 | 0:70c8e56bac45 | 184 | // This helper function is shared by RC5 and RC6 |
yuhki50 | 0:70c8e56bac45 | 185 | int getRClevel (decode_results *results, int *offset, int *used, int t1) ; |
yuhki50 | 0:70c8e56bac45 | 186 | # endif |
yuhki50 | 0:70c8e56bac45 | 187 | # if DECODE_RC5 |
yuhki50 | 0:70c8e56bac45 | 188 | bool decodeRC5 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 189 | # endif |
yuhki50 | 0:70c8e56bac45 | 190 | # if DECODE_RC6 |
yuhki50 | 0:70c8e56bac45 | 191 | bool decodeRC6 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 192 | # endif |
yuhki50 | 0:70c8e56bac45 | 193 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 194 | # if DECODE_NEC |
yuhki50 | 0:70c8e56bac45 | 195 | bool decodeNEC (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 196 | # endif |
yuhki50 | 0:70c8e56bac45 | 197 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 198 | # if DECODE_SONY |
yuhki50 | 0:70c8e56bac45 | 199 | bool decodeSony (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 200 | # endif |
yuhki50 | 0:70c8e56bac45 | 201 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 202 | # if DECODE_PANASONIC |
yuhki50 | 0:70c8e56bac45 | 203 | bool decodePanasonic (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 204 | # endif |
yuhki50 | 0:70c8e56bac45 | 205 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 206 | # if DECODE_JVC |
yuhki50 | 0:70c8e56bac45 | 207 | bool decodeJVC (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 208 | # endif |
yuhki50 | 0:70c8e56bac45 | 209 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 210 | # if DECODE_SAMSUNG |
yuhki50 | 0:70c8e56bac45 | 211 | bool decodeSAMSUNG (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 212 | # endif |
yuhki50 | 0:70c8e56bac45 | 213 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 214 | # if DECODE_WHYNTER |
yuhki50 | 0:70c8e56bac45 | 215 | bool decodeWhynter (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 216 | # endif |
yuhki50 | 0:70c8e56bac45 | 217 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 218 | # if DECODE_AIWA_RC_T501 |
yuhki50 | 0:70c8e56bac45 | 219 | bool decodeAiwaRCT501 (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 220 | # endif |
yuhki50 | 0:70c8e56bac45 | 221 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 222 | # if DECODE_LG |
yuhki50 | 0:70c8e56bac45 | 223 | bool decodeLG (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 224 | # endif |
yuhki50 | 0:70c8e56bac45 | 225 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 226 | # if DECODE_SANYO |
yuhki50 | 0:70c8e56bac45 | 227 | bool decodeSanyo (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 228 | # endif |
yuhki50 | 0:70c8e56bac45 | 229 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 230 | # if DECODE_MITSUBISHI |
yuhki50 | 0:70c8e56bac45 | 231 | bool decodeMitsubishi (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 232 | # endif |
yuhki50 | 0:70c8e56bac45 | 233 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 234 | # if DECODE_DISH |
yuhki50 | 0:70c8e56bac45 | 235 | bool decodeDish (decode_results *results) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 236 | # endif |
yuhki50 | 0:70c8e56bac45 | 237 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 238 | # if DECODE_SHARP |
yuhki50 | 0:70c8e56bac45 | 239 | bool decodeSharp (decode_results *results) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 240 | # endif |
yuhki50 | 0:70c8e56bac45 | 241 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 242 | # if DECODE_DENON |
yuhki50 | 0:70c8e56bac45 | 243 | bool decodeDenon (decode_results *results) ; |
yuhki50 | 0:70c8e56bac45 | 244 | # endif |
yuhki50 | 3:17440cf7ab90 | 245 | |
yuhki50 | 3:17440cf7ab90 | 246 | DigitalIn _recvpin; |
yuhki50 | 3:17440cf7ab90 | 247 | Ticker _ticker; |
yuhki50 | 3:17440cf7ab90 | 248 | irparams_t irparams; |
yuhki50 | 0:70c8e56bac45 | 249 | } ; |
yuhki50 | 0:70c8e56bac45 | 250 | |
yuhki50 | 0:70c8e56bac45 | 251 | //------------------------------------------------------------------------------ |
yuhki50 | 0:70c8e56bac45 | 252 | // Main class for sending IR |
yuhki50 | 0:70c8e56bac45 | 253 | // |
yuhki50 | 0:70c8e56bac45 | 254 | class IRsend |
yuhki50 | 0:70c8e56bac45 | 255 | { |
yuhki50 | 0:70c8e56bac45 | 256 | public: |
yuhki50 | 3:17440cf7ab90 | 257 | IRsend (PinName sendpin) : _pwm(sendpin) { } |
yuhki50 | 0:70c8e56bac45 | 258 | |
yuhki50 | 0:70c8e56bac45 | 259 | void custom_delay_usec (unsigned long uSecs); |
yuhki50 | 0:70c8e56bac45 | 260 | void enableIROut (int khz) ; |
yuhki50 | 0:70c8e56bac45 | 261 | void mark (unsigned int usec) ; |
yuhki50 | 0:70c8e56bac45 | 262 | void space (unsigned int usec) ; |
yuhki50 | 0:70c8e56bac45 | 263 | void sendRaw (unsigned int buf[], unsigned int len, unsigned int hz) ; |
yuhki50 | 0:70c8e56bac45 | 264 | |
yuhki50 | 0:70c8e56bac45 | 265 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 266 | # if SEND_RC5 |
yuhki50 | 0:70c8e56bac45 | 267 | void sendRC5 (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 268 | # endif |
yuhki50 | 0:70c8e56bac45 | 269 | # if SEND_RC6 |
yuhki50 | 0:70c8e56bac45 | 270 | void sendRC6 (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 271 | # endif |
yuhki50 | 0:70c8e56bac45 | 272 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 273 | # if SEND_NEC |
yuhki50 | 0:70c8e56bac45 | 274 | void sendNEC (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 275 | # endif |
yuhki50 | 0:70c8e56bac45 | 276 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 277 | # if SEND_SONY |
yuhki50 | 0:70c8e56bac45 | 278 | void sendSony (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 279 | # endif |
yuhki50 | 0:70c8e56bac45 | 280 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 281 | # if SEND_PANASONIC |
yuhki50 | 0:70c8e56bac45 | 282 | void sendPanasonic (unsigned int address, unsigned long data) ; |
yuhki50 | 0:70c8e56bac45 | 283 | # endif |
yuhki50 | 0:70c8e56bac45 | 284 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 285 | # if SEND_JVC |
yuhki50 | 0:70c8e56bac45 | 286 | // JVC does NOT repeat by sending a separate code (like NEC does). |
yuhki50 | 0:70c8e56bac45 | 287 | // The JVC protocol repeats by skipping the header. |
yuhki50 | 0:70c8e56bac45 | 288 | // To send a JVC repeat signal, send the original code value |
yuhki50 | 0:70c8e56bac45 | 289 | // and set 'repeat' to true |
yuhki50 | 0:70c8e56bac45 | 290 | void sendJVC (unsigned long data, int nbits, bool repeat) ; |
yuhki50 | 0:70c8e56bac45 | 291 | # endif |
yuhki50 | 0:70c8e56bac45 | 292 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 293 | # if SEND_SAMSUNG |
yuhki50 | 0:70c8e56bac45 | 294 | void sendSAMSUNG (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 295 | # endif |
yuhki50 | 0:70c8e56bac45 | 296 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 297 | # if SEND_WHYNTER |
yuhki50 | 0:70c8e56bac45 | 298 | void sendWhynter (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 299 | # endif |
yuhki50 | 0:70c8e56bac45 | 300 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 301 | # if SEND_AIWA_RC_T501 |
yuhki50 | 0:70c8e56bac45 | 302 | void sendAiwaRCT501 (int code) ; |
yuhki50 | 0:70c8e56bac45 | 303 | # endif |
yuhki50 | 0:70c8e56bac45 | 304 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 305 | # if SEND_LG |
yuhki50 | 0:70c8e56bac45 | 306 | void sendLG (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 307 | # endif |
yuhki50 | 0:70c8e56bac45 | 308 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 309 | # if SEND_SANYO |
yuhki50 | 0:70c8e56bac45 | 310 | void sendSanyo ( ) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 311 | # endif |
yuhki50 | 0:70c8e56bac45 | 312 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 313 | # if SEND_MISUBISHI |
yuhki50 | 0:70c8e56bac45 | 314 | void sendMitsubishi ( ) ; // NOT WRITTEN |
yuhki50 | 0:70c8e56bac45 | 315 | # endif |
yuhki50 | 0:70c8e56bac45 | 316 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 317 | # if SEND_DISH |
yuhki50 | 0:70c8e56bac45 | 318 | void sendDISH (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 319 | # endif |
yuhki50 | 0:70c8e56bac45 | 320 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 321 | # if SEND_SHARP |
yuhki50 | 0:70c8e56bac45 | 322 | void sendSharpRaw (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 323 | void sendSharp (unsigned int address, unsigned int command) ; |
yuhki50 | 0:70c8e56bac45 | 324 | # endif |
yuhki50 | 0:70c8e56bac45 | 325 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 326 | # if SEND_DENON |
yuhki50 | 0:70c8e56bac45 | 327 | void sendDenon (unsigned long data, int nbits) ; |
yuhki50 | 0:70c8e56bac45 | 328 | # endif |
yuhki50 | 0:70c8e56bac45 | 329 | //...................................................................... |
yuhki50 | 0:70c8e56bac45 | 330 | # if SEND_PRONTO |
yuhki50 | 0:70c8e56bac45 | 331 | void sendPronto (char* code, bool repeat, bool fallback) ; |
yuhki50 | 0:70c8e56bac45 | 332 | # endif |
yuhki50 | 3:17440cf7ab90 | 333 | |
yuhki50 | 3:17440cf7ab90 | 334 | PwmOut _pwm; |
yuhki50 | 0:70c8e56bac45 | 335 | } ; |
yuhki50 | 0:70c8e56bac45 | 336 | |
yuhki50 | 0:70c8e56bac45 | 337 | #endif |