summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/common/5.0/Android.bp4
-rw-r--r--audio/common/5.0/types.hal35
2 files changed, 38 insertions, 1 deletions
diff --git a/audio/common/5.0/Android.bp b/audio/common/5.0/Android.bp
index c17f1442c..86d935475 100644
--- a/audio/common/5.0/Android.bp
+++ b/audio/common/5.0/Android.bp
@@ -9,6 +9,9 @@ hidl_interface {
srcs: [
"types.hal",
],
+ interfaces: [
+ "android.hidl.safe_union@1.0",
+ ],
types: [
"AudioChannelMask",
"AudioConfig",
@@ -38,6 +41,7 @@ hidl_interface {
"AudioSource",
"AudioStreamType",
"AudioUsage",
+ "DeviceAddress",
"FixedChannelCount",
"PlaybackTrackMetadata",
"RecordTrackMetadata",
diff --git a/audio/common/5.0/types.hal b/audio/common/5.0/types.hal
index e5919cbc2..dab74645f 100644
--- a/audio/common/5.0/types.hal
+++ b/audio/common/5.0/types.hal
@@ -16,6 +16,8 @@
package android.hardware.audio.common@5.0;
+import android.hidl.safe_union@1.0;
+
/*
*
* IDs and Handles
@@ -602,6 +604,29 @@ enum AudioDevice : uint32_t {
};
/**
+ * IEEE 802 MAC address.
+ */
+typedef uint8_t[6] MacAddress;
+
+/**
+ * Specifies a device address in case when several devices of the same type
+ * can be connected (e.g. BT A2DP, USB).
+ */
+struct DeviceAddress {
+ AudioDevice device; // discriminator
+ union Address {
+ MacAddress mac; // used for BLUETOOTH_A2DP_*
+ uint8_t[4] ipv4; // used for IP
+ struct Alsa {
+ int32_t card;
+ int32_t device;
+ } alsa; // used for USB_*
+ } address;
+ string busAddress; // used for BUS
+ string rSubmixAddress; // used for REMOTE_SUBMIX
+};
+
+/**
* The audio output flags serve two purposes:
*
* - when an AudioTrack is created they indicate a "wish" to be connected to an
@@ -748,9 +773,17 @@ struct RecordTrackMetadata {
* Must not be negative.
*/
float gain;
+ /**
+ * Indicates the destination of an input stream, can be left unspecified.
+ */
+ safe_union Destination {
+ Monostate unspecified;
+ DeviceAddress device;
+ };
+ Destination destination;
};
-/** Metadatas of the source of a StreamIn. */
+/** Metadatas of the sink of a StreamIn. */
struct SinkMetadata {
vec<RecordTrackMetadata> tracks;
};