* Main class for sending IR signals */
| 513 | * Main class for sending IR signals |
| 514 | */ |
| 515 | class IRsend { |
| 516 | public: |
| 517 | IRsend(); |
| 518 | |
| 519 | /* |
| 520 | * IR_SEND_PIN is defined or fixed by timer, value of IR_SEND_PIN is then "DeterminedByTimer" |
| 521 | */ |
| 522 | #if defined(IR_SEND_PIN) |
| 523 | void begin(); |
| 524 | // The default parameter allowed to specify IrSender.begin(7); without errors, if IR_SEND_PIN was defined. But the semantics is not the one the user expect. |
| 525 | void begin(uint_fast8_t aFeedbackLEDPin); |
| 526 | #else |
| 527 | IRsend(uint_fast8_t aSendPin); |
| 528 | void begin(uint_fast8_t aSendPin); |
| 529 | void setSendPin(uint_fast8_t aSendPin); // required if we use IRsend() as constructor |
| 530 | #endif |
| 531 | void begin(uint_fast8_t aSendPin, uint_fast8_t aFeedbackLEDPin); // aFeedbackLEDPin is by default USE_DEFAULT_FEEDBACK_LED_PIN |
| 532 | void begin(uint_fast8_t aSendPin, bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin) |
| 533 | # if !defined (DOXYGEN) |
| 534 | __attribute__ ((deprecated ("Use begin(aSendPin, aFeedbackLEDPin) instead."))); |
| 535 | # endif |
| 536 | |
| 537 | size_t write(IRData *aIRSendData, int_fast8_t aNumberOfRepeats = NO_REPEATS); |
| 538 | size_t write(decode_type_t aProtocol, uint16_t aAddress, uint16_t aCommand, int_fast8_t aNumberOfRepeats = NO_REPEATS); |
| 539 | |
| 540 | void enableIROut(uint_fast8_t aFrequencyKHz); |
| 541 | #if defined(SEND_PWM_BY_TIMER) |
| 542 | void enableHighFrequencyIROut(uint_fast16_t aFrequencyKHz); // Used for Bang&Olufsen |
| 543 | #endif |
| 544 | |
| 545 | /* |
| 546 | * Array functions |
| 547 | */ |
| 548 | void sendPulseDistanceWidthFromArray(uint_fast8_t aFrequencyKHz, uint16_t aHeaderMarkMicros, uint16_t aHeaderSpaceMicros, |
| 549 | uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, |
| 550 | IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, |
| 551 | int_fast8_t aNumberOfRepeats); |
| 552 | void sendPulseDistanceWidthFromPGMArray(uint_fast8_t aFrequencyKHz, uint16_t aHeaderMarkMicros, uint16_t aHeaderSpaceMicros, |
| 553 | uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, |
| 554 | IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, uint8_t aFlags, |
| 555 | uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats); |
| 556 | void sendPulseDistanceWidthFromArray(PulseDistanceWidthProtocolConstants *aProtocolConstants, |
| 557 | IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats); |
| 558 | void sendPulseDistanceWidthFromPGMArray(PulseDistanceWidthProtocolConstants *aProtocolConstants, |
| 559 | IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats); |
| 560 | void sendPulseDistanceWidthFromArray_P(PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, |
| 561 | IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats); |
| 562 | void sendPulseDistanceWidthFromPGMArray_P(PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, |
| 563 | IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats); |
| 564 | |
| 565 | void sendPulseDistanceWidthFromArray(uint_fast8_t aFrequencyKHz, DistanceWidthTimingInfoStruct *aDistanceWidthTimingInfo, |
| 566 | IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, |
| 567 | int_fast8_t aNumberOfRepeats); |
| 568 | void sendPulseDistanceWidthFromArray_P(uint_fast8_t aFrequencyKHz, |
| 569 | DistanceWidthTimingInfoStruct const *aDistanceWidthTimingInfoPGM, IRDecodedRawDataType *aDecodedRawDataArray, |
| 570 | uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats); |
| 571 | |
| 572 | void sendPulseDistanceWidth(PulseDistanceWidthProtocolConstants *aProtocolConstants, IRDecodedRawDataType aData, |
nothing calls this directly
no outgoing calls
no test coverage detected