Adding system usages to AAudio

Bug: 141006627
Test: atest CtsNativeMediaAAudioTestCases:AAudioTests
Change-Id: I64247a3f64f4f7cc32f6c85c2ff790f96831f707
gugelfrei
Hayden Gomes 5 years ago
parent 524159db6d
commit 3e8bbb91f1

@ -227,6 +227,8 @@ enum {
};
typedef int32_t aaudio_performance_mode_t;
#define AAUDIO_SYSTEM_USAGE_OFFSET 1000
/**
* The USAGE attribute expresses "why" you are playing a sound, what is this sound used for.
* This information is used by certain platforms or routing policies
@ -297,7 +299,31 @@ enum {
/**
* Use this for audio responses to user queries, audio instructions or help utterances.
*/
AAUDIO_USAGE_ASSISTANT = 16
AAUDIO_USAGE_ASSISTANT = 16,
/**
* Use this in case of playing sounds in an emergency.
* Privileged MODIFY_AUDIO_ROUTING permission required.
*/
AAUDIO_SYSTEM_USAGE_EMERGENCY = AAUDIO_SYSTEM_USAGE_OFFSET,
/**
* Use this for safety sounds and alerts, for example backup camera obstacle detection.
* Privileged MODIFY_AUDIO_ROUTING permission required.
*/
AAUDIO_SYSTEM_USAGE_SAFETY = AAUDIO_SYSTEM_USAGE_OFFSET + 1,
/**
* Use this for vehicle status alerts and information, for example the check engine light.
* Privileged MODIFY_AUDIO_ROUTING permission required.
*/
AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS = AAUDIO_SYSTEM_USAGE_OFFSET + 2,
/**
* Use this for traffic announcements, etc.
* Privileged MODIFY_AUDIO_ROUTING permission required.
*/
AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT = AAUDIO_SYSTEM_USAGE_OFFSET + 3,
};
typedef int32_t aaudio_usage_t;

@ -133,6 +133,10 @@ aaudio_result_t AAudioStreamParameters::validate() const {
case AAUDIO_USAGE_ASSISTANCE_SONIFICATION:
case AAUDIO_USAGE_GAME:
case AAUDIO_USAGE_ASSISTANT:
case AAUDIO_SYSTEM_USAGE_EMERGENCY:
case AAUDIO_SYSTEM_USAGE_SAFETY:
case AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS:
case AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT:
break; // valid
default:
ALOGD("usage not valid = %d", mUsage);

@ -183,6 +183,10 @@ audio_usage_t AAudioConvert_usageToInternal(aaudio_usage_t usage) {
STATIC_ASSERT(AAUDIO_USAGE_ASSISTANCE_SONIFICATION == AUDIO_USAGE_ASSISTANCE_SONIFICATION);
STATIC_ASSERT(AAUDIO_USAGE_GAME == AUDIO_USAGE_GAME);
STATIC_ASSERT(AAUDIO_USAGE_ASSISTANT == AUDIO_USAGE_ASSISTANT);
STATIC_ASSERT(AAUDIO_SYSTEM_USAGE_EMERGENCY == AUDIO_USAGE_EMERGENCY);
STATIC_ASSERT(AAUDIO_SYSTEM_USAGE_SAFETY == AUDIO_USAGE_SAFETY);
STATIC_ASSERT(AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS == AUDIO_USAGE_VEHICLE_STATUS);
STATIC_ASSERT(AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT == AUDIO_USAGE_ANNOUNCEMENT);
if (usage == AAUDIO_UNSPECIFIED) {
usage = AAUDIO_USAGE_MEDIA;
}

@ -120,7 +120,11 @@ static const aaudio_usage_t sUsages[] = {
AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
AAUDIO_USAGE_ASSISTANCE_SONIFICATION,
AAUDIO_USAGE_GAME,
AAUDIO_USAGE_ASSISTANT
AAUDIO_USAGE_ASSISTANT,
AAUDIO_SYSTEM_USAGE_EMERGENCY,
AAUDIO_SYSTEM_USAGE_SAFETY,
AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS,
AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT
};
static const aaudio_content_type_t sContentypes[] = {

@ -243,7 +243,7 @@ status_t AudioPolicyService::getOutputForAttr(audio_attributes_t *attr,
}
AutoCallerClear acc;
AudioPolicyInterface::output_type_t outputType;
status_t result = mAudioPolicyManager->getOutputForAttr(attr, output, session, stream, uid,
result = mAudioPolicyManager->getOutputForAttr(attr, output, session, stream, uid,
config,
&flags, selectedDeviceId, portId,
secondaryOutputs,

Loading…
Cancel
Save