// Copyright 2016 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. // #ifndef BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_SERVICE_H_ #define BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_SERVICE_H_ #include "android/brillo/brilloaudioservice/BnBrilloAudioService.h" #include #include #include #include #include "android/brillo/brilloaudioservice/IAudioServiceCallback.h" #include "audio_device_handler.h" #include "audio_volume_handler.h" using android::binder::Status; using android::brillo::brilloaudioservice::BnBrilloAudioService; using android::brillo::brilloaudioservice::IAudioServiceCallback; namespace brillo { class BrilloAudioService : public BnBrilloAudioService { public: virtual ~BrilloAudioService() {} // From AIDL. virtual Status GetDevices(int flag, std::vector* _aidl_return) = 0; virtual Status SetDevice(int usage, int config) = 0; virtual Status GetMaxVolumeSteps(int stream, int* _aidl_return) = 0; virtual Status SetMaxVolumeSteps(int stream, int max_steps) = 0; virtual Status SetVolumeIndex(int stream, int device, int index) = 0; virtual Status GetVolumeIndex(int stream, int device, int* _aidl_return) = 0; virtual Status GetVolumeControlStream(int* _aidl_return) = 0; virtual Status SetVolumeControlStream(int stream) = 0; virtual Status IncrementVolume() = 0; virtual Status DecrementVolume() = 0; virtual Status RegisterServiceCallback( const android::sp& callback) = 0; virtual Status UnregisterServiceCallback( const android::sp& callback) = 0; // Register daemon handlers. // // |audio_device_handler| is a weak pointer to an audio device handler object. // |audio_volume_handler| is a weak pointer to an audio volume handler object. virtual void RegisterHandlers( std::weak_ptr audio_device_handler, std::weak_ptr audio_volume_handler) = 0; // Callback to be called when a device is connected. // // |devices| is a vector of ints representing the audio_devices_t. virtual void OnDevicesConnected(const std::vector& device) = 0; // Callback to be called when a device is disconnected. // // |devices| is a vector of ints representing the audio_devices_t. virtual void OnDevicesDisconnected(const std::vector& device) = 0; // Callback to be called when the volume is changed. // // |stream| is an audio_stream_type_t representing the stream. // |previous_index| is the volume index before the key press. // |current_index| is the volume index after the key press. virtual void OnVolumeChanged(audio_stream_type_t stream, int previous_index, int current_index) = 0; }; } // namespace brillo #endif // BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_SERVICE_H_