199489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi/*
299489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * Copyright (C) 2017 The Android Open Source Project
399489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi *
499489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License");
599489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * you may not use this file except in compliance with the License.
699489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * You may obtain a copy of the License at
799489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi *
899489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi *      http://www.apache.org/licenses/LICENSE-2.0
999489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi *
1099489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software
1199489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS,
1299489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1399489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * See the License for the specific language governing permissions and
1499489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi * limitations under the License.
1599489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi */
1699489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi
1799489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivipackage com.android.server.audio;
1899489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi
1999489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivipublic interface PlayerFocusEnforcer {
2099489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi
2199489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi    /**
2299489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     * Ducks the players associated with the "loser" focus owner (i.e. same UID). Returns true if
2399489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     * at least one active player was found and ducked, false otherwise.
2499489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     * @param winner
2599489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     * @param loser
2699489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     * @return
2799489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi     */
289228af6bc20c27b9949df36684f9c06ca9cdb27dJean-Michel Trivi    public boolean duckPlayers(FocusRequester winner, FocusRequester loser, boolean forceDuck);
2999489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi
3099489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi    public void unduckPlayers(FocusRequester winner);
3162b8634f06b32f17eced8020ecd9240f70838124Jean-Michel Trivi
3262b8634f06b32f17eced8020ecd9240f70838124Jean-Michel Trivi    public void mutePlayersForCall(int[] usagesToMute);
3362b8634f06b32f17eced8020ecd9240f70838124Jean-Michel Trivi
3462b8634f06b32f17eced8020ecd9240f70838124Jean-Michel Trivi    public void unmutePlayersForCall();
3599489ccf740d369193a8ffc7eeb4bbde6919bd65Jean-Michel Trivi}