Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63db4137 authored by Ján Sebechlebský's avatar Ján Sebechlebský Committed by Android (Google) Code Review
Browse files

Merge "Add support for audio session id based routing"

parents 45c4db3f 1a80c062
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
+9 −1
Original line number Diff line number Diff line
@@ -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);
}
@@ -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);
    }
+2 −0
Original line number Diff line number Diff line
@@ -28,4 +28,6 @@ union AudioMixMatchCriterionValue {
    /** Interpreted as uid_t. */
    int uid;
    int userId;
    /** Interpreted as audio_session_t. */
    int audioSessionId;
}
+3 −0
Original line number Diff line number Diff line
@@ -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
@@ -78,6 +80,7 @@ public:
        audio_source_t  mSource;
        uid_t           mUid;
        int        mUserId;
        audio_session_t  mAudioSessionId;
    } mValue;
    uint32_t        mRule;
};
+10 −10
Original line number Diff line number Diff line
@@ -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,
@@ -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