libnx/nx/include/switch/services/lbl.h
2020-02-28 19:13:27 +01:00

91 lines
2.4 KiB
C

/**
* @file lbl.h
* @brief LBL service IPC wrapper.
* @author SciresM, exelix
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "../sf/service.h"
typedef enum {
LblBacklightSwitchStatus_Disabled = 0,
LblBacklightSwitchStatus_Enabled = 1,
LblBacklightSwitchStatus_Enabling = 2,
LblBacklightSwitchStatus_Disabling = 3,
} LblBacklightSwitchStatus;
/// Initialize lbl.
Result lblInitialize(void);
/// Exit lbl.
void lblExit(void);
/// Gets the Service object for the actual lbl service session.
Service* lblGetServiceSession(void);
Result lblSaveCurrentSetting(void);
Result lblLoadCurrentSetting(void);
/**
* @note The brightness goes from 0 to 1.0.
*/
Result lblSetCurrentBrightnessSetting(float brightness);
Result lblGetCurrentBrightnessSetting(float *out_value);
Result lblApplyCurrentBrightnessSettingToBacklight(void);
Result lblGetBrightnessSettingAppliedToBacklight(float *out_value);
Result lblSwitchBacklightOn(u64 fade_time);
Result lblSwitchBacklightOff(u64 fade_time);
Result lblGetBacklightSwitchStatus(LblBacklightSwitchStatus *out_value);
Result lblEnableDimming(void);
Result lblDisableDimming(void);
Result lblIsDimmingEnabled(bool *out_value);
Result lblEnableAutoBrightnessControl(void);
Result lblDisableAutoBrightnessControl(void);
Result lblIsAutoBrightnessControlEnabled(bool *out_value);
Result lblSetAmbientLightSensorValue(float value);
/**
* @note Used internally by \ref appletGetAmbientLightSensorValue and \ref appletGetCurrentIlluminanceEx.
*/
Result lblGetAmbientLightSensorValue(bool *over_limit, float *lux);
/**
* @note Only available on [3.0.0+].
* @note Used internally by \ref appletIsIlluminanceAvailable.
*/
Result lblIsAmbientLightSensorAvailable(bool *out_value);
/**
* @note Only available on [3.0.0+].
*/
Result lblSetCurrentBrightnessSettingForVrMode(float brightness);
/**
* @note Only available on [3.0.0+].
*/
Result lblGetCurrentBrightnessSettingForVrMode(float *out_value);
/**
* @note Only available on [3.0.0+].
* @note Used internally by \ref appletSetVrModeEnabled.
*/
Result lblEnableVrMode(void);
/**
* @note Only available on [3.0.0+].
* @note Used internally by \ref appletSetVrModeEnabled.
*/
Result lblDisableVrMode(void);
/**
* @note Only available on [3.0.0+].
* @note Used internally by \ref appletIsVrModeEnabled.
*/
Result lblIsVrModeEnabled(bool *out_value);