blob: f5c227e203443ed5a37444fb9f33c482002a76ec [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.automotive.audiocontrol@1.0;
/**
* Implemented on client (framework) side to receive asynchronous updates from the car.
*/
interface IAudioControlCallback {
/**
* When the HAL makes this call, any apps currently playing must be asked to
* temporarily suspend playback (via an AudioManager::AUDIOFOCUS_LOSS_TRANSIENT event).
*
* This is only a suggestion. Apps may be slow to react or even ignore this message
* entirely. Enforcement, if necessary, must be done at the AudioHAL level as the
* samples are delivered. In most instances, this is the way a car should ask for
* quiet if it needs it for some important situation, such as warning alarms or chimes.
*/
oneway suggestPausePlayers();
/**
* When the HAL makes this case, any apps currently playing must be asked to stop
* playing (via an AudioManager::AUDIOFOCUS_LOSS event). Once stopped, the apps must
* not resume their playback.
*
* It should be noted that not all apps or sound sources honor this request, but this
* at least gives an app the chance to do the right thing.
* Because it premanently stops media, this call is expected to be used only rarely.
* Perhaps in the event of an E-call, where resuming music might be undesirable assuming
* the driver is now dealing with whatever the emergency is?
*/
oneway suggestStopPlayers();
/**
* Receives calls from the HAL when Android should resume normal operations. If the previous
* action was a requestPausePlayers, then things that were paused must be told they may
* resume.
*/
oneway resumePlayers();
};