diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/hardware/audio.h | 24 | ||||
-rw-r--r-- | include/hardware/audio_amplifier.h | 142 | ||||
-rw-r--r-- | include/hardware/gralloc.h | 17 | ||||
-rw-r--r-- | include/hardware/hwcomposer_defs.h | 4 | ||||
-rw-r--r-- | include/hardware/lights.h | 20 | ||||
-rw-r--r-- | include/hardware/nfc.h | 1 | ||||
-rw-r--r-- | include/hardware/power.h | 26 |
7 files changed, 231 insertions, 3 deletions
diff --git a/include/hardware/audio.h b/include/hardware/audio.h index ca7b18b..a562554 100644 --- a/include/hardware/audio.h +++ b/include/hardware/audio.h @@ -28,6 +28,9 @@ #include <hardware/hardware.h> #include <system/audio.h> #include <hardware/audio_effect.h> +#ifdef AUDIO_LISTEN_ENABLED +#include <listen_types.h> +#endif __BEGIN_DECLS @@ -652,6 +655,27 @@ struct audio_hw_device { int (*set_audio_port_config)(struct audio_hw_device *dev, const struct audio_port_config *config); +#ifdef AUDIO_LISTEN_ENABLED + /** This method opens the listen session and returns a handle */ + int (*open_listen_session)(struct audio_hw_device *dev, + struct listen_open_params*, + struct listen_session** handle); + + /** This method closes the listen session */ + int (*close_listen_session)(struct audio_hw_device *dev, + struct listen_session* handle); + + /** This method sets the mad observer callback */ + int (*set_mad_observer)(struct audio_hw_device *dev, + listen_callback_t cb_func); + + /* This method is used for setting listen hal specfic parameters. + * If multiple paramets are set in one call and setting any one of them + * fails it will return failure. + */ + int (*listen_set_parameters)(struct audio_hw_device *dev, + const char *kv_pairs); +#endif }; typedef struct audio_hw_device audio_hw_device_t; diff --git a/include/hardware/audio_amplifier.h b/include/hardware/audio_amplifier.h new file mode 100644 index 0000000..4305094 --- /dev/null +++ b/include/hardware/audio_amplifier.h @@ -0,0 +1,142 @@ +/* + * Copyright (C) 2015, The CyanogenMod 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. + */ + +#ifndef CM_AUDIO_AMPLIFIER_INTERFACE_H +#define CM_AUDIO_AMPLIFIER_INTERFACE_H + +#include <stdint.h> +#include <sys/cdefs.h> +#include <sys/types.h> + +#include <hardware/audio.h> +#include <hardware/hardware.h> + +#include <system/audio.h> + +__BEGIN_DECLS + +#define AMPLIFIER_HARDWARE_MODULE_ID "audio_amplifier" + +#define AMPLIFIER_HARDWARE_INTERFACE "audio_amplifier_hw_if" + +#define AMPLIFIER_MODULE_API_VERSION_0_1 HARDWARE_MODULE_API_VERSION(0, 1) + +#define AMPLIFIER_DEVICE_API_VERSION_1_0 HARDWARE_DEVICE_API_VERSION(1, 0) +#define AMPLIFIER_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0) +#define AMPLIFIER_DEVICE_API_VERSION_CURRENT AMPLIFIER_DEVICE_API_VERSION_2_0 + +typedef struct amplifier_device { + /** + * Common methods of the amplifier device. This *must* be the first member + * of amplifier_device as users of this structure will cast a hw_device_t + * to amplifier_device pointer in contexts where it's known + * the hw_device_t references a amplifier_device. + */ + struct hw_device_t common; + + /** + * Notify amplifier device of current input devices + * + * This function should handle only input devices. + */ + int (*set_input_devices)(struct amplifier_device *device, uint32_t devices); + + /** + * Notify amplifier device of current output devices + * + * This function should handle only output devices. + */ + int (*set_output_devices)(struct amplifier_device *device, uint32_t devices); + + /** + * Notify amplifier device of output device enable/disable + * + * This function should handle only output devices. + */ + int (*enable_output_devices)(struct amplifier_device *device, + uint32_t devices, bool enable); + + /** + * Notify amplifier device of input device enable/disable + * + * This function should handle only input devices. + */ + int (*enable_input_devices)(struct amplifier_device *device, + uint32_t devices, bool enable); + + /** + * Notify amplifier device about current audio mode + */ + int (*set_mode)(struct amplifier_device *device, audio_mode_t mode); + + /** + * Notify amplifier device that an output stream has started + */ + int (*output_stream_start)(struct amplifier_device *device, + struct audio_stream_out *stream, bool offload); + + /** + * Notify amplifier device that an input stream has started + */ + int (*input_stream_start)(struct amplifier_device *device, + struct audio_stream_in *stream); + + /** + * Notify amplifier device that an output stream has stopped + */ + int (*output_stream_standby)(struct amplifier_device *device, + struct audio_stream_out *stream); + + /** + * Notify amplifier device that an input stream has stopped + */ + int (*input_stream_standby)(struct amplifier_device *device, + struct audio_stream_in *stream); + + /** + * set/get output audio device parameters. + */ + int (*set_parameters)(struct amplifier_device *device, + struct str_parms *parms); +} amplifier_device_t; + +typedef struct amplifier_module { + /** + * Common methods of the amplifier module. This *must* be the first member + * of amplifier_module as users of this structure will cast a hw_module_t + * to amplifier_module pointer in contexts where it's known + * the hw_module_t references a amplifier_module. + */ + struct hw_module_t common; +} amplifier_module_t; + +/** convenience API for opening and closing a supported device */ + +static inline int amplifier_device_open(const struct hw_module_t *module, + struct amplifier_device **device) +{ + return module->methods->open(module, AMPLIFIER_HARDWARE_INTERFACE, + (struct hw_device_t **) device); +} + +static inline int amplifier_device_close(struct amplifier_device *device) +{ + return device->common.close(&device->common); +} + +__END_DECLS + +#endif // CM_AUDIO_AMPLIFIER_INTERFACE_H diff --git a/include/hardware/gralloc.h b/include/hardware/gralloc.h index ef86f90..07ac029 100644 --- a/include/hardware/gralloc.h +++ b/include/hardware/gralloc.h @@ -143,6 +143,19 @@ enum { GRALLOC_USAGE_PRIVATE_2 = 0x40000000, GRALLOC_USAGE_PRIVATE_3 = 0x80000000, GRALLOC_USAGE_PRIVATE_MASK = 0xF0000000, + +#ifdef EXYNOS4_ENHANCEMENTS + /* SAMSUNG */ + GRALLOC_USAGE_PRIVATE_NONECACHE = 0x00800000, + + GRALLOC_USAGE_HW_FIMC1 = 0x01000000, + GRALLOC_USAGE_HW_ION = 0x02000000, + GRALLOC_USAGE_YUV_ADDR = 0x04000000, + GRALLOC_USAGE_CAMERA = 0x08000000, + + /* SEC Private usage , for Overlay path at HWC */ + GRALLOC_USAGE_HWC_HWOVERLAY = 0x20000000, +#endif }; /*****************************************************************************/ @@ -237,6 +250,10 @@ typedef struct gralloc_module_t { int (*unlock)(struct gralloc_module_t const* module, buffer_handle_t handle); +#ifdef EXYNOS4_ENHANCEMENTS + int (*getphys) (struct gralloc_module_t const* module, + buffer_handle_t handle, void** paddr); +#endif /* reserved for future use */ int (*perform)(struct gralloc_module_t const* module, diff --git a/include/hardware/hwcomposer_defs.h b/include/hardware/hwcomposer_defs.h index 0131bc5..9c7d790 100644 --- a/include/hardware/hwcomposer_defs.h +++ b/include/hardware/hwcomposer_defs.h @@ -192,6 +192,10 @@ enum { */ HWC_DISPLAY_DPI_X = 4, HWC_DISPLAY_DPI_Y = 5, + + /* Indicates which of the vendor-defined color transforms is provided by + * this configuration. */ + HWC_DISPLAY_COLOR_TRANSFORM = 6, }; /* Allowed events for hwc_methods::eventControl() */ diff --git a/include/hardware/lights.h b/include/hardware/lights.h index 2cf5519..777c915 100644 --- a/include/hardware/lights.h +++ b/include/hardware/lights.h @@ -51,6 +51,12 @@ __BEGIN_DECLS #define LIGHT_ID_BLUETOOTH "bluetooth" #define LIGHT_ID_WIFI "wifi" +/* + * Additional hardware-specific lights + */ +#define LIGHT_ID_CAPS "caps" +#define LIGHT_ID_FUNC "func" + /* ************************************************************************ * Flash modes for the flashMode field of light_state_t. */ @@ -82,6 +88,11 @@ __BEGIN_DECLS #define BRIGHTNESS_MODE_SENSOR 1 /** + * Light mode allows multiple LEDs + */ +#define LIGHT_MODE_MULTIPLE_LEDS 0x01 + +/** * The parameters that can be set for a given light. * * Not all lights must support all parameters. If you @@ -101,6 +112,9 @@ struct light_state_t { * * The high byte should be ignored. Callers will set it to 0xff (which * would correspond to 255 alpha). + * + * CyanogenMod: The high byte value can be implemented to control the LEDs + * Brightness from the Lights settings. The value goes from 0x01 to 0xFF. */ unsigned int color; @@ -116,6 +130,12 @@ struct light_state_t { * Currently the values are BRIGHTNESS_MODE_USER and BRIGHTNESS_MODE_SENSOR. */ int brightnessMode; + + /** + * Define the LEDs modes (multiple, ...). + * See the LIGHTS_MODE_* mask constants. + */ + unsigned int ledsModes; }; struct light_device_t { diff --git a/include/hardware/nfc.h b/include/hardware/nfc.h index 58d33d9..6002e34 100644 --- a/include/hardware/nfc.h +++ b/include/hardware/nfc.h @@ -54,6 +54,7 @@ __BEGIN_DECLS */ #define NFC_NCI_HARDWARE_MODULE_ID "nfc_nci" #define NFC_NCI_BCM2079X_HARDWARE_MODULE_ID "nfc_nci.bcm2079x" +#define NFC_NCI_NXP_PN54X_HARDWARE_MODULE_ID "nfc_nci.pn54x" #define NFC_NCI_CONTROLLER "nci" /* diff --git a/include/hardware/power.h b/include/hardware/power.h index 084cba8..c266d8b 100644 --- a/include/hardware/power.h +++ b/include/hardware/power.h @@ -47,11 +47,18 @@ typedef enum { POWER_HINT_VIDEO_ENCODE = 0x00000003, POWER_HINT_VIDEO_DECODE = 0x00000004, POWER_HINT_LOW_POWER = 0x00000005, - POWER_HINT_CAM_PREVIEW = 0x00000006 + POWER_HINT_CAM_PREVIEW = 0x00000006, + + POWER_HINT_CPU_BOOST = 0x00000010, + POWER_HINT_LAUNCH_BOOST = 0x00000011, + POWER_HINT_AUDIO = 0x00000020, + POWER_HINT_SET_PROFILE = 0x00000030 + } power_hint_t; typedef enum { - POWER_FEATURE_DOUBLE_TAP_TO_WAKE = 0x00000001 + POWER_FEATURE_DOUBLE_TAP_TO_WAKE = 0x00000001, + POWER_FEATURE_SUPPORTED_PROFILES = 0x00001000 } feature_t; /** @@ -117,7 +124,8 @@ typedef struct power_module { * User is interacting with the device, for example, touchscreen * events are incoming. CPU and GPU load may be expected soon, * and it may be appropriate to raise speeds of CPU, memory bus, - * etc. The data parameter is unused. + * etc. The data parameter is the estimated length of the interaction + * in milliseconds, or 0 if unknown. * * POWER_HINT_LOW_POWER * @@ -126,6 +134,12 @@ typedef struct power_module { * parameter is non-zero when low power mode is activated, and zero * when deactivated. * + * POWER_HINT_CPU_BOOST + * + * An operation is happening where it would be ideal for the CPU to + * be boosted for a specific duration. The data parameter is an + * integer value of the boost duration in microseconds. + * * A particular platform may choose to ignore any hint. * * availability: version 0.2 @@ -148,6 +162,12 @@ typedef struct power_module { */ void (*setFeature)(struct power_module *module, feature_t feature, int state); + /* + * (*getFeature) is called to get the current value of a particular + * feature or capability from the hardware or PowerHAL + */ + int (*getFeature)(struct power_module *module, feature_t feature); + } power_module_t; |