blob: 306129e194a09130b824c6e4a1cb42b729d207c6 [file] [log] [blame]
/*
* Copyright (C) 2021 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.
*/
syntax = "proto2";
package android.media.audio;
// The Java AudioDeviceInfo device type.
//
// From
// frameworks/base/media/java/android/media/AudioDeviceInfo.java
enum AudioDeviceInfoType {
/**
* A device type associated with an unknown or uninitialized device.
*/
AUDIO_DEVICE_INFO_TYPE_UNKNOWN = 0;
/**
* A device type describing the attached earphone speaker.
*/
AUDIO_DEVICE_INFO_TYPE_BUILTIN_EARPIECE = 1;
/**
* A device type describing the speaker system (i.e. a mono speaker
* or stereo speakers) built in a device.
*/
AUDIO_DEVICE_INFO_TYPE_BUILTIN_SPEAKER = 2;
/**
* A device type describing a headset, which is the combination of
* a headphones and microphone.
*/
AUDIO_DEVICE_INFO_TYPE_WIRED_HEADSET = 3;
/**
* A device type describing a pair of wired headphones.
*/
AUDIO_DEVICE_INFO_TYPE_WIRED_HEADPHONES = 4;
/**
* A device type describing an analog line-level connection.
*/
AUDIO_DEVICE_INFO_TYPE_LINE_ANALOG = 5;
/**
* A device type describing a digital line connection (e.g. SPDIF).
*/
AUDIO_DEVICE_INFO_TYPE_LINE_DIGITAL = 6;
/**
* A device type describing a Bluetooth device typically used
* for telephony.
*/
AUDIO_DEVICE_INFO_TYPE_BLUETOOTH_SCO = 7;
/**
* A device type describing a Bluetooth device supporting the A2DP profile.
*/
AUDIO_DEVICE_INFO_TYPE_BLUETOOTH_A2DP = 8;
/**
* A device type describing an HDMI connection .
*/
AUDIO_DEVICE_INFO_TYPE_HDMI = 9;
/**
* A device type describing the Audio Return Channel of an HDMI connection.
*/
AUDIO_DEVICE_INFO_TYPE_HDMI_ARC = 10;
/**
* A device type describing a USB audio device.
*/
AUDIO_DEVICE_INFO_TYPE_USB_DEVICE = 11;
/**
* A device type describing a USB audio device in accessory mode.
*/
AUDIO_DEVICE_INFO_TYPE_USB_ACCESSORY = 12;
/**
* A device type describing the audio device associated with a dock.
*/
AUDIO_DEVICE_INFO_TYPE_DOCK = 13;
/**
* A device type associated with the transmission of audio signals over FM.
*/
AUDIO_DEVICE_INFO_TYPE_FM = 14;
/**
* A device type describing the microphone(s) built in a device.
*/
AUDIO_DEVICE_INFO_TYPE_BUILTIN_MIC = 15;
/**
* A device type for accessing the audio content transmitted over FM.
*/
AUDIO_DEVICE_INFO_TYPE_FM_TUNER = 16;
/**
* A device type for accessing the audio content transmitted
* over the TV tuner system.
*/
AUDIO_DEVICE_INFO_TYPE_TV_TUNER = 17;
/**
* A device type describing the transmission of audio signals
* over the telephony network.
*/
AUDIO_DEVICE_INFO_TYPE_TELEPHONY = 18;
/**
* A device type describing the auxiliary line-level connectors.
*/
AUDIO_DEVICE_INFO_TYPE_AUX_LINE = 19;
/**
* A device type connected over IP.
*/
AUDIO_DEVICE_INFO_TYPE_IP = 20;
/**
* A type-agnostic device used for communication with
* external audio systems
*/
AUDIO_DEVICE_INFO_TYPE_BUS = 21;
/**
* A device type describing a USB audio headset.
*/
AUDIO_DEVICE_INFO_TYPE_USB_HEADSET = 22;
/**
* A device type describing a Hearing Aid.
*/
AUDIO_DEVICE_INFO_TYPE_HEARING_AID = 23;
/**
* A device type describing the speaker system (i.e. a mono speaker
* or stereo speakers) built in a device, that is specifically tuned
* for outputting sounds like notifications and alarms
* (i.e. sounds the user couldn't necessarily anticipate).
* <p>Note that this physical audio device may be the same as
* {@link #TYPE_BUILTIN_SPEAKER} but is driven differently to safely
* accommodate the different use case.</p>
*/
AUDIO_DEVICE_INFO_TYPE_BUILTIN_SPEAKER_SAFE = 24;
/**
* A device type for rerouting audio within the Android framework between
* mixes and system applications.
* This type is for instance encountered when querying the output device
* of a track (with {@link AudioTrack#getRoutedDevice()} playing from
* a device in screen mirroring mode, where the audio is not heard on the
* device, but on the remote device.
*/
AUDIO_DEVICE_INFO_TYPE_REMOTE_SUBMIX = 25;
/**
* A device type describing a Bluetooth Low Energy (BLE) audio headset
* or headphones. Headphones are grouped with headsets when the device
* is a sink: the features of headsets and headphones with regard to
* playback are the same.
*/
AUDIO_DEVICE_INFO_TYPE_BLE_HEADSET = 26;
/**
* A device type describing a Bluetooth Low Energy (BLE) audio speaker.
*/
AUDIO_DEVICE_INFO_TYPE_BLE_SPEAKER = 27;
/**
* A device type describing an Echo Canceller loopback Reference.
* This device is only used when capturing with
* MediaRecorder.AudioSource.ECHO_REFERENCE,
* which requires privileged permission.
* @hide */
AUDIO_DEVICE_INFO_TYPE_ECHO_REFERENCE = 28;
/**
* A device type describing the Enhanced Audio Return Channel
* of an HDMI connection.
*/
AUDIO_DEVICE_INFO_TYPE_HDMI_EARC = 29;
/**
* A device type describing a Bluetooth Low Energy (BLE) broadcast group.
*/
AUDIO_DEVICE_INFO_TYPE_BLE_BROADCAST = 30;
}
// The event (method) associated with the AudioRecord (e.g. create, start,
// stop, etc.)
enum AudioRecordEvent {
AUDIO_RECORD_EVENT_UNKNOWN = 0;
AUDIO_RECORD_EVENT_CREATE = 1;
}
// The event (method) associated with the AudioTrack (e.g. create, start,
// pause, etc.)
enum AudioTrackEvent {
AUDIO_TRACK_EVENT_UNKNOWN = 0;
AUDIO_TRACK_EVENT_CREATE = 1;
}
// An enumeration from system/media/audio/include/system/audio-hal-enums.h
// audio_content_type_t, representing the content type of the AudioTrack.
enum ContentType {
// Note: The first value in an enum must map to zero.
// Mapping the first value to zero ensures the default behavior
// is consistent between proto2 and proto3.
CONTENT_TYPE_UNKNOWN = 0;
CONTENT_TYPE_INVALID = -1;
CONTENT_TYPE_SPEECH = 1;
CONTENT_TYPE_MUSIC = 2;
CONTENT_TYPE_MOVIE = 3;
CONTENT_TYPE_SONIFICATION = 4;
}
// An enumeration from system/media/audio/include/system/audio-hal-enums.h
// audio_format_t, representing the encoding of the AudioTrack data.
enum Encoding {
// AUDIO_FORMAT_DEFAULT may alias as UNKNOWN if enum value not listed below.
AUDIO_FORMAT_DEFAULT = 0;
AUDIO_FORMAT_PCM_16_BIT = 0x1;
AUDIO_FORMAT_PCM_8_BIT = 0x2;
AUDIO_FORMAT_PCM_32_BIT = 0x3;
AUDIO_FORMAT_PCM_8_24_BIT = 0x4;
AUDIO_FORMAT_PCM_FLOAT = 0x5;
AUDIO_FORMAT_PCM_24_BIT_PACKED = 0x6;
AUDIO_FORMAT_MP3 = 0x1000000;
AUDIO_FORMAT_AMR_NB = 0x2000000;
AUDIO_FORMAT_AMR_WB = 0x3000000;
AUDIO_FORMAT_AAC = 0x4000000;
AUDIO_FORMAT_AAC_MAIN = 0x4000001;
AUDIO_FORMAT_AAC_LC = 0x4000002;
AUDIO_FORMAT_AAC_SSR = 0x4000004;
AUDIO_FORMAT_AAC_LTP = 0x4000008;
AUDIO_FORMAT_AAC_HE_V1 = 0x4000010;
AUDIO_FORMAT_AAC_SCALABLE = 0x4000020;
AUDIO_FORMAT_AAC_ERLC = 0x4000040;
AUDIO_FORMAT_AAC_LD = 0x4000080;
AUDIO_FORMAT_AAC_HE_V2 = 0x4000100;
AUDIO_FORMAT_AAC_ELD = 0x4000200;
AUDIO_FORMAT_AAC_XHE = 0x4000300;
AUDIO_FORMAT_HE_AAC_V1 = 0x5000000;
AUDIO_FORMAT_HE_AAC_V2 = 0x6000000;
AUDIO_FORMAT_VORBIS = 0x7000000;
AUDIO_FORMAT_OPUS = 0x8000000;
AUDIO_FORMAT_AC3 = 0x9000000;
AUDIO_FORMAT_E_AC3 = 0xa000000;
AUDIO_FORMAT_E_AC3_JOC = 0xa000001;
AUDIO_FORMAT_DTS = 0xb000000;
AUDIO_FORMAT_DTS_HD = 0xc000000;
AUDIO_FORMAT_IEC61937 = 0xd000000;
AUDIO_FORMAT_DOLBY_TRUEHD = 0xe000000;
AUDIO_FORMAT_EVRC = 0x10000000;
AUDIO_FORMAT_EVRCB = 0x11000000;
AUDIO_FORMAT_EVRCWB = 0x12000000;
AUDIO_FORMAT_EVRCNW = 0x13000000;
AUDIO_FORMAT_AAC_ADIF = 0x14000000;
AUDIO_FORMAT_WMA = 0x15000000;
AUDIO_FORMAT_WMA_PRO = 0x16000000;
AUDIO_FORMAT_AMR_WB_PLUS = 0x17000000;
AUDIO_FORMAT_MP2 = 0x18000000;
AUDIO_FORMAT_QCELP = 0x19000000;
AUDIO_FORMAT_DSD = 0x1a000000;
AUDIO_FORMAT_FLAC = 0x1b000000;
AUDIO_FORMAT_ALAC = 0x1c000000;
AUDIO_FORMAT_APE = 0x1d000000;
AUDIO_FORMAT_AAC_ADTS = 0x1e000000;
AUDIO_FORMAT_AAC_ADTS_MAIN = 0x1e000001;
AUDIO_FORMAT_AAC_ADTS_LC = 0x1e000002;
AUDIO_FORMAT_AAC_ADTS_SSR = 0x1e000004;
AUDIO_FORMAT_AAC_ADTS_LTP = 0x1e000008;
AUDIO_FORMAT_AAC_ADTS_HE_V1 = 0x1e000010;
AUDIO_FORMAT_AAC_ADTS_SCALABLE = 0x1e000020;
AUDIO_FORMAT_AAC_ADTS_ERLC = 0x1e000040;
AUDIO_FORMAT_AAC_ADTS_LD = 0x1e000080;
AUDIO_FORMAT_AAC_ADTS_HE_V2 = 0x1e000100;
AUDIO_FORMAT_AAC_ADTS_ELD = 0x1e000200;
AUDIO_FORMAT_AAC_ADTS_XHE = 0x1e000300;
AUDIO_FORMAT_SBC = 0x1f000000;
AUDIO_FORMAT_APTX = 0x20000000;
AUDIO_FORMAT_APTX_HD = 0x21000000;
AUDIO_FORMAT_AC4 = 0x22000000;
AUDIO_FORMAT_LDAC = 0x23000000;
AUDIO_FORMAT_MAT = 0x24000000;
AUDIO_FORMAT_MAT_1_0 = 0x24000001;
AUDIO_FORMAT_MAT_2_0 = 0x24000002;
AUDIO_FORMAT_MAT_2_1 = 0x24000003;
AUDIO_FORMAT_AAC_LATM = 0x25000000;
AUDIO_FORMAT_AAC_LATM_LC = 0x25000002;
AUDIO_FORMAT_AAC_LATM_HE_V1 = 0x25000010;
AUDIO_FORMAT_AAC_LATM_HE_V2 = 0x25000100;
AUDIO_FORMAT_CELT = 0x26000000;
AUDIO_FORMAT_APTX_ADAPTIVE = 0x27000000;
AUDIO_FORMAT_LHDC = 0x28000000;
AUDIO_FORMAT_LHDC_LL = 0x29000000;
AUDIO_FORMAT_APTX_TWSP = 0x2a000000;
AUDIO_FORMAT_LC3 = 0x2b000000;
AUDIO_FORMAT_MPEGH = 0x2c000000;
AUDIO_FORMAT_MPEGH_BL_L3 = 0x2c000013;
AUDIO_FORMAT_MPEGH_BL_L4 = 0x2c000014;
AUDIO_FORMAT_MPEGH_LC_L3 = 0x2c000023;
AUDIO_FORMAT_MPEGH_LC_L4 = 0x2c000024;
AUDIO_FORMAT_IEC60958 = 0x2d000000;
AUDIO_FORMAT_DTS_UHD = 0x2e000000;
AUDIO_FORMAT_DRA = 0x2f000000;
AUDIO_FORMAT_APTX_QLEA = 0x30000000;
AUDIO_FORMAT_APTX_R4 = 0x31000000;
}
// Spatializer HeadTracking modes
// See:
// frameworks/base/media/java/android/media/Spatializer.java
// frameworks/av/media/libaudioclient/aidl/android/media/SpatializerHeadTrackingMode.aidl
enum HeadTrackingMode {
HEAD_TRACKING_MODE_OTHER = 0;
HEAD_TRACKING_MODE_DISABLED = -1;
HEAD_TRACKING_MODE_RELATIVE_WORLD = 1;
HEAD_TRACKING_MODE_RELATIVE_SCREEN = 2;
}
// An enumeration from system/media/audio/include/system/audio-hal-enums.h
// audio_source_t, representing the input source for the AudioRecord.
// Keep in sync with audio-hal-enums.h.
enum Source {
// Note: The first value in an enum must map to zero.
// Mapping the first value to zero ensures the default behavior
// is consistent between proto2 and proto3.
AUDIO_SOURCE_DEFAULT = 0; // may alias as UNKNOWN
AUDIO_SOURCE_INVALID = -1;
AUDIO_SOURCE_MIC = 1;
AUDIO_SOURCE_VOICE_UPLINK = 2;
AUDIO_SOURCE_VOICE_DOWNLINK = 3;
AUDIO_SOURCE_VOICE_CALL = 4;
AUDIO_SOURCE_CAMCORDER = 5;
AUDIO_SOURCE_VOICE_RECOGNITION = 6;
AUDIO_SOURCE_VOICE_COMMUNICATION = 7;
AUDIO_SOURCE_REMOTE_SUBMIX = 8;
AUDIO_SOURCE_UNPROCESSED = 9;
AUDIO_SOURCE_VOICE_PERFORMANCE = 10;
AUDIO_SOURCE_ECHO_REFERENCE = 1997;
AUDIO_SOURCE_FM_TUNER = 1998;
AUDIO_SOURCE_HOTWORD = 1999;
}
// Spatializer capability levels
// See:
// frameworks/base/media/java/android/media/Spatializer.java
// frameworks/av/media/libaudioclient/aidl/android/media/SpatializationLevel.aidl
enum SpatializerLevel {
SPATIALIZER_LEVEL_NONE = 0;
SPATIALIZER_LEVEL_MULTICHANNEL = 1;
SPATIALIZER_LEVEL_MCHAN_BED_PLUS_OBJECTS = 2;
}
// Spatializer modes
// See:
// frameworks/av/media/libaudioclient/aidl/android/media/SpatializationMode.aidl
enum SpatializerMode {
SPATIALIZER_MODE_BINAURAL = 0;
SPATIALIZER_MODE_TRANSAURAL = 1;
}
// Spatialization settings change may be due to special events.
enum SpatializerSettingEvent {
SPATIALIZER_SETTING_EVENT_NORMAL = 0; // Change during normal operation:
// e.g. System UI or sensor device change
// see the atom for more details.
SPATIALIZER_SETTING_EVENT_BOOT = 1; // On boot-up.
SPATIALIZER_SETTING_EVENT_FIRST = 2; // First time for a removable device.
}
// An enumeration from system/media/audio/include/system/audio-hal-enums.h
// audio_usage_t, representing the use case for the AudioTrack.
enum Usage {
AUDIO_USAGE_UNKNOWN = 0;
AUDIO_USAGE_MEDIA = 1;
AUDIO_USAGE_VOICE_COMMUNICATION = 2;
AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING = 3;
AUDIO_USAGE_ALARM = 4;
AUDIO_USAGE_NOTIFICATION = 5;
AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE = 6;
AUDIO_USAGE_NOTIFICATION_EVENT = 10;
AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY = 11;
AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12;
AUDIO_USAGE_ASSISTANCE_SONIFICATION = 13;
AUDIO_USAGE_GAME = 14;
AUDIO_USAGE_VIRTUAL_SOURCE = 15;
AUDIO_USAGE_ASSISTANT = 16;
AUDIO_USAGE_CALL_ASSISTANT = 17;
AUDIO_USAGE_EMERGENCY = 1000;
AUDIO_USAGE_SAFETY = 1001;
AUDIO_USAGE_VEHICLE_STATUS = 1002;
AUDIO_USAGE_ANNOUNCEMENT = 1003;
}