summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiabin <jiabin@google.com>2020-10-14 15:01:58 -0700
committerMikhail Naganov <mnaganov@google.com>2020-12-09 01:57:58 +0000
commit31d6646e63e1f78d5f6345106ac6bb0908c6b5f4 (patch)
tree9c27b2acf15060bfd15e6f6e85fb75c906937855
parentd87b1d1acec169eca89fc9d522de7728c85f3cb5 (diff)
downloadlibhardware-31d6646e63e1f78d5f6345106ac6bb0908c6b5f4.tar.gz
Add a new API for getting audio_port_v7.
Add a function to audio HAL interface for retrieving audio_port_v7 structure directly. The legacy audio_port structure can always be converted into audio_port_v7, however the latter may contain more information. This function must be supported from legacy HAL version 3.2. Bug: 160352965 Test: make Change-Id: I60f2615791c19aed37fdb91328e8bc420bc3419d Merged-In: I60f2615791c19aed37fdb91328e8bc420bc3419d
-rw-r--r--include/hardware/audio.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/hardware/audio.h b/include/hardware/audio.h
index b87d3bb3..69b0b9c0 100644
--- a/include/hardware/audio.h
+++ b/include/hardware/audio.h
@@ -57,7 +57,8 @@ __BEGIN_DECLS
#define AUDIO_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0)
#define AUDIO_DEVICE_API_VERSION_3_0 HARDWARE_DEVICE_API_VERSION(3, 0)
#define AUDIO_DEVICE_API_VERSION_3_1 HARDWARE_DEVICE_API_VERSION(3, 1)
-#define AUDIO_DEVICE_API_VERSION_CURRENT AUDIO_DEVICE_API_VERSION_3_1
+#define AUDIO_DEVICE_API_VERSION_3_2 HARDWARE_DEVICE_API_VERSION(3, 2)
+#define AUDIO_DEVICE_API_VERSION_CURRENT AUDIO_DEVICE_API_VERSION_3_2
/* Minimal audio HAL version supported by the audio framework */
#define AUDIO_DEVICE_API_VERSION_MIN AUDIO_DEVICE_API_VERSION_2_0
@@ -865,6 +866,18 @@ struct audio_hw_device {
*/
int (*remove_device_effect)(struct audio_hw_device *dev,
audio_port_handle_t device, effect_handle_t effect);
+
+ /**
+ * Fills the list of supported attributes for a given audio port.
+ * As input, "port" contains the information (type, role, address etc...)
+ * needed by the HAL to identify the port.
+ * As output, "port" contains possible attributes (sampling rates, formats,
+ * channel masks, gain controllers...) for this port. The possible attributes
+ * are saved as audio profiles, which contains audio format and the supported
+ * sampling rates and channel masks.
+ */
+ int (*get_audio_port_v7)(struct audio_hw_device *dev,
+ struct audio_port_v7 *port);
};
typedef struct audio_hw_device audio_hw_device_t;