Loading media/libeffects/downmix/aidl/DownmixContext.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "DownmixContext.h" using aidl::android::hardware::audio::effect::IEffect; using ::aidl::android::media::audio::common::AudioChannelLayout; using ::android::hardware::audio::common::getChannelCount; namespace aidl::android::hardware::audio::effect { Loading media/libeffects/downmix/aidl/DownmixContext.h +5 −17 Original line number Diff line number Diff line Loading @@ -22,9 +22,6 @@ namespace aidl::android::hardware::audio::effect { using media::audio::common::AudioChannelLayout; using media::audio::common::AudioDeviceDescription; enum DownmixState { DOWNMIX_STATE_UNINITIALIZED, DOWNMIX_STATE_INITIALIZED, Loading @@ -45,34 +42,25 @@ class DownmixContext final : public EffectContext { } Downmix::Type getDmType() const { return mType; } RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) override { // FIXME change volume mVolumeStereo = volumeStereo; return RetCode::SUCCESS; } Parameter::VolumeStereo getVolumeStereo() override { return mVolumeStereo; } RetCode setOutputDevice(const AudioDeviceDescription& device) override { RetCode setOutputDevice( const std::vector<::aidl::android::media::audio::common::AudioDeviceDescription>& device) override { // FIXME change type if playing on headset vs speaker mOutputDevice = device; return RetCode::SUCCESS; } AudioDeviceDescription getOutputDevice() { return mOutputDevice; } IEffect::Status lvmProcess(float* in, float* out, int samples); private: DownmixState mState; Downmix::Type mType; AudioChannelLayout mChMask; ::aidl::android::media::audio::common::AudioChannelLayout mChMask; ::android::audio_utils::channels::ChannelMix mChannelMix; // Common Params AudioDeviceDescription mOutputDevice; Parameter::VolumeStereo mVolumeStereo; void init_params(const Parameter::Common& common); bool isChannelMaskValid(AudioChannelLayout channelMask); bool isChannelMaskValid(::aidl::android::media::audio::common::AudioChannelLayout channelMask); }; } // namespace aidl::android::hardware::audio::effect media/libeffects/lvm/wrapper/Aidl/BundleContext.cpp +29 −19 Original line number Diff line number Diff line Loading @@ -287,32 +287,42 @@ RetCode BundleContext::limitLevel() { } bool BundleContext::isDeviceSupportedBassBoost( const aidl::android::media::audio::common::AudioDeviceDescription& device) { return (device == AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, ""} || device == AudioDeviceDescription{AudioDeviceType::OUT_CARKIT, AudioDeviceDescription::CONNECTION_BT_SCO} || device == AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, AudioDeviceDescription::CONNECTION_BT_A2DP}); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { for (const auto& device : devices) { if (device != AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, ""} && device != AudioDeviceDescription{AudioDeviceType::OUT_CARKIT, AudioDeviceDescription::CONNECTION_BT_SCO} && device != AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, AudioDeviceDescription::CONNECTION_BT_A2DP}) { return false; } } return true; } bool BundleContext::isDeviceSupportedVirtualizer( const aidl::android::media::audio::common::AudioDeviceDescription& device) { return (device == AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_ANALOG} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_ANALOG} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_BT_A2DP} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_USB}); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { for (const auto& device : devices) { if (device != AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_ANALOG} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_ANALOG} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_BT_A2DP} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_USB}) { return false; } } return true; } RetCode BundleContext::setOutputDevice( const aidl::android::media::audio::common::AudioDeviceDescription& device) { mOutputDevice = device; const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { mOutputDevice = devices; switch (mType) { case lvm::BundleEffectType::BASS_BOOST: if (isDeviceSupportedBassBoost(device)) { if (!isDeviceSupportedBassBoost(devices)) { // If a device doesn't support bass boost, the effect must be temporarily disabled. // The effect must still report its original state as this can only be changed by // the start/stop commands. Loading @@ -330,7 +340,7 @@ RetCode BundleContext::setOutputDevice( } break; case lvm::BundleEffectType::VIRTUALIZER: if (isDeviceSupportedVirtualizer(device)) { if (!isDeviceSupportedVirtualizer(devices)) { if (mEnabled) { disableOperatingMode(); } Loading media/libeffects/lvm/wrapper/Aidl/BundleContext.h +6 −3 Original line number Diff line number Diff line Loading @@ -57,11 +57,14 @@ class BundleContext final : public EffectContext { return mChMask; } bool isDeviceSupportedBassBoost( const aidl::android::media::audio::common::AudioDeviceDescription& device); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices); bool isDeviceSupportedVirtualizer( const aidl::android::media::audio::common::AudioDeviceDescription& device); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices); RetCode setOutputDevice( const aidl::android::media::audio::common::AudioDeviceDescription& device) override; const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) override; RetCode setEqualizerPreset(const std::size_t presetIdx); int getEqualizerPreset() const { return mCurPresetIdx; } Loading Loading
media/libeffects/downmix/aidl/DownmixContext.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "DownmixContext.h" using aidl::android::hardware::audio::effect::IEffect; using ::aidl::android::media::audio::common::AudioChannelLayout; using ::android::hardware::audio::common::getChannelCount; namespace aidl::android::hardware::audio::effect { Loading
media/libeffects/downmix/aidl/DownmixContext.h +5 −17 Original line number Diff line number Diff line Loading @@ -22,9 +22,6 @@ namespace aidl::android::hardware::audio::effect { using media::audio::common::AudioChannelLayout; using media::audio::common::AudioDeviceDescription; enum DownmixState { DOWNMIX_STATE_UNINITIALIZED, DOWNMIX_STATE_INITIALIZED, Loading @@ -45,34 +42,25 @@ class DownmixContext final : public EffectContext { } Downmix::Type getDmType() const { return mType; } RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) override { // FIXME change volume mVolumeStereo = volumeStereo; return RetCode::SUCCESS; } Parameter::VolumeStereo getVolumeStereo() override { return mVolumeStereo; } RetCode setOutputDevice(const AudioDeviceDescription& device) override { RetCode setOutputDevice( const std::vector<::aidl::android::media::audio::common::AudioDeviceDescription>& device) override { // FIXME change type if playing on headset vs speaker mOutputDevice = device; return RetCode::SUCCESS; } AudioDeviceDescription getOutputDevice() { return mOutputDevice; } IEffect::Status lvmProcess(float* in, float* out, int samples); private: DownmixState mState; Downmix::Type mType; AudioChannelLayout mChMask; ::aidl::android::media::audio::common::AudioChannelLayout mChMask; ::android::audio_utils::channels::ChannelMix mChannelMix; // Common Params AudioDeviceDescription mOutputDevice; Parameter::VolumeStereo mVolumeStereo; void init_params(const Parameter::Common& common); bool isChannelMaskValid(AudioChannelLayout channelMask); bool isChannelMaskValid(::aidl::android::media::audio::common::AudioChannelLayout channelMask); }; } // namespace aidl::android::hardware::audio::effect
media/libeffects/lvm/wrapper/Aidl/BundleContext.cpp +29 −19 Original line number Diff line number Diff line Loading @@ -287,32 +287,42 @@ RetCode BundleContext::limitLevel() { } bool BundleContext::isDeviceSupportedBassBoost( const aidl::android::media::audio::common::AudioDeviceDescription& device) { return (device == AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, ""} || device == AudioDeviceDescription{AudioDeviceType::OUT_CARKIT, AudioDeviceDescription::CONNECTION_BT_SCO} || device == AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, AudioDeviceDescription::CONNECTION_BT_A2DP}); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { for (const auto& device : devices) { if (device != AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, ""} && device != AudioDeviceDescription{AudioDeviceType::OUT_CARKIT, AudioDeviceDescription::CONNECTION_BT_SCO} && device != AudioDeviceDescription{AudioDeviceType::OUT_SPEAKER, AudioDeviceDescription::CONNECTION_BT_A2DP}) { return false; } } return true; } bool BundleContext::isDeviceSupportedVirtualizer( const aidl::android::media::audio::common::AudioDeviceDescription& device) { return (device == AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_ANALOG} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_ANALOG} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_BT_A2DP} || device == AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_USB}); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { for (const auto& device : devices) { if (device != AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_ANALOG} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_ANALOG} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADPHONE, AudioDeviceDescription::CONNECTION_BT_A2DP} && device != AudioDeviceDescription{AudioDeviceType::OUT_HEADSET, AudioDeviceDescription::CONNECTION_USB}) { return false; } } return true; } RetCode BundleContext::setOutputDevice( const aidl::android::media::audio::common::AudioDeviceDescription& device) { mOutputDevice = device; const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) { mOutputDevice = devices; switch (mType) { case lvm::BundleEffectType::BASS_BOOST: if (isDeviceSupportedBassBoost(device)) { if (!isDeviceSupportedBassBoost(devices)) { // If a device doesn't support bass boost, the effect must be temporarily disabled. // The effect must still report its original state as this can only be changed by // the start/stop commands. Loading @@ -330,7 +340,7 @@ RetCode BundleContext::setOutputDevice( } break; case lvm::BundleEffectType::VIRTUALIZER: if (isDeviceSupportedVirtualizer(device)) { if (!isDeviceSupportedVirtualizer(devices)) { if (mEnabled) { disableOperatingMode(); } Loading
media/libeffects/lvm/wrapper/Aidl/BundleContext.h +6 −3 Original line number Diff line number Diff line Loading @@ -57,11 +57,14 @@ class BundleContext final : public EffectContext { return mChMask; } bool isDeviceSupportedBassBoost( const aidl::android::media::audio::common::AudioDeviceDescription& device); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices); bool isDeviceSupportedVirtualizer( const aidl::android::media::audio::common::AudioDeviceDescription& device); const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices); RetCode setOutputDevice( const aidl::android::media::audio::common::AudioDeviceDescription& device) override; const std::vector<aidl::android::media::audio::common::AudioDeviceDescription>& devices) override; RetCode setEqualizerPreset(const std::size_t presetIdx); int getEqualizerPreset() const { return mCurPresetIdx; } Loading