1*ec779b8eSAndroid Build Coastguard Worker /* 2*ec779b8eSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*ec779b8eSAndroid Build Coastguard Worker * 4*ec779b8eSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*ec779b8eSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*ec779b8eSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*ec779b8eSAndroid Build Coastguard Worker * 8*ec779b8eSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*ec779b8eSAndroid Build Coastguard Worker * 10*ec779b8eSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*ec779b8eSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*ec779b8eSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*ec779b8eSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*ec779b8eSAndroid Build Coastguard Worker * limitations under the License. 15*ec779b8eSAndroid Build Coastguard Worker */ 16*ec779b8eSAndroid Build Coastguard Worker 17*ec779b8eSAndroid Build Coastguard Worker #ifndef ANDROID_AUDIO_MMAP_STREAM_CALLBACK_H 18*ec779b8eSAndroid Build Coastguard Worker #define ANDROID_AUDIO_MMAP_STREAM_CALLBACK_H 19*ec779b8eSAndroid Build Coastguard Worker 20*ec779b8eSAndroid Build Coastguard Worker #include <media/AudioContainers.h> 21*ec779b8eSAndroid Build Coastguard Worker #include <system/audio.h> 22*ec779b8eSAndroid Build Coastguard Worker #include <utils/Errors.h> 23*ec779b8eSAndroid Build Coastguard Worker #include <utils/RefBase.h> 24*ec779b8eSAndroid Build Coastguard Worker 25*ec779b8eSAndroid Build Coastguard Worker namespace android { 26*ec779b8eSAndroid Build Coastguard Worker 27*ec779b8eSAndroid Build Coastguard Worker 28*ec779b8eSAndroid Build Coastguard Worker class MmapStreamCallback : public virtual RefBase { 29*ec779b8eSAndroid Build Coastguard Worker public: 30*ec779b8eSAndroid Build Coastguard Worker 31*ec779b8eSAndroid Build Coastguard Worker /** 32*ec779b8eSAndroid Build Coastguard Worker * The mmap stream should be torn down because conditions that permitted its creation with 33*ec779b8eSAndroid Build Coastguard Worker * the requested parameters have changed and do not allow it to operate with the requested 34*ec779b8eSAndroid Build Coastguard Worker * constraints any more. 35*ec779b8eSAndroid Build Coastguard Worker * \param[in] handle handle for the client stream to tear down. 36*ec779b8eSAndroid Build Coastguard Worker */ 37*ec779b8eSAndroid Build Coastguard Worker virtual void onTearDown(audio_port_handle_t handle) = 0; 38*ec779b8eSAndroid Build Coastguard Worker 39*ec779b8eSAndroid Build Coastguard Worker /** 40*ec779b8eSAndroid Build Coastguard Worker * The volume to be applied to the use case specified when opening the stream has changed 41*ec779b8eSAndroid Build Coastguard Worker * \param[in] volume the new target volume 42*ec779b8eSAndroid Build Coastguard Worker */ 43*ec779b8eSAndroid Build Coastguard Worker virtual void onVolumeChanged(float volume) = 0; 44*ec779b8eSAndroid Build Coastguard Worker 45*ec779b8eSAndroid Build Coastguard Worker /** 46*ec779b8eSAndroid Build Coastguard Worker * The devices the stream is routed to/from has changed 47*ec779b8eSAndroid Build Coastguard Worker * \param[in] deviceIds a set of the device IDs of the new devices. 48*ec779b8eSAndroid Build Coastguard Worker */ 49*ec779b8eSAndroid Build Coastguard Worker virtual void onRoutingChanged(const DeviceIdVector& deviceIds) = 0; 50*ec779b8eSAndroid Build Coastguard Worker 51*ec779b8eSAndroid Build Coastguard Worker protected: MmapStreamCallback()52*ec779b8eSAndroid Build Coastguard Worker MmapStreamCallback() {} ~MmapStreamCallback()53*ec779b8eSAndroid Build Coastguard Worker virtual ~MmapStreamCallback() {} 54*ec779b8eSAndroid Build Coastguard Worker }; 55*ec779b8eSAndroid Build Coastguard Worker 56*ec779b8eSAndroid Build Coastguard Worker 57*ec779b8eSAndroid Build Coastguard Worker } // namespace android 58*ec779b8eSAndroid Build Coastguard Worker 59*ec779b8eSAndroid Build Coastguard Worker #endif // ANDROID_AUDIO_MMAP_STREAM_CALLBACK_H 60