Add necessary parcelables of metadata

This change partial upstream necessary
a.m.audio.common.types for aosp/1936041.

Bug: 203490261
Test: m android.hardware.audio.common
Change-Id: Ice160b3eb642245daaa47394b156fd1ebafab82b
Merged-In: I3331d7e3d76db50f5b3c4db57891a20e4f935ad8
This commit is contained in:
Josh Wu 2022-01-04 00:37:58 -08:00
parent de62afa978
commit 04a84760b2
7 changed files with 442 additions and 5 deletions

View File

@ -20,7 +20,9 @@ aidl_interface {
"aidl/android/media/audio/common/AudioFormat.aidl",
"aidl/android/media/audio/common/AudioOffloadInfo.aidl",
"aidl/android/media/audio/common/AudioStreamType.aidl",
"aidl/android/media/audio/common/AudioUsage.aidl",
],
imports: [
"android.media.audio.common.types",
],
}
@ -67,3 +69,37 @@ aidl_interface {
"media_permission-aidl",
],
}
aidl_interface {
name: "android.media.audio.common.types",
vendor_available: true,
host_supported: true,
double_loadable: true,
flags: [
"-Werror",
"-Weverything",
],
local_include_dir: "aidl",
srcs: [
"aidl/android/media/audio/common/AudioContentType.aidl",
"aidl/android/media/audio/common/AudioSource.aidl",
"aidl/android/media/audio/common/AudioUsage.aidl",
],
stability: "vintf",
backend: {
cpp: {
min_sdk_version: "29",
apex_available: [
"//apex_available:platform",
"com.android.media",
],
},
java: {
},
ndk: {
vndk: {
enabled: true,
},
},
},
}

View File

@ -0,0 +1,53 @@
/*
* Copyright (C) 2020 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.media.audio.common;
/**
* Content type specifies "what" is playing. The content type expresses the
* general category of the content: speech, music, movie audio, etc.
* This enum corresponds to AudioAttributes.CONTENT_TYPE_* constants in the SDK.
*
* {@hide}
*/
@Backing(type="int")
@VintfStability
enum AudioContentType {
/**
* Content type value to use when the content type is unknown, or other than
* the ones defined.
*/
UNKNOWN = 0,
/**
* Content type value to use when the content type is speech.
*/
SPEECH = 1,
/**
* Content type value to use when the content type is music.
*/
MUSIC = 2,
/**
* Content type value to use when the content type is a soundtrack,
* typically accompanying a movie or TV program.
*/
MOVIE = 3,
/**
* Content type value to use when the content type is a sound used to
* accompany a user action, such as a beep or sound effect expressing a key
* click, or event, such as the type of a sound for a bonus being received
* in a game. These sounds are mostly synthesized or short Foley sounds.
*/
SONIFICATION = 4,
}

View File

@ -0,0 +1,90 @@
/*
* Copyright (C) 2020 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.media.audio.common;
/**
* Defines the audio source. An audio source defines both a default physical
* source of audio signal, and a recording configuration. This enum corresponds
* to MediaRecorder.AudioSource.* constants in the SDK.
*
* {@hide}
*/
@Backing(type="int")
@VintfStability
enum AudioSource {
/**
* Used as default value in parcelables to indicate that a value was not
* set. Should never be considered a valid setting, except for backward
* compatibility scenarios.
*/
SYS_RESERVED_INVALID = -1,
/** Default audio source. */
DEFAULT = 0,
/** Microphone audio source. */
MIC = 1,
/** Voice call uplink (Tx) audio source. */
VOICE_UPLINK = 2,
/** Voice call downlink (Rx) audio source. */
VOICE_DOWNLINK = 3,
/** Voice call uplink + downlink (duplex) audio source. */
VOICE_CALL = 4,
/**
* Microphone audio source tuned for video recording, with the same
* orientation as the camera if available.
*/
CAMCORDER = 5,
/** Microphone audio source tuned for voice recognition. */
VOICE_RECOGNITION = 6,
/**
* Microphone audio source tuned for voice communications such as VoIP. It
* will for instance take advantage of echo cancellation or automatic gain
* control if available.
*/
VOICE_COMMUNICATION = 7,
/**
* Audio source for a submix of audio streams to be presented remotely. An
* application can use this audio source to capture a mix of audio streams
* that should be transmitted to a remote receiver such as a Wifi display.
* While recording is active, these audio streams are redirected to the
* remote submix instead of being played on the device speaker or headset.
*/
REMOTE_SUBMIX = 8,
/**
* Microphone audio source tuned for unprocessed (raw) sound if available,
* behaves like DEFAULT otherwise.
*/
UNPROCESSED = 9,
/**
* Source for capturing audio meant to be processed in real time and played
* back for live performance (e.g karaoke). The capture path will minimize
* latency and coupling with playback path.
*/
VOICE_PERFORMANCE = 10,
/**
* Source for an echo canceller to capture the reference signal to be
* canceled. The echo reference signal will be captured as close as
* possible to the DAC in order to include all post processing applied to
* the playback path.
*/
ECHO_REFERENCE = 1997,
/** Audio source for capturing broadcast FM tuner output. */
FM_TUNER = 1998,
/**
* A low-priority, preemptible audio source for for background software
* hotword detection. Same tuning as VOICE_RECOGNITION.
*/
HOTWORD = 1999,
}

View File

