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

Commit 020098b1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "audiopolicy: speaker cleanup AudioAttributes usage"" into main

parents 2eec59a2 2dbb1a99
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1802,6 +1802,8 @@ aidl2legacy_AudioUsage_audio_usage_t(AudioUsage aidl) {
            return AUDIO_USAGE_VEHICLE_STATUS;
        case AudioUsage::ANNOUNCEMENT:
            return AUDIO_USAGE_ANNOUNCEMENT;
        case AudioUsage::SPEAKER_CLEANUP:
            return AUDIO_USAGE_SPEAKER_CLEANUP;
    }
    return unexpected(BAD_VALUE);
}
@@ -1853,6 +1855,8 @@ legacy2aidl_audio_usage_t_AudioUsage(audio_usage_t legacy) {
            return AudioUsage::VEHICLE_STATUS;
        case AUDIO_USAGE_ANNOUNCEMENT:
            return AudioUsage::ANNOUNCEMENT;
        case AUDIO_USAGE_SPEAKER_CLEANUP:
            return AudioUsage::SPEAKER_CLEANUP;
    }
    return unexpected(BAD_VALUE);
}
+2 −0
Original line number Diff line number Diff line
@@ -131,6 +131,8 @@ const engineConfig::ProductStrategies gOrderedStrategies = {
              {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT,
                AUDIO_FLAG_BEACON, ""},
              {AUDIO_CONTENT_TYPE_ULTRASOUND, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT,
                AUDIO_FLAG_NONE, ""},
              {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_SPEAKER_CLEANUP, AUDIO_SOURCE_DEFAULT,
                AUDIO_FLAG_NONE, ""}
          }
         }
+11 −0
Original line number Diff line number Diff line
@@ -425,6 +425,17 @@ Status AudioPolicyService::getOutputForAttr(const media::audio::common::AudioAtt
        }
    }

    //TODO this permission check should extend to all system usages
    if (attr.usage == AUDIO_USAGE_SPEAKER_CLEANUP) {
        if (!(audioserver_permissions() ?
              CHECK_PERM(MODIFY_AUDIO_ROUTING, attributionSource.uid)
              : modifyAudioRoutingAllowed())) {
            ALOGE("%s: permission denied: SPEAKER_CLEANUP not allowed for uid %d pid %d",
                    __func__, attributionSource.uid, attributionSource.pid);
            return binderStatusFromStatusT(PERMISSION_DENIED);
        }
    }

    AutoCallerClear acc;
    AudioPolicyInterface::output_type_t outputType;
    bool isSpatialized = false;