Added example vendor extension for light.
Test: make Bug: 32065239 Change-Id: I8004eaea180d768ccdec0e932d08c1167f5c10cd
This commit is contained in:
parent
7233539cf3
commit
08484f825d
10 changed files with 488 additions and 3 deletions
|
@ -5,10 +5,10 @@ subdirs = [
|
|||
"audio/effect/2.0",
|
||||
"benchmarks/msgq/1.0",
|
||||
"biometrics/fingerprint/2.1",
|
||||
"boot/1.0",
|
||||
"boot/1.0/default",
|
||||
"gnss/1.0",
|
||||
"bluetooth/1.0",
|
||||
"boot/1.0",
|
||||
"example/extension/light/2.0",
|
||||
"gnss/1.0",
|
||||
"graphics/allocator/2.0",
|
||||
"graphics/allocator/2.0/default",
|
||||
"graphics/composer/2.1",
|
||||
|
|
47
example/extension/light/2.0/Android.bp
Normal file
47
example/extension/light/2.0/Android.bp
Normal file
|
@ -0,0 +1,47 @@
|
|||
// This file is autogenerated by hidl-gen. Do not edit manually.
|
||||
|
||||
genrule {
|
||||
name: "android.hardware.example.extension.light@2.0_genc++",
|
||||
tool: "hidl-gen",
|
||||
cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.example.extension.light@2.0",
|
||||
srcs: [
|
||||
"types.hal",
|
||||
"IExtLight.hal",
|
||||
],
|
||||
out: [
|
||||
"android/hardware/example/extension/light/2.0/types.cpp",
|
||||
"android/hardware/example/extension/light/2.0/ExtLightAll.cpp",
|
||||
],
|
||||
}
|
||||
|
||||
genrule {
|
||||
name: "android.hardware.example.extension.light@2.0_genc++_headers",
|
||||
tool: "hidl-gen",
|
||||
cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.example.extension.light@2.0",
|
||||
srcs: [
|
||||
"types.hal",
|
||||
"IExtLight.hal",
|
||||
],
|
||||
out: [
|
||||
"android/hardware/example/extension/light/2.0/types.h",
|
||||
"android/hardware/example/extension/light/2.0/IExtLight.h",
|
||||
"android/hardware/example/extension/light/2.0/IHwExtLight.h",
|
||||
"android/hardware/example/extension/light/2.0/BnExtLight.h",
|
||||
"android/hardware/example/extension/light/2.0/BpExtLight.h",
|
||||
"android/hardware/example/extension/light/2.0/BsExtLight.h",
|
||||
],
|
||||
}
|
||||
|
||||
cc_library_shared {
|
||||
name: "android.hardware.example.extension.light@2.0",
|
||||
generated_sources: ["android.hardware.example.extension.light@2.0_genc++"],
|
||||
generated_headers: ["android.hardware.example.extension.light@2.0_genc++_headers"],
|
||||
export_generated_headers: ["android.hardware.example.extension.light@2.0_genc++_headers"],
|
||||
shared_libs: [
|
||||
"libhidl",
|
||||
"libhwbinder",
|
||||
"libutils",
|
||||
"libcutils",
|
||||
"android.hardware.light@2.0",
|
||||
],
|
||||
}
|
178
example/extension/light/2.0/Android.mk
Normal file
178
example/extension/light/2.0/Android.mk
Normal file
|
@ -0,0 +1,178 @@
|
|||
# This file is autogenerated by hidl-gen. Do not edit manually.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
################################################################################
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := android.hardware.example.extension.light@2.0-java
|
||||
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
||||
|
||||
intermediates := $(local-generated-sources-dir)
|
||||
|
||||
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android.hardware.light@2.0-java \
|
||||
|
||||
|
||||
#
|
||||
# Build types.hal (Default)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/Default.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.Default
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (ExtBrightness)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/ExtBrightness.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.ExtBrightness
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (ExtLightState)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/ExtLightState.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.ExtLightState
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build IExtLight.hal
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/IExtLight.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IExtLight.hal
|
||||
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::IExtLight
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/IExtLight.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
include $(BUILD_JAVA_LIBRARY)
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := android.hardware.example.extension.light@2.0-java-static
|
||||
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
||||
|
||||
intermediates := $(local-generated-sources-dir)
|
||||
|
||||
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||
android.hardware.light@2.0-java-static \
|
||||
|
||||
|
||||
#
|
||||
# Build types.hal (Default)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/Default.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.Default
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (ExtBrightness)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/ExtBrightness.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.ExtBrightness
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (ExtLightState)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/ExtLightState.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::types.ExtLightState
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build IExtLight.hal
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/example/extension/light/2.0/IExtLight.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IExtLight.hal
|
||||
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.example.extension.light@2.0::IExtLight
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/IExtLight.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||
|
||||
|
||||
|
||||
include $(call all-makefiles-under,$(LOCAL_PATH))
|
35
example/extension/light/2.0/IExtLight.hal
Normal file
35
example/extension/light/2.0/IExtLight.hal
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// Would normally be 'vendor.example.extension.light@2.0' however, this is
|
||||
// a google extension example. A vendor extension should also live in the
|
||||
// vendor partition.
|
||||
package android.hardware.example.extension.light@2.0;
|
||||
|
||||
import android.hardware.light@2.0;
|
||||
|
||||
interface IExtLight extends android.hardware.light@2.0::ILight {
|
||||
|
||||
/**
|
||||
* Set the provided lights to the provided values.
|
||||
*
|
||||
* @param type logical light to set
|
||||
* @param state describes what the light should look like.
|
||||
* @return status result of applying state transformation.
|
||||
*/
|
||||
setExtLight(Type type, ExtLightState state) generates (Status status);
|
||||
|
||||
};
|
17
example/extension/light/2.0/default/Android.mk
Normal file
17
example/extension/light/2.0/default/Android.mk
Normal file
|
@ -0,0 +1,17 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := android.hardware.example.extension.light@2.0-service
|
||||
LOCAL_INIT_RC := android.hardware.example.extension.light@2.0-service.rc
|
||||
LOCAL_MODULE_RELATIVE_PATH := hw
|
||||
LOCAL_SRC_FILES := \
|
||||
Light.cpp \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libhidl \
|
||||
libhwbinder \
|
||||
libutils \
|
||||
android.hardware.light@2.0 \
|
||||
android.hardware.example.extension.light@2.0 \
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
56
example/extension/light/2.0/default/Light.cpp
Normal file
56
example/extension/light/2.0/default/Light.cpp
Normal file
|
@ -0,0 +1,56 @@
|
|||
#include "Light.h"
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace example {
|
||||
namespace extension {
|
||||
namespace light {
|
||||
namespace V2_0 {
|
||||
namespace implementation {
|
||||
|
||||
// Methods from ::android::hardware::light::V2_0::ILight follow.
|
||||
Return<Status> Light::setLight(Type type, const LightState& state) {
|
||||
// Forward types for new methods.
|
||||
|
||||
ExtLightState extState {
|
||||
.state = state,
|
||||
.interpolationOmega =
|
||||
static_cast<int32_t>(Default::INTERPOLATION_OMEGA),
|
||||
.brightness = // ExtBrightness inherits from Brightness
|
||||
static_cast<ExtBrightness>(state.brightnessMode)
|
||||
};
|
||||
|
||||
return setExtLight(type, extState);
|
||||
}
|
||||
|
||||
Return<void> Light::getSupportedTypes(getSupportedTypes_cb _hidl_cb) {
|
||||
// implement unchanged method as you would always
|
||||
hidl_vec<Type> vec{};
|
||||
|
||||
// ******************************************************
|
||||
// Note: awesome proprietary hardware implementation here
|
||||
// ******************************************************
|
||||
|
||||
_hidl_cb(vec);
|
||||
|
||||
return Void();
|
||||
}
|
||||
|
||||
// Methods from ::android::hardware::example::extension::light::V2_0::ILight follow.
|
||||
Return<Status> Light::setExtLight(Type /* type */,
|
||||
const ExtLightState& /* state */) {
|
||||
|
||||
// ******************************************************
|
||||
// Note: awesome proprietary hardware implementation here
|
||||
// ******************************************************
|
||||
|
||||
return Status::SUCCESS;
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V2_0
|
||||
} // namespace light
|
||||
} // namespace extension
|
||||
} // namespace example
|
||||
} // namespace hardware
|
||||
} // namespace android
|
46
example/extension/light/2.0/default/Light.h
Normal file
46
example/extension/light/2.0/default/Light.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
#ifndef HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
|
||||
#define HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
|
||||
|
||||
#include <android/hardware/example/extension/light/2.0/IExtLight.h>
|
||||
#include <hidl/Status.h>
|
||||
|
||||
#include <hidl/MQDescriptor.h>
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace example {
|
||||
namespace extension {
|
||||
namespace light {
|
||||
namespace V2_0 {
|
||||
namespace implementation {
|
||||
|
||||
using ::android::hardware::example::extension::light::V2_0::ExtLightState;
|
||||
using ::android::hardware::example::extension::light::V2_0::IExtLight;
|
||||
using ::android::hardware::light::V2_0::ILight;
|
||||
using ::android::hardware::light::V2_0::LightState;
|
||||
using ::android::hardware::light::V2_0::Status;
|
||||
using ::android::hardware::light::V2_0::Type;
|
||||
using ::android::hardware::Return;
|
||||
using ::android::hardware::Void;
|
||||
using ::android::hardware::hidl_vec;
|
||||
using ::android::hardware::hidl_string;
|
||||
using ::android::sp;
|
||||
|
||||
struct Light : public IExtLight {
|
||||
// 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;
|
||||
|
||||
// Methods from ::android::hardware::example::extension::light::V2_0::ILight follow.
|
||||
Return<Status> setExtLight(Type type, const ExtLightState& state) override;
|
||||
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V2_0
|
||||
} // namespace light
|
||||
} // namespace extension
|
||||
} // namespace example
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
|
||||
#endif // HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
|
|
@ -0,0 +1,4 @@
|
|||
service light-ext-2-0 /system/bin/hw/android.hardware.example.extension.light@2.0-service
|
||||
class hal
|
||||
user system
|
||||
group system readproc
|
34
example/extension/light/2.0/default/service.cpp
Normal file
34
example/extension/light/2.0/default/service.cpp
Normal file
|
@ -0,0 +1,34 @@
|
|||
#define LOG_TAG "android.hardware.light@2.0-service"
|
||||
#include <utils/Log.h>
|
||||
|
||||
// #include <iostream>
|
||||
// #include <unistd.h>
|
||||
|
||||
// #include <hidl/IServiceManager.h>
|
||||
// #include <hwbinder/IPCThreadState.h>
|
||||
// #include <hwbinder/ProcessState.h>
|
||||
// #include <utils/Errors.h>
|
||||
// #include <utils/StrongPointer.h>
|
||||
|
||||
#include "Light.h"
|
||||
|
||||
using android::sp;
|
||||
|
||||
// libhwbinder:
|
||||
using android::hardware::IPCThreadState;
|
||||
using android::hardware::ProcessState;
|
||||
|
||||
// Generated HIDL files
|
||||
using android::hardware::light::V2_0::ILight;
|
||||
|
||||
int main() {
|
||||
const char instance[] = "light";
|
||||
|
||||
android::sp<ILight> service = new Light();
|
||||
|
||||
service->registerAsService(instance);
|
||||
|
||||
ProcessState::self()->setThreadPoolMaxThreadCount(0);
|
||||
ProcessState::self()->startThreadPool();
|
||||
IPCThreadState::self()->joinThreadPool();
|
||||
}
|
68
example/extension/light/2.0/types.hal
Normal file
68
example/extension/light/2.0/types.hal
Normal file
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.hardware.example.extension.light@2.0;
|
||||
|
||||
import android.hardware.light@2.0;
|
||||
|
||||
enum Default : int32_t {
|
||||
// for calls to setLight from the framework that don't know about this
|
||||
// extension or its requirements
|
||||
INTERPOLATION_OMEGA = 2
|
||||
};
|
||||
|
||||
/**
|
||||
* One possibility is renaming an old type. Another possibility is taking
|
||||
* advantages of the different namespaces.
|
||||
*/
|
||||
enum ExtBrightness : Brightness {
|
||||
/**
|
||||
* Say we're really going to use the phone as a heater.
|
||||
*/
|
||||
EXTREME,
|
||||
|
||||
/**
|
||||
* Sometimes at night, we need it to be day.
|
||||
*/
|
||||
THE_SUN,
|
||||
};
|
||||
|
||||
/**
|
||||
* Structs can't inherit eachother in hidl. Use composition instead. In this
|
||||
* case, I won't use inheritence because I want to replace Brightness with
|
||||
* ExtBrightness.
|
||||
*/
|
||||
struct ExtLightState {
|
||||
LightState state;
|
||||
|
||||
/**
|
||||
* This is the secret sauce that will really make this extension shine.
|
||||
* No other person has such a cool feature in their hals. Don't forget
|
||||
* to describe all details of parameters. An interface is a contract, and
|
||||
* specifying this contract to the letter is what allows that contracted
|
||||
* to be maintained. :)
|
||||
*
|
||||
* So, this parameter represents the speed at which brightness is changed
|
||||
* to the new value in the three dimensional space with coordinates RGB
|
||||
* from the red, blue, and green.
|
||||
*/
|
||||
int32_t interpolationOmega;
|
||||
|
||||
/**
|
||||
* Include new values.
|
||||
*/
|
||||
ExtBrightness brightness;
|
||||
};
|
Loading…
Reference in a new issue