@ -14,27 +14,128 @@
* limitations under the License.
*/
// This file has been semi-automatically generated using hidl2aidl from its counterpart in
// hardware/interfaces/audio/common/5.0/types.hal
package android.media.audio.common;
/**
* {@hide}
*/
@VintfStability
@Backing(type="int")
enum AudioUsage {
/**
* Used as default value in parcelables to indicate that a value was not
* set. Should never be considered a valid setting, except for backward
* compatibility scenarios.
*/
INVALID = -1,
/**
* Usage value to use when the usage is unknown.
*/
UNKNOWN = 0,
/**
* Usage value to use when the usage is media, such as music, or movie
* soundtracks.
*/
MEDIA = 1,
/**
* Usage value to use when the usage is voice communications, such as
* telephony or VoIP.
*/
VOICE_COMMUNICATION = 2,
/**
* Usage value to use when the usage is in-call signalling, such as with
* a "busy" beep, or DTMF tones.
*/
VOICE_COMMUNICATION_SIGNALLING = 3,
/**
* Usage value to use when the usage is an alarm (e.g. wake-up alarm).
*/
ALARM = 4,
/**
* Usage value to use when the usage is notification. See other notification
* usages for more specialized uses.
*/
NOTIFICATION = 5,
/**
* Usage value to use when the usage is telephony ringtone.
*/
NOTIFICATION_TELEPHONY_RINGTONE = 6,
/**
* Usage value to use when the usage is a request to enter/end a
* communication, such as a VoIP communication or video-conference.
*
* Value reserved for system use only. HALs must never return this value to
* the system or accept it from the system.
*/
SYS_RESERVED_NOTIFICATION_COMMUNICATION_REQUEST = 7,
/**
* Usage value to use when the usage is notification for an "instant"
* communication such as a chat, or SMS.
*
* Value reserved for system use only. HALs must never return this value to
* the system or accept it from the system.
*/
SYS_RESERVED_NOTIFICATION_COMMUNICATION_INSTANT = 8,
/**
* Usage value to use when the usage is notification for a
* non-immediate type of communication such as e-mail.
*
* Value reserved for system use only. HALs must never return this value to
* the system or accept it from the system.
*/
SYS_RESERVED_NOTIFICATION_COMMUNICATION_DELAYED = 9,
/**
* Usage value to use when the usage is to attract the user's attention,
* such as a reminder or low battery warning.
*/
NOTIFICATION_EVENT = 10,
/**
* Usage value to use when the usage is for accessibility, such as with
* a screen reader.
*/
ASSISTANCE_ACCESSIBILITY = 11,
/**
* Usage value to use when the usage is driving or navigation directions.
*/
ASSISTANCE_NAVIGATION_GUIDANCE = 12,
/**
* Usage value to use when the usage is sonification, such as with user
* interface sounds.
*/
ASSISTANCE_SONIFICATION = 13,
/**
* Usage value to use when the usage is for game audio.
*/
GAME = 14,
/**
* Usage value to use when feeding audio to the platform and replacing
* "traditional" audio source, such as audio capture devices.
*/
VIRTUAL_SOURCE = 15,
/**
* Usage value to use for audio responses to user queries, audio
* instructions or help utterances.
*/
ASSISTANT = 16,
}
/**
* Usage value to use for assistant voice interaction with remote caller on
* Cell and VoIP calls.
*/
CALL_ASSISTANT = 17,
/**
* Usage value to use when the usage is an emergency.
*/
EMERGENCY = 1000,
/**
* Usage value to use when the usage is a safety sound.
*/
SAFETY = 1001,
/**
* Usage value to use when the usage is a vehicle status.
*/
VEHICLE_STATUS = 1002,
/**
* Usage value to use when the usage is an announcement.
*/
ANNOUNCEMENT = 1003,
}

View File

@ -0,0 +1,43 @@
/*
* Copyright (C) 2020 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.media.audio.common;
/* @hide */
@Backing(type="int") @VintfStability
enum AudioContentType {
UNKNOWN = 0,
SPEECH = 1,
MUSIC = 2,
MOVIE = 3,
SONIFICATION = 4,
}

View File

@ -0,0 +1,53 @@
/*
* Copyright (C) 2020 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.media.audio.common;
/* @hide */
@Backing(type="int") @VintfStability
enum AudioSource {
SYS_RESERVED_INVALID = -1,
DEFAULT = 0,
MIC = 1,
VOICE_UPLINK = 2,
VOICE_DOWNLINK = 3,
VOICE_CALL = 4,
CAMCORDER = 5,
VOICE_RECOGNITION = 6,
VOICE_COMMUNICATION = 7,
REMOTE_SUBMIX = 8,
UNPROCESSED = 9,
VOICE_PERFORMANCE = 10,
ECHO_REFERENCE = 1997,
FM_TUNER = 1998,
HOTWORD = 1999,
}

View File

@ -0,0 +1,61 @@
/*
* Copyright (C) 2019 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.media.audio.common;
/* @hide */
@Backing(type="int") @VintfStability
enum AudioUsage {
INVALID = -1,
UNKNOWN = 0,
MEDIA = 1,
VOICE_COMMUNICATION = 2,
VOICE_COMMUNICATION_SIGNALLING = 3,
ALARM = 4,
NOTIFICATION = 5,
NOTIFICATION_TELEPHONY_RINGTONE = 6,
SYS_RESERVED_NOTIFICATION_COMMUNICATION_REQUEST = 7,
SYS_RESERVED_NOTIFICATION_COMMUNICATION_INSTANT = 8,
SYS_RESERVED_NOTIFICATION_COMMUNICATION_DELAYED = 9,
NOTIFICATION_EVENT = 10,
ASSISTANCE_ACCESSIBILITY = 11,
ASSISTANCE_NAVIGATION_GUIDANCE = 12,
ASSISTANCE_SONIFICATION = 13,
GAME = 14,
VIRTUAL_SOURCE = 15,
ASSISTANT = 16,
CALL_ASSISTANT = 17,
EMERGENCY = 1000,
SAFETY = 1001,
VEHICLE_STATUS = 1002,
ANNOUNCEMENT = 1003,
}