/* * Copyright (C) 2018 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 ANDROID_HARDWARE_AUDIO_PRIMARYDEVICE_H #define ANDROID_HARDWARE_AUDIO_PRIMARYDEVICE_H #include PATH(android/hardware/audio/FILE_VERSION/IPrimaryDevice.h) #include "Device.h" #include #include namespace android { namespace hardware { namespace audio { namespace CPP_VERSION { namespace implementation { using ::android::sp; using ::android::hardware::hidl_string; using ::android::hardware::hidl_vec; using ::android::hardware::Return; using ::android::hardware::Void; using namespace ::android::hardware::audio::common::COMMON_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CORE_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CPP_VERSION; struct PrimaryDevice : public IPrimaryDevice { explicit PrimaryDevice(audio_hw_device_t* device); // Methods from ::android::hardware::audio::CPP_VERSION::IDevice follow. Return initCheck() override; Return setMasterVolume(float volume) override; Return getMasterVolume(getMasterVolume_cb _hidl_cb) override; Return setMicMute(bool mute) override; Return getMicMute(getMicMute_cb _hidl_cb) override; Return setMasterMute(bool mute) override; Return getMasterMute(getMasterMute_cb _hidl_cb) override; Return getInputBufferSize(const AudioConfig& config, getInputBufferSize_cb _hidl_cb) override; Return openOutputStream(int32_t ioHandle, const DeviceAddress& device, const AudioConfig& config, #if MAJOR_VERSION <= 6 AudioOutputFlags flags, #else const AudioOutputFlags& flags, #endif #if MAJOR_VERSION >= 4 const SourceMetadata& sourceMetadata, #endif openOutputStream_cb _hidl_cb) override; Return openInputStream(int32_t ioHandle, const DeviceAddress& device, const AudioConfig& config, #if MAJOR_VERSION <= 6 AudioInputFlags flags, #else const AudioInputFlags& flags, #endif #if MAJOR_VERSION == 2 AudioSource source, #elif MAJOR_VERSION >= 4 const SinkMetadata& sinkMetadata, #endif openInputStream_cb _hidl_cb) override; Return supportsAudioPatches() override; Return createAudioPatch(const hidl_vec& sources, const hidl_vec& sinks, createAudioPatch_cb _hidl_cb) override; Return releaseAudioPatch(int32_t patch) override; Return getAudioPort(const AudioPort& port, getAudioPort_cb _hidl_cb) override; Return setAudioPortConfig(const AudioPortConfig& config) override; Return setScreenState(bool turnedOn) override; #if MAJOR_VERSION == 2 Return getHwAvSync() override; Return getParameters(const hidl_vec& keys, getParameters_cb _hidl_cb) override; Return setParameters(const hidl_vec& parameters) override; Return debugDump(const hidl_handle& fd) override; #elif MAJOR_VERSION >= 4 Return getHwAvSync(getHwAvSync_cb _hidl_cb) override; Return getParameters(const hidl_vec& context, const hidl_vec& keys, getParameters_cb _hidl_cb) override; Return setParameters(const hidl_vec& context, const hidl_vec& parameters) override; Return getMicrophones(getMicrophones_cb _hidl_cb) override; Return setConnectedState(const DeviceAddress& address, bool connected) override; #endif #if MAJOR_VERSION >= 6 Return close() override; Return addDeviceEffect(AudioPortHandle device, uint64_t effectId) override; Return removeDeviceEffect(AudioPortHandle device, uint64_t effectId) override; Return updateAudioPatch(int32_t previousPatch, const hidl_vec& sources, const hidl_vec& sinks, updateAudioPatch_cb _hidl_cb) override; #endif Return debug(const hidl_handle& fd, const hidl_vec& options) override; // Methods from ::android::hardware::audio::CPP_VERSION::IPrimaryDevice follow. Return setVoiceVolume(float volume) override; Return setMode(AudioMode mode) override; Return getBtScoNrecEnabled(getBtScoNrecEnabled_cb _hidl_cb) override; Return setBtScoNrecEnabled(bool enabled) override; Return getBtScoWidebandEnabled(getBtScoWidebandEnabled_cb _hidl_cb) override; Return setBtScoWidebandEnabled(bool enabled) override; Return getTtyMode(getTtyMode_cb _hidl_cb) override; Return setTtyMode(IPrimaryDevice::TtyMode mode) override; Return getHacEnabled(getHacEnabled_cb _hidl_cb) override; Return setHacEnabled(bool enabled) override; #if MAJOR_VERSION >= 4 Return setBtScoHeadsetDebugName(const hidl_string& name) override; Return getBtHfpEnabled(getBtHfpEnabled_cb _hidl_cb) override; Return setBtHfpEnabled(bool enabled) override; Return setBtHfpSampleRate(uint32_t sampleRateHz) override; Return setBtHfpVolume(float volume) override; Return updateRotation(IPrimaryDevice::Rotation rotation) override; #endif #if MAJOR_VERSION == 7 && MINOR_VERSION == 1 Return> getDevice() override { return mDevice; } #endif private: sp mDevice; virtual ~PrimaryDevice(); }; } // namespace implementation } // namespace CPP_VERSION } // namespace audio } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_AUDIO_PRIMARYDEVICE_H