summaryrefslogtreecommitdiffstats
path: root/light
diff options
context:
space:
mode:
authorSteven Moreland2017-12-20 16:50:53 -0600
committerSteven Moreland2017-12-20 16:51:47 -0600
commitb0c20e99a12f075a9a3289b05faf4fff8e0eb47f (patch)
treee08abe84ce1187a1bd9b18a46a094995dc19b7fd /light
parent8e0f8836d92fa92b67f516b9244d052ef61f2b23 (diff)
downloadplatform-hardware-interfaces-b0c20e99a12f075a9a3289b05faf4fff8e0eb47f.tar.gz
platform-hardware-interfaces-b0c20e99a12f075a9a3289b05faf4fff8e0eb47f.tar.xz
platform-hardware-interfaces-b0c20e99a12f075a9a3289b05faf4fff8e0eb47f.zip
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')
-rw-r--r--light/2.0/default/Light.cpp24
-rw-r--r--light/2.0/default/Light.h5
2 files changed, 27 insertions, 2 deletions
diff --git a/light/2.0/default/Light.cpp b/light/2.0/default/Light.cpp
index cde15366..5484d2db 100644
--- a/light/2.0/default/Light.cpp
+++ b/light/2.0/default/Light.cpp
@@ -18,6 +18,8 @@
18 18
19#include <log/log.h> 19#include <log/log.h>
20 20
21#include <stdio.h>
22
21#include "Light.h" 23#include "Light.h"
22 24
23namespace android { 25namespace android {
@@ -107,6 +109,28 @@ const static std::map<Type, const char*> kLogicalLights = {
107 {Type::WIFI, LIGHT_ID_WIFI} 109 {Type::WIFI, LIGHT_ID_WIFI}
108}; 110};
109 111
112Return<void> Light::debug(const hidl_handle& handle, const hidl_vec<hidl_string>& /* options */) {
113 if (handle == nullptr || handle->numFds < 1) {
114 ALOGE("debug called with no handle\n");
115 return Void();
116 }
117
118 int fd = handle->data[0];
119 if (fd < 0) {
120 ALOGE("invalid FD: %d\n", handle->data[0]);
121 return Void();
122 }
123
124 dprintf(fd, "The following lights are registered: ");
125 for (auto const& pair : mLights) {
126 const Type type = pair.first;
127 dprintf(fd, "%s,", kLogicalLights.at(type));
128 }
129 dprintf(fd, ".\n");
130 fsync(fd);
131 return Void();
132}
133
110light_device_t* getLightDevice(const char* name) { 134light_device_t* getLightDevice(const char* name) {
111 light_device_t* lightDevice; 135 light_device_t* lightDevice;
112 const hw_module_t* hwModule = NULL; 136 const hw_module_t* hwModule = NULL;
diff --git a/light/2.0/default/Light.h b/light/2.0/default/Light.h
index 8987036f..8851461d 100644
--- a/light/2.0/default/Light.h
+++ b/light/2.0/default/Light.h
@@ -42,11 +42,12 @@ using ::android::sp;
42struct Light : public ILight { 42struct Light : public ILight {
43 Light(std::map<Type, light_device_t*> &&lights); 43 Light(std::map<Type, light_device_t*> &&lights);
44 44
45 // Methods from ::android::hardware::light::V2_0::ILight follow.
46 Return<Status> setLight(Type type, const LightState& state) override; 45 Return<Status> setLight(Type type, const LightState& state) override;
47 Return<void> getSupportedTypes(getSupportedTypes_cb _hidl_cb) override; 46 Return<void> getSupportedTypes(getSupportedTypes_cb _hidl_cb) override;
48 47
49private: 48 Return<void> debug(const hidl_handle& handle, const hidl_vec<hidl_string>& options) override;
49
50 private:
50 std::map<Type, light_device_t*> mLights; 51 std::map<Type, light_device_t*> mLights;
51}; 52};
52 53