diff options
author | Steven Moreland <smoreland@google.com> | 2017-12-20 14:50:53 -0800 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2017-12-20 14:51:47 -0800 |
commit | b0c20e99a12f075a9a3289b05faf4fff8e0eb47f (patch) | |
tree | e08abe84ce1187a1bd9b18a46a094995dc19b7fd /light/2.0/default/Light.cpp | |
parent | 8e0f8836d92fa92b67f516b9244d052ef61f2b23 (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.cpp | 24 |
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; |