Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0c20e99 authored by Steven Moreland's avatar Steven Moreland
Browse files

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
parent 8e0f8836
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -42,10 +42,11 @@ using ::android::sp;
struct Light : public ILight {
    Light(std::map<Type, light_device_t*> &&lights);

    // Methods from ::android::hardware::light::V2_0::ILight follow.
    Return<Status> setLight(Type type, const LightState& state)  override;
    Return<void> getSupportedTypes(getSupportedTypes_cb _hidl_cb)  override;

    Return<void> debug(const hidl_handle& handle, const hidl_vec<hidl_string>& options) override;

   private:
    std::map<Type, light_device_t*> mLights;
};