diff --git a/hidl/consumerir/ConsumerIr.cpp b/hidl/consumerir/ConsumerIr.cpp index 8b5ef82e..9696fa08 100644 --- a/hidl/consumerir/ConsumerIr.cpp +++ b/hidl/consumerir/ConsumerIr.cpp @@ -18,6 +18,12 @@ #include +#include +#include + +using android::base::Join; +using android::base::WriteStringToFile; + namespace android { namespace hardware { namespace ir { @@ -26,12 +32,25 @@ namespace implementation { // Methods from ::android::hardware::ir::V1_0::IConsumerIr follow. Return ConsumerIr::transmit(int32_t carrierFreq, const hidl_vec& pattern) { - // TODO implement - return bool {}; + float factor; + std::vector buffer{carrierFreq}; + +#ifndef MS_IR_SIGNAL + // Calculate factor of conversion from microseconds to pulses + factor = 1000000 / carrierFreq; +#else + factor = 1; +#endif + + for (const int32_t& number : pattern) { + buffer.emplace_back(number / factor); + } + + return WriteStringToFile(Join(buffer, ','), IR_PATH, true); } Return ConsumerIr::getCarrierFreqs(getCarrierFreqs_cb _hidl_cb) { - // TODO implement + _hidl_cb(true, consumerirFreqs); return Void(); }