Add default implementation for setTvMessageEnabled
Bug: 283016116
Test: mmm
Change-Id: I1872cf28ad658c177a892f7c7587a91a34f445ff
diff --git a/tv/input/aidl/default/TvInput.cpp b/tv/input/aidl/default/TvInput.cpp
index c986ef1..5f1f7a2 100644
--- a/tv/input/aidl/default/TvInput.cpp
+++ b/tv/input/aidl/default/TvInput.cpp
@@ -68,7 +68,13 @@
::ndk::ScopedAStatus TvInput::setTvMessageEnabled(int32_t deviceId, int32_t streamId,
TvMessageEventType in_type, bool enabled) {
ALOGV("%s", __FUNCTION__);
- // TODO: Implement this
+
+ if (mStreamConfigs.count(deviceId) == 0) {
+ ALOGW("Device with id %d isn't available", deviceId);
+ return ::ndk::ScopedAStatus::fromServiceSpecificError(STATUS_INVALID_ARGUMENTS);
+ }
+
+ mTvMessageEventEnabled[deviceId][streamId][in_type] = enabled;
return ::ndk::ScopedAStatus::ok();
}
diff --git a/tv/input/aidl/default/TvInput.h b/tv/input/aidl/default/TvInput.h
index 92e7d4c..23118c8 100644
--- a/tv/input/aidl/default/TvInput.h
+++ b/tv/input/aidl/default/TvInput.h
@@ -22,6 +22,7 @@
#include <aidl/android/hardware/tv/input/TvMessageEventType.h>
#include <fmq/AidlMessageQueue.h>
#include <map>
+#include <unordered_map>
#include "TvInputDeviceInfoWrapper.h"
#include "TvStreamConfigWrapper.h"
@@ -38,6 +39,9 @@
namespace tv {
namespace input {
+using TvMessageEnabledMap = std::unordered_map<
+ int32_t, std::unordered_map<int32_t, std::unordered_map<TvMessageEventType, bool>>>;
+
class TvInput : public BnTvInput {
public:
TvInput();
@@ -62,6 +66,7 @@
shared_ptr<ITvInputCallback> mCallback;
map<int32_t, shared_ptr<TvInputDeviceInfoWrapper>> mDeviceInfos;
map<int32_t, map<int32_t, shared_ptr<TvStreamConfigWrapper>>> mStreamConfigs;
+ TvMessageEnabledMap mTvMessageEventEnabled;
};
} // namespace input