blob: 4463cac044ab486dc8bac3c682f8080f4b9dffa5 [file] [log] [blame]
/*
* 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.tests.extension.light@2.0;
// If importing something from the same package, the preference is:
// import @2.0::Foo. However, since this isn't a minor version upgrade
// we have to use the fully-qualified names here.
import android.hardware.light@2.0::Brightness;
import android.hardware.light@2.0::LightState;
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 Brightness : android.hardware.light@2.0::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
* the new enumeration.
*/
struct LightState {
android.hardware.light@2.0::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.
*/
Brightness brightness;
};