summaryrefslogtreecommitdiffstats
path: root/hidl/consumerir/ConsumerIr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hidl/consumerir/ConsumerIr.cpp')
-rw-r--r--hidl/consumerir/ConsumerIr.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/hidl/consumerir/ConsumerIr.cpp b/hidl/consumerir/ConsumerIr.cpp
index 8b5ef82..9696fa0 100644
--- a/hidl/consumerir/ConsumerIr.cpp
+++ b/hidl/consumerir/ConsumerIr.cpp
@@ -18,6 +18,12 @@
#include <samsung_ir.h>
+#include <android-base/file.h>
+#include <android-base/strings.h>
+
+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<bool> ConsumerIr::transmit(int32_t carrierFreq, const hidl_vec<int32_t>& pattern) {
- // TODO implement
- return bool {};
+ float factor;
+ std::vector<int32_t> 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<void> ConsumerIr::getCarrierFreqs(getCarrierFreqs_cb _hidl_cb) {
- // TODO implement
+ _hidl_cb(true, consumerirFreqs);
return Void();
}