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}