10dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik/* 20dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * Copyright (C) 2014 The Android Open Source Project 30dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * 40dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * Licensed under the Apache License, Version 2.0 (the "License"); 50dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * you may not use this file except in compliance with the License. 60dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * You may obtain a copy of the License at 70dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * 80dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * http://www.apache.org/licenses/LICENSE-2.0 90dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * 100dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * Unless required by applicable law or agreed to in writing, software 110dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * distributed under the License is distributed on an "AS IS" BASIS, 120dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * See the License for the specific language governing permissions and 140dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * limitations under the License. 150dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik */ 160dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErikpackage android.media; 170dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik 187c82ced4fc5b66c09a19eed9a5499039530142fbRoboErikimport android.os.IBinder; 197c82ced4fc5b66c09a19eed9a5499039530142fbRoboErik 200dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErikimport com.android.server.LocalServices; 210dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik 220dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik/** 230dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * Class for system services to access extra AudioManager functionality. The 240dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * AudioService is responsible for registering an implementation with 250dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * {@link LocalServices}. 260dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * 270dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik * @hide 280dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik */ 290dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErikpublic abstract class AudioManagerInternal { 300dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik 31272e161c1a200900cb10b5b0cdab8ae1f123cabdRoboErik public abstract void adjustSuggestedStreamVolumeForUid(int streamType, int direction, 32272e161c1a200900cb10b5b0cdab8ae1f123cabdRoboErik int flags, 33272e161c1a200900cb10b5b0cdab8ae1f123cabdRoboErik String callingPackage, int uid); 34272e161c1a200900cb10b5b0cdab8ae1f123cabdRoboErik 350dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik public abstract void adjustStreamVolumeForUid(int streamType, int direction, int flags, 360dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik String callingPackage, int uid); 370dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik 380dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik public abstract void setStreamVolumeForUid(int streamType, int direction, int flags, 390dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik String callingPackage, int uid); 40519c7744b522aa07e12bc3244ac3de14aa2a4ad0RoboErik 41519c7744b522aa07e12bc3244ac3de14aa2a4ad0RoboErik public abstract void adjustMasterVolumeForUid(int steps, int flags, String callingPackage, 42519c7744b522aa07e12bc3244ac3de14aa2a4ad0RoboErik int uid); 43661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 447c82ced4fc5b66c09a19eed9a5499039530142fbRoboErik public abstract void setMasterMuteForUid(boolean state, int flags, String callingPackage, 457c82ced4fc5b66c09a19eed9a5499039530142fbRoboErik IBinder cb, int uid); 467c82ced4fc5b66c09a19eed9a5499039530142fbRoboErik 47661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock public abstract void setRingerModeDelegate(RingerModeDelegate delegate); 48661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 49661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock public abstract int getRingerModeInternal(); 50661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 51661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock public abstract void setRingerModeInternal(int ringerMode, String caller); 52661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 53661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock public interface RingerModeDelegate { 54661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock /** Called when external ringer mode is evaluated, returns the new internal ringer mode */ 55661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int onSetRingerModeExternal(int ringerModeOld, int ringerModeNew, String caller, 56661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int ringerModeInternal); 57661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 58661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock /** Called when internal ringer mode is evaluated, returns the new external ringer mode */ 59661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int onSetRingerModeInternal(int ringerModeOld, int ringerModeNew, String caller, 60661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int ringerModeExternal); 61661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock } 620dac35af2c6aa42bcd181981b041747cfd1afa5fRoboErik} 63