Loading media/libaudioclient/AudioPolicy.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,10 @@ status_t AudioMixMatchCriterion::readFromParcel(Parcel *parcel) case RULE_EXCLUDE_USERID: mValue.mUserId = (int) parcel->readInt32(); break; case RULE_MATCH_AUDIO_SESSION_ID: case RULE_EXCLUDE_AUDIO_SESSION_ID: mValue.mAudioSessionId = (audio_session_t) parcel->readInt32(); break; default: ALOGE("Trying to build AudioMixMatchCriterion from unknown rule %d", mRule); return BAD_VALUE; Loading media/libaudioclient/PolicyAidlConversion.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ aidl2legacy_AudioMixMatchCriterionValue( convertIntegral<int>(UNION_GET(aidl, userId).value())); *rule |= RULE_MATCH_USERID; return legacy; case media::AudioMixMatchCriterionValue::audioSessionId: legacy.mAudioSessionId = VALUE_OR_RETURN( aidl2legacy_int32_t_audio_session_t(UNION_GET(aidl, audioSessionId).value())); *rule |= RULE_MATCH_AUDIO_SESSION_ID; return legacy; } return unexpected(BAD_VALUE); } Loading Loading @@ -185,7 +190,10 @@ legacy2aidl_AudioMixMatchCriterionValue( case RULE_MATCH_USERID: UNION_SET(aidl, userId, VALUE_OR_RETURN(convertReinterpret<uint32_t>(legacy.mUserId))); break; case RULE_MATCH_AUDIO_SESSION_ID: UNION_SET(aidl, audioSessionId, VALUE_OR_RETURN(legacy2aidl_audio_session_t_int32_t(legacy.mAudioSessionId))); break; default: return unexpected(BAD_VALUE); } Loading media/libaudioclient/aidl/android/media/AudioMixMatchCriterionValue.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,6 @@ union AudioMixMatchCriterionValue { /** Interpreted as uid_t. */ int uid; int userId; /** Interpreted as audio_session_t. */ int audioSessionId; } media/libaudioclient/include/media/AudioPolicy.h +3 −0 Original line number Diff line number Diff line Loading @@ -34,11 +34,13 @@ namespace android { #define RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET (0x1 << 1) #define RULE_MATCH_UID (0x1 << 2) #define RULE_MATCH_USERID (0x1 << 3) #define RULE_MATCH_AUDIO_SESSION_ID (0x1 << 4) #define RULE_EXCLUDE_ATTRIBUTE_USAGE (RULE_EXCLUSION_MASK|RULE_MATCH_ATTRIBUTE_USAGE) #define RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET \ (RULE_EXCLUSION_MASK|RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET) #define RULE_EXCLUDE_UID (RULE_EXCLUSION_MASK|RULE_MATCH_UID) #define RULE_EXCLUDE_USERID (RULE_EXCLUSION_MASK|RULE_MATCH_USERID) #define RULE_EXCLUDE_AUDIO_SESSION_ID (RULE_EXCLUSION_MASK|RULE_MATCH_AUDIO_SESSION_ID) #define MIX_TYPE_INVALID (-1) #define MIX_TYPE_PLAYERS 0 Loading Loading @@ -78,6 +80,7 @@ public: audio_source_t mSource; uid_t mUid; int mUserId; audio_session_t mAudioSessionId; } mValue; uint32_t mRule; }; Loading media/libaudioclient/tests/audioclient_serialization_tests.cpp +10 −10 Original line number Diff line number Diff line Loading @@ -66,8 +66,7 @@ static const std::vector<audio_stream_type_t> kStreamtypes = decltype(audio_stream_type_from_string)>(xsdc_enum_range<xsd::AudioStreamType>{}, audio_stream_type_from_string); static const std::vector<uint32_t> kMixMatchRules = { RULE_MATCH_ATTRIBUTE_USAGE, static const std::vector<uint32_t> kMixMatchRules = {RULE_MATCH_ATTRIBUTE_USAGE, RULE_EXCLUDE_ATTRIBUTE_USAGE, RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET, RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET, Loading @@ -75,7 +74,8 @@ static const std::vector<uint32_t> kMixMatchRules = { RULE_EXCLUDE_UID, RULE_MATCH_USERID, RULE_EXCLUDE_USERID, }; RULE_MATCH_AUDIO_SESSION_ID, RULE_EXCLUDE_AUDIO_SESSION_ID}; // Generates a random string. std::string CreateRandomString(size_t n) { Loading Loading
media/libaudioclient/AudioPolicy.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,10 @@ status_t AudioMixMatchCriterion::readFromParcel(Parcel *parcel) case RULE_EXCLUDE_USERID: mValue.mUserId = (int) parcel->readInt32(); break; case RULE_MATCH_AUDIO_SESSION_ID: case RULE_EXCLUDE_AUDIO_SESSION_ID: mValue.mAudioSessionId = (audio_session_t) parcel->readInt32(); break; default: ALOGE("Trying to build AudioMixMatchCriterion from unknown rule %d", mRule); return BAD_VALUE; Loading
media/libaudioclient/PolicyAidlConversion.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ aidl2legacy_AudioMixMatchCriterionValue( convertIntegral<int>(UNION_GET(aidl, userId).value())); *rule |= RULE_MATCH_USERID; return legacy; case media::AudioMixMatchCriterionValue::audioSessionId: legacy.mAudioSessionId = VALUE_OR_RETURN( aidl2legacy_int32_t_audio_session_t(UNION_GET(aidl, audioSessionId).value())); *rule |= RULE_MATCH_AUDIO_SESSION_ID; return legacy; } return unexpected(BAD_VALUE); } Loading Loading @@ -185,7 +190,10 @@ legacy2aidl_AudioMixMatchCriterionValue( case RULE_MATCH_USERID: UNION_SET(aidl, userId, VALUE_OR_RETURN(convertReinterpret<uint32_t>(legacy.mUserId))); break; case RULE_MATCH_AUDIO_SESSION_ID: UNION_SET(aidl, audioSessionId, VALUE_OR_RETURN(legacy2aidl_audio_session_t_int32_t(legacy.mAudioSessionId))); break; default: return unexpected(BAD_VALUE); } Loading
media/libaudioclient/aidl/android/media/AudioMixMatchCriterionValue.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,6 @@ union AudioMixMatchCriterionValue { /** Interpreted as uid_t. */ int uid; int userId; /** Interpreted as audio_session_t. */ int audioSessionId; }
media/libaudioclient/include/media/AudioPolicy.h +3 −0 Original line number Diff line number Diff line Loading @@ -34,11 +34,13 @@ namespace android { #define RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET (0x1 << 1) #define RULE_MATCH_UID (0x1 << 2) #define RULE_MATCH_USERID (0x1 << 3) #define RULE_MATCH_AUDIO_SESSION_ID (0x1 << 4) #define RULE_EXCLUDE_ATTRIBUTE_USAGE (RULE_EXCLUSION_MASK|RULE_MATCH_ATTRIBUTE_USAGE) #define RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET \ (RULE_EXCLUSION_MASK|RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET) #define RULE_EXCLUDE_UID (RULE_EXCLUSION_MASK|RULE_MATCH_UID) #define RULE_EXCLUDE_USERID (RULE_EXCLUSION_MASK|RULE_MATCH_USERID) #define RULE_EXCLUDE_AUDIO_SESSION_ID (RULE_EXCLUSION_MASK|RULE_MATCH_AUDIO_SESSION_ID) #define MIX_TYPE_INVALID (-1) #define MIX_TYPE_PLAYERS 0 Loading Loading @@ -78,6 +80,7 @@ public: audio_source_t mSource; uid_t mUid; int mUserId; audio_session_t mAudioSessionId; } mValue; uint32_t mRule; }; Loading
media/libaudioclient/tests/audioclient_serialization_tests.cpp +10 −10 Original line number Diff line number Diff line Loading @@ -66,8 +66,7 @@ static const std::vector<audio_stream_type_t> kStreamtypes = decltype(audio_stream_type_from_string)>(xsdc_enum_range<xsd::AudioStreamType>{}, audio_stream_type_from_string); static const std::vector<uint32_t> kMixMatchRules = { RULE_MATCH_ATTRIBUTE_USAGE, static const std::vector<uint32_t> kMixMatchRules = {RULE_MATCH_ATTRIBUTE_USAGE, RULE_EXCLUDE_ATTRIBUTE_USAGE, RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET, RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET, Loading @@ -75,7 +74,8 @@ static const std::vector<uint32_t> kMixMatchRules = { RULE_EXCLUDE_UID, RULE_MATCH_USERID, RULE_EXCLUDE_USERID, }; RULE_MATCH_AUDIO_SESSION_ID, RULE_EXCLUDE_AUDIO_SESSION_ID}; // Generates a random string. std::string CreateRandomString(size_t n) { Loading