summaryrefslogtreecommitdiff
path: root/light/2.0/default/Light.cpp
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2017-12-20 14:50:53 -0800
committerSteven Moreland <smoreland@google.com>2017-12-20 14:51:47 -0800
commitb0c20e99a12f075a9a3289b05faf4fff8e0eb47f (patch)
treee08abe84ce1187a1bd9b18a46a094995dc19b7fd /light/2.0/default/Light.cpp
parent8e0f8836d92fa92b67f516b9244d052ef61f2b23 (diff)
Add debug output for lights.
As an example and also to expose which lights are registered easily. Note, this is all the information that we can print given the libhardware lights interface. Bug: 70846424 Test: lshal debug Change-Id: I5f55e3e64149fc63a45ab9dab94d5fea27bb61da
Diffstat (limited to 'light/2.0/default/Light.cpp')
-rw-r--r--light/2.0/default/Light.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/light/2.0/default/Light.cpp b/light/2.0/default/Light.cpp
index cde1536633..5484d2db43 100644
--- a/light/2.0/default/Light.cpp
+++ b/light/2.0/default/Light.cpp
@@ -18,6 +18,8 @@
#include <log/log.h>
+#include <stdio.h>
+
#include "Light.h"
namespace android {
@@ -107,6 +109,28 @@ const static std::map<Type, const char*> kLogicalLights = {
{Type::WIFI, LIGHT_ID_WIFI}
};
+Return<void> Light::debug(const hidl_handle& handle, const hidl_vec<hidl_string>& /* options */) {
+ if (handle == nullptr || handle->numFds < 1) {
+ ALOGE("debug called with no handle\n");
+ return Void();
+ }
+
+ int fd = handle->data[0];
+ if (fd < 0) {
+ ALOGE("invalid FD: %d\n", handle->data[0]);
+ return Void();
+ }
+
+ dprintf(fd, "The following lights are registered: ");
+ for (auto const& pair : mLights) {
+ const Type type = pair.first;
+ dprintf(fd, "%s,", kLogicalLights.at(type));
+ }
+ dprintf(fd, ".\n");
+ fsync(fd);
+ return Void();
+}
+
light_device_t* getLightDevice(const char* name) {
light_device_t* lightDevice;
const hw_module_t* hwModule = NULL;