Loading services/audioflinger/Tracks.cpp +54 −0 Original line number Original line Diff line number Diff line Loading @@ -1401,6 +1401,60 @@ void AudioFlinger::PlaybackThread::Track::copyMetadataTo(MetadataInserter& backI .content_type = mAttr.content_type, .content_type = mAttr.content_type, .gain = mFinalVolume, .gain = mFinalVolume, }; }; // When attributes are undefined, derive default values from stream type. // See AudioAttributes.java, usageForStreamType() and Builder.setInternalLegacyStreamType() if (mAttr.usage == AUDIO_USAGE_UNKNOWN) { switch (mStreamType) { case AUDIO_STREAM_VOICE_CALL: metadata.base.usage = AUDIO_USAGE_VOICE_COMMUNICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_SYSTEM: metadata.base.usage = AUDIO_USAGE_ASSISTANCE_SONIFICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_RING: metadata.base.usage = AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_MUSIC: metadata.base.usage = AUDIO_USAGE_MEDIA; metadata.base.content_type = AUDIO_CONTENT_TYPE_MUSIC; break; case AUDIO_STREAM_ALARM: metadata.base.usage = AUDIO_USAGE_ALARM; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_NOTIFICATION: metadata.base.usage = AUDIO_USAGE_NOTIFICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_DTMF: metadata.base.usage = AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_ACCESSIBILITY: metadata.base.usage = AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_ASSISTANT: metadata.base.usage = AUDIO_USAGE_ASSISTANT; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_REROUTING: metadata.base.usage = AUDIO_USAGE_VIRTUAL_SOURCE; // unknown content type break; case AUDIO_STREAM_CALL_ASSISTANT: metadata.base.usage = AUDIO_USAGE_CALL_ASSISTANT; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; default: break; } } metadata.channel_mask = mChannelMask, metadata.channel_mask = mChannelMask, strncpy(metadata.tags, mAttr.tags, AUDIO_ATTRIBUTES_TAGS_MAX_SIZE); strncpy(metadata.tags, mAttr.tags, AUDIO_ATTRIBUTES_TAGS_MAX_SIZE); *backInserter++ = metadata; *backInserter++ = metadata; Loading Loading
services/audioflinger/Tracks.cpp +54 −0 Original line number Original line Diff line number Diff line Loading @@ -1401,6 +1401,60 @@ void AudioFlinger::PlaybackThread::Track::copyMetadataTo(MetadataInserter& backI .content_type = mAttr.content_type, .content_type = mAttr.content_type, .gain = mFinalVolume, .gain = mFinalVolume, }; }; // When attributes are undefined, derive default values from stream type. // See AudioAttributes.java, usageForStreamType() and Builder.setInternalLegacyStreamType() if (mAttr.usage == AUDIO_USAGE_UNKNOWN) { switch (mStreamType) { case AUDIO_STREAM_VOICE_CALL: metadata.base.usage = AUDIO_USAGE_VOICE_COMMUNICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_SYSTEM: metadata.base.usage = AUDIO_USAGE_ASSISTANCE_SONIFICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_RING: metadata.base.usage = AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_MUSIC: metadata.base.usage = AUDIO_USAGE_MEDIA; metadata.base.content_type = AUDIO_CONTENT_TYPE_MUSIC; break; case AUDIO_STREAM_ALARM: metadata.base.usage = AUDIO_USAGE_ALARM; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_NOTIFICATION: metadata.base.usage = AUDIO_USAGE_NOTIFICATION; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_DTMF: metadata.base.usage = AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; metadata.base.content_type = AUDIO_CONTENT_TYPE_SONIFICATION; break; case AUDIO_STREAM_ACCESSIBILITY: metadata.base.usage = AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_ASSISTANT: metadata.base.usage = AUDIO_USAGE_ASSISTANT; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; case AUDIO_STREAM_REROUTING: metadata.base.usage = AUDIO_USAGE_VIRTUAL_SOURCE; // unknown content type break; case AUDIO_STREAM_CALL_ASSISTANT: metadata.base.usage = AUDIO_USAGE_CALL_ASSISTANT; metadata.base.content_type = AUDIO_CONTENT_TYPE_SPEECH; break; default: break; } } metadata.channel_mask = mChannelMask, metadata.channel_mask = mChannelMask, strncpy(metadata.tags, mAttr.tags, AUDIO_ATTRIBUTES_TAGS_MAX_SIZE); strncpy(metadata.tags, mAttr.tags, AUDIO_ATTRIBUTES_TAGS_MAX_SIZE); *backInserter++ = metadata; *backInserter++ = metadata; Loading