diff --git a/CMakeLists.txt b/CMakeLists.txt index 0133a2f..7cff37f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,66 +11,125 @@ set(CMAKE_CXX_STANDARD 20) project("ViPER4Android") add_compile_definitions(VIPER_VERSION=20240314) +add_compile_definitions(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__) + +## Find AIDL compiler +#find_program(AIDL_COMPILER aidl +# PATHS ${ANDROID_SDK}/build-tools/*/ +# NO_DEFAULT_PATH) +#if(NOT AIDL_COMPILER) +# message(FATAL_ERROR "Could not find AIDL compiler in Android SDK build tools") +#endif() +# +## Set up AIDL file generation +#set(AIDL_FILE "/home/iscle/Downloads/interfaces-refs_heads_main/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl") +#set(AIDL_INCLUDE_DIRS +# "/home/iscle/Downloads/interfaces-refs_heads_main/common/aidl/aidl_api/android.hardware.common/current/" +# "/home/iscle/Downloads/interfaces-refs_heads_main/common/fmq/aidl/aidl_api/android.hardware.common.fmq/current/" +# "/home/iscle/Downloads/interfaces-refs_heads_main/audio/aidl/aidl_api/android.hardware.audio.common/current/" +# "/home/iscle/Downloads/interfaces-refs_heads_main/audio/aidl/aidl_api/android.hardware.audio.effect/current/" +# "/home/iscle/Downloads/interfaces-refs_heads_main (1)/media/aidl_api/android.media.audio.common.types/current/" +# "/home/iscle/Downloads/interfaces-refs_heads_main (1)/media/aidl_api/android.media.audio.eraser.types/current/" +#) +# +#set(AIDL_OUTPUT_DIR ${CMAKE_BINARY_DIR}/generated/aidl) +#set(AIDL_HEADER_OUTPUT_DIR ${CMAKE_BINARY_DIR}/generated/aidl/include) +# +#file(MAKE_DIRECTORY ${AIDL_OUTPUT_DIR}) +#file(MAKE_DIRECTORY ${AIDL_HEADER_OUTPUT_DIR}) +# +## Generate AIDL command +#set(AIDL_GENERATED_SRC ${AIDL_OUTPUT_DIR}/android/hardware/audio/effect/IEffect.cpp) +#set(AIDL_GENERATED_HEADER ${AIDL_HEADER_OUTPUT_DIR}/android/hardware/audio/effect/IEffect.h) +# +#add_custom_command( +# OUTPUT ${AIDL_GENERATED_SRC} ${AIDL_GENERATED_HEADER} +# COMMAND ${AIDL_COMPILER} +# --lang=ndk +# -o ${AIDL_OUTPUT_DIR} +# -h ${AIDL_HEADER_OUTPUT_DIR} +# --structured +# --stability=vintf +# ${AIDL_INCLUDE_DIRS_FLAGS} +# ${AIDL_FILE} +# DEPENDS ${AIDL_FILE} +# COMMENT "Generating AIDL C++ bindings for IEffect" +#) +# +## Convert include dirs to -I flags +#set(AIDL_INCLUDE_DIRS_FLAGS "") +#foreach(dir ${AIDL_INCLUDE_DIRS}) +# set(AIDL_INCLUDE_DIRS_FLAGS "${AIDL_INCLUDE_DIRS_FLAGS} -I \"${dir}\"") +#endforeach() + +set(AIDL_GENERATED_SRC + src/generated/android/hardware/audio/effect/IEffect.cpp +) # FFTS #add_subdirectory(src/viper/ffts) # ViPERFX include_directories(src/include) +include_directories(src/generated/include) # Add generated headers to include path set(FILES + # Add generated AIDL source + ${AIDL_GENERATED_SRC} + # Main - src/viper/ViPER.cpp - src/ViPER4Android.cpp - src/ViperContext.cpp + src/cpp/viper/ViPER.cpp + src/cpp/ViPER4Android.cpp + src/cpp/ViperContext.cpp + src/cpp/viper_aidl.cpp # Effects - src/viper/effects/AnalogX.cpp - src/viper/effects/ColorfulMusic.cpp - src/viper/effects/Convolver.cpp - src/viper/effects/Cure.cpp - src/viper/effects/DiffSurround.cpp - src/viper/effects/DynamicSystem.cpp - src/viper/effects/FETCompressor.cpp - src/viper/effects/IIRFilter.cpp - src/viper/effects/PlaybackGain.cpp - src/viper/effects/Reverberation.cpp - src/viper/effects/SoftwareLimiter.cpp - src/viper/effects/SpeakerCorrection.cpp - src/viper/effects/SpectrumExtend.cpp - src/viper/effects/TubeSimulator.cpp - src/viper/effects/VHE.cpp - src/viper/effects/ViPERBass.cpp - src/viper/effects/ViPERClarity.cpp - src/viper/effects/ViPERDDC.cpp + src/cpp/viper/effects/AnalogX.cpp + src/cpp/viper/effects/ColorfulMusic.cpp + src/cpp/viper/effects/Convolver.cpp + src/cpp/viper/effects/Cure.cpp + src/cpp/viper/effects/DiffSurround.cpp + src/cpp/viper/effects/DynamicSystem.cpp + src/cpp/viper/effects/FETCompressor.cpp + src/cpp/viper/effects/IIRFilter.cpp + src/cpp/viper/effects/PlaybackGain.cpp + src/cpp/viper/effects/Reverberation.cpp + src/cpp/viper/effects/SoftwareLimiter.cpp + src/cpp/viper/effects/SpeakerCorrection.cpp + src/cpp/viper/effects/SpectrumExtend.cpp + src/cpp/viper/effects/TubeSimulator.cpp + src/cpp/viper/effects/VHE.cpp + src/cpp/viper/effects/ViPERBass.cpp + src/cpp/viper/effects/ViPERClarity.cpp + src/cpp/viper/effects/ViPERDDC.cpp # Utils - src/viper/utils/AdaptiveBuffer.cpp - src/viper/utils/Biquad.cpp - src/viper/utils/CAllpassFilter.cpp - src/viper/utils/CCombFilter.cpp - src/viper/utils/CRevModel.cpp - src/viper/utils/Crossfeed.cpp - src/viper/utils/DepthSurround.cpp - src/viper/utils/DynamicBass.cpp - src/viper/utils/FIR.cpp - src/viper/utils/Harmonic.cpp - src/viper/utils/HiFi.cpp - src/viper/utils/HighShelf.cpp - src/viper/utils/IIR_1st.cpp - src/viper/utils/IIR_NOrder_BW_BP.cpp - src/viper/utils/IIR_NOrder_BW_LH.cpp - src/viper/utils/MinPhaseIIRCoeffs.cpp - src/viper/utils/MultiBiquad.cpp - src/viper/utils/NoiseSharpening.cpp - src/viper/utils/PassFilter.cpp - src/viper/utils/PConvSingle.cpp - src/viper/utils/PolesFilter.cpp - src/viper/utils/Polyphase.cpp - src/viper/utils/Stereo3DSurround.cpp - src/viper/utils/Subwoofer.cpp - src/viper/utils/TimeConstDelay.cpp - src/viper/utils/WaveBuffer.cpp) + src/cpp/viper/utils/AdaptiveBuffer.cpp + src/cpp/viper/utils/Biquad.cpp + src/cpp/viper/utils/CAllpassFilter.cpp + src/cpp/viper/utils/CCombFilter.cpp + src/cpp/viper/utils/CRevModel.cpp + src/cpp/viper/utils/Crossfeed.cpp + src/cpp/viper/utils/DepthSurround.cpp + src/cpp/viper/utils/DynamicBass.cpp + src/cpp/viper/utils/FIR.cpp + src/cpp/viper/utils/Harmonic.cpp + src/cpp/viper/utils/HiFi.cpp + src/cpp/viper/utils/HighShelf.cpp + src/cpp/viper/utils/IIR_1st.cpp + src/cpp/viper/utils/IIR_NOrder_BW_BP.cpp + src/cpp/viper/utils/IIR_NOrder_BW_LH.cpp + src/cpp/viper/utils/MinPhaseIIRCoeffs.cpp + src/cpp/viper/utils/MultiBiquad.cpp + src/cpp/viper/utils/NoiseSharpening.cpp + src/cpp/viper/utils/PassFilter.cpp + src/cpp/viper/utils/PConvSingle.cpp + src/cpp/viper/utils/PolesFilter.cpp + src/cpp/viper/utils/Polyphase.cpp + src/cpp/viper/utils/Stereo3DSurround.cpp + src/cpp/viper/utils/Subwoofer.cpp + src/cpp/viper/utils/TimeConstDelay.cpp + src/cpp/viper/utils/WaveBuffer.cpp) add_library( # Sets the name of the library. diff --git a/src/ViPER4Android.cpp b/src/cpp/ViPER4Android.cpp similarity index 85% rename from src/ViPER4Android.cpp rename to src/cpp/ViPER4Android.cpp index 1167467..4df6d5f 100644 --- a/src/ViPER4Android.cpp +++ b/src/cpp/ViPER4Android.cpp @@ -3,11 +3,13 @@ #include "essential.h" #include "viper/constants.h" #include "ViperContext.h" -#include -#include -#include -#include +#include "aidl/android/hardware/audio/effect/Descriptor.h" +#include "aidl/android/hardware/audio/effect/Flags.h" +#include "aidl/android/hardware/audio/effect/IEffect.h" +#include "aidl/android/media/audio/common/AudioUuid.h" #include +#include +#include "viper_aidl.h" using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::Flags; @@ -90,29 +92,22 @@ static int32_t viperLibraryGetDescriptor(const effect_uuid_t *uuid, effect_descr } } // extern "C" -extern "C" -__attribute__((visibility("default"))) -binder_exception_t createEffect(const AudioUuid *audio_uuid, std::shared_ptr *instance) { + +extern "C" binder_exception_t createEffect(const AudioUuid *audio_uuid, std::shared_ptr *instance) { + if (audio_uuid == nullptr || instance == nullptr) { + VIPER_LOGE("createEffect called with null arguments"); + return EX_ILLEGAL_ARGUMENT; + } VIPER_LOGD("createEffect called"); + *instance = ndk::SharedRefBase::make(); return EX_ILLEGAL_ARGUMENT; } -extern "C" -__attribute__((visibility("default"))) -binder_exception_t destroyEffect(const std::shared_ptr &instanceSp) { +extern "C" binder_exception_t destroyEffect(const std::shared_ptr &instanceSp) { VIPER_LOGD("destroyEffect called"); return EX_ILLEGAL_STATE; } -//extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) { -// if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVisualizer()) { -// LOG(ERROR) << __func__ << "uuid not supported"; -// return EX_ILLEGAL_ARGUMENT; -// } -// *_aidl_return = VisualizerImpl::kDescriptor; -// return EX_NONE; -//} - inline AudioUuid stringToUuid(const char* str) { AudioUuid uuid{}; uint32_t tmp[10]; @@ -131,7 +126,6 @@ inline AudioUuid stringToUuid(const char* str) { return uuid; } -const std::string kEffectName = "ViPER4Android"; const AudioUuid kType = stringToUuid("b9bc100c-26cd-42e6-acb6-cad8c3f778de"); const AudioUuid kUuid = stringToUuid("90380da3-8536-4744-a6a3-5731970e640f"); const Descriptor kDescriptor = { @@ -146,8 +140,8 @@ const Descriptor kDescriptor = { .insert = Flags::Insert::LAST, .volume = Flags::Volume::NONE }, - .name = kEffectName, - .implementor = "Iscle", + .name = VIPER_NAME, + .implementor = VIPER_AUTHORS, }, }; diff --git a/src/ViPER4Android.h b/src/cpp/ViPER4Android.h similarity index 100% rename from src/ViPER4Android.h rename to src/cpp/ViPER4Android.h diff --git a/src/ViperContext.cpp b/src/cpp/ViperContext.cpp similarity index 100% rename from src/ViperContext.cpp rename to src/cpp/ViperContext.cpp diff --git a/src/ViperContext.h b/src/cpp/ViperContext.h similarity index 100% rename from src/ViperContext.h rename to src/cpp/ViperContext.h diff --git a/src/log.h b/src/cpp/log.h similarity index 100% rename from src/log.h rename to src/cpp/log.h diff --git a/src/viper/ViPER.cpp b/src/cpp/viper/ViPER.cpp similarity index 100% rename from src/viper/ViPER.cpp rename to src/cpp/viper/ViPER.cpp diff --git a/src/viper/ViPER.h b/src/cpp/viper/ViPER.h similarity index 100% rename from src/viper/ViPER.h rename to src/cpp/viper/ViPER.h diff --git a/src/viper/constants.h b/src/cpp/viper/constants.h similarity index 95% rename from src/viper/constants.h rename to src/cpp/viper/constants.h index 2b451d8..307d203 100644 --- a/src/viper/constants.h +++ b/src/cpp/viper/constants.h @@ -35,6 +35,7 @@ enum class Architecture : uint8_t { */ #endif +// TODO: Move to C++ class or something nicer :) #define VIPER_NAME "ViPER4Android" #define VIPER_AUTHORS "viper.WYF, Martmists, Iscle" #define VIPER_DEFAULT_SAMPLING_RATE 44100 \ No newline at end of file diff --git a/src/viper/effects/AnalogX.cpp b/src/cpp/viper/effects/AnalogX.cpp similarity index 100% rename from src/viper/effects/AnalogX.cpp rename to src/cpp/viper/effects/AnalogX.cpp diff --git a/src/viper/effects/AnalogX.h b/src/cpp/viper/effects/AnalogX.h similarity index 100% rename from src/viper/effects/AnalogX.h rename to src/cpp/viper/effects/AnalogX.h diff --git a/src/viper/effects/ColorfulMusic.cpp b/src/cpp/viper/effects/ColorfulMusic.cpp similarity index 100% rename from src/viper/effects/ColorfulMusic.cpp rename to src/cpp/viper/effects/ColorfulMusic.cpp diff --git a/src/viper/effects/ColorfulMusic.h b/src/cpp/viper/effects/ColorfulMusic.h similarity index 100% rename from src/viper/effects/ColorfulMusic.h rename to src/cpp/viper/effects/ColorfulMusic.h diff --git a/src/viper/effects/Convolver.cpp b/src/cpp/viper/effects/Convolver.cpp similarity index 100% rename from src/viper/effects/Convolver.cpp rename to src/cpp/viper/effects/Convolver.cpp diff --git a/src/viper/effects/Convolver.h b/src/cpp/viper/effects/Convolver.h similarity index 100% rename from src/viper/effects/Convolver.h rename to src/cpp/viper/effects/Convolver.h diff --git a/src/viper/effects/Cure.cpp b/src/cpp/viper/effects/Cure.cpp similarity index 100% rename from src/viper/effects/Cure.cpp rename to src/cpp/viper/effects/Cure.cpp diff --git a/src/viper/effects/Cure.h b/src/cpp/viper/effects/Cure.h similarity index 100% rename from src/viper/effects/Cure.h rename to src/cpp/viper/effects/Cure.h diff --git a/src/viper/effects/DiffSurround.cpp b/src/cpp/viper/effects/DiffSurround.cpp similarity index 100% rename from src/viper/effects/DiffSurround.cpp rename to src/cpp/viper/effects/DiffSurround.cpp diff --git a/src/viper/effects/DiffSurround.h b/src/cpp/viper/effects/DiffSurround.h similarity index 100% rename from src/viper/effects/DiffSurround.h rename to src/cpp/viper/effects/DiffSurround.h diff --git a/src/viper/effects/DynamicSystem.cpp b/src/cpp/viper/effects/DynamicSystem.cpp similarity index 100% rename from src/viper/effects/DynamicSystem.cpp rename to src/cpp/viper/effects/DynamicSystem.cpp diff --git a/src/viper/effects/DynamicSystem.h b/src/cpp/viper/effects/DynamicSystem.h similarity index 100% rename from src/viper/effects/DynamicSystem.h rename to src/cpp/viper/effects/DynamicSystem.h diff --git a/src/viper/effects/FETCompressor.cpp b/src/cpp/viper/effects/FETCompressor.cpp similarity index 100% rename from src/viper/effects/FETCompressor.cpp rename to src/cpp/viper/effects/FETCompressor.cpp diff --git a/src/viper/effects/FETCompressor.h b/src/cpp/viper/effects/FETCompressor.h similarity index 100% rename from src/viper/effects/FETCompressor.h rename to src/cpp/viper/effects/FETCompressor.h diff --git a/src/viper/effects/IIRFilter.cpp b/src/cpp/viper/effects/IIRFilter.cpp similarity index 100% rename from src/viper/effects/IIRFilter.cpp rename to src/cpp/viper/effects/IIRFilter.cpp diff --git a/src/viper/effects/IIRFilter.h b/src/cpp/viper/effects/IIRFilter.h similarity index 100% rename from src/viper/effects/IIRFilter.h rename to src/cpp/viper/effects/IIRFilter.h diff --git a/src/viper/effects/PlaybackGain.cpp b/src/cpp/viper/effects/PlaybackGain.cpp similarity index 100% rename from src/viper/effects/PlaybackGain.cpp rename to src/cpp/viper/effects/PlaybackGain.cpp diff --git a/src/viper/effects/PlaybackGain.h b/src/cpp/viper/effects/PlaybackGain.h similarity index 100% rename from src/viper/effects/PlaybackGain.h rename to src/cpp/viper/effects/PlaybackGain.h diff --git a/src/viper/effects/Reverberation.cpp b/src/cpp/viper/effects/Reverberation.cpp similarity index 100% rename from src/viper/effects/Reverberation.cpp rename to src/cpp/viper/effects/Reverberation.cpp diff --git a/src/viper/effects/Reverberation.h b/src/cpp/viper/effects/Reverberation.h similarity index 100% rename from src/viper/effects/Reverberation.h rename to src/cpp/viper/effects/Reverberation.h diff --git a/src/viper/effects/SoftwareLimiter.cpp b/src/cpp/viper/effects/SoftwareLimiter.cpp similarity index 100% rename from src/viper/effects/SoftwareLimiter.cpp rename to src/cpp/viper/effects/SoftwareLimiter.cpp diff --git a/src/viper/effects/SoftwareLimiter.h b/src/cpp/viper/effects/SoftwareLimiter.h similarity index 100% rename from src/viper/effects/SoftwareLimiter.h rename to src/cpp/viper/effects/SoftwareLimiter.h diff --git a/src/viper/effects/SpeakerCorrection.cpp b/src/cpp/viper/effects/SpeakerCorrection.cpp similarity index 100% rename from src/viper/effects/SpeakerCorrection.cpp rename to src/cpp/viper/effects/SpeakerCorrection.cpp diff --git a/src/viper/effects/SpeakerCorrection.h b/src/cpp/viper/effects/SpeakerCorrection.h similarity index 100% rename from src/viper/effects/SpeakerCorrection.h rename to src/cpp/viper/effects/SpeakerCorrection.h diff --git a/src/viper/effects/SpectrumExtend.cpp b/src/cpp/viper/effects/SpectrumExtend.cpp similarity index 100% rename from src/viper/effects/SpectrumExtend.cpp rename to src/cpp/viper/effects/SpectrumExtend.cpp diff --git a/src/viper/effects/SpectrumExtend.h b/src/cpp/viper/effects/SpectrumExtend.h similarity index 100% rename from src/viper/effects/SpectrumExtend.h rename to src/cpp/viper/effects/SpectrumExtend.h diff --git a/src/viper/effects/TubeSimulator.cpp b/src/cpp/viper/effects/TubeSimulator.cpp similarity index 100% rename from src/viper/effects/TubeSimulator.cpp rename to src/cpp/viper/effects/TubeSimulator.cpp diff --git a/src/viper/effects/TubeSimulator.h b/src/cpp/viper/effects/TubeSimulator.h similarity index 100% rename from src/viper/effects/TubeSimulator.h rename to src/cpp/viper/effects/TubeSimulator.h diff --git a/src/viper/effects/VHE.cpp b/src/cpp/viper/effects/VHE.cpp similarity index 100% rename from src/viper/effects/VHE.cpp rename to src/cpp/viper/effects/VHE.cpp diff --git a/src/viper/effects/VHE.h b/src/cpp/viper/effects/VHE.h similarity index 100% rename from src/viper/effects/VHE.h rename to src/cpp/viper/effects/VHE.h diff --git a/src/viper/effects/VHE_L0.h b/src/cpp/viper/effects/VHE_L0.h similarity index 100% rename from src/viper/effects/VHE_L0.h rename to src/cpp/viper/effects/VHE_L0.h diff --git a/src/viper/effects/VHE_L1.h b/src/cpp/viper/effects/VHE_L1.h similarity index 100% rename from src/viper/effects/VHE_L1.h rename to src/cpp/viper/effects/VHE_L1.h diff --git a/src/viper/effects/VHE_L2.h b/src/cpp/viper/effects/VHE_L2.h similarity index 100% rename from src/viper/effects/VHE_L2.h rename to src/cpp/viper/effects/VHE_L2.h diff --git a/src/viper/effects/VHE_L3.h b/src/cpp/viper/effects/VHE_L3.h similarity index 100% rename from src/viper/effects/VHE_L3.h rename to src/cpp/viper/effects/VHE_L3.h diff --git a/src/viper/effects/VHE_L4.h b/src/cpp/viper/effects/VHE_L4.h similarity index 100% rename from src/viper/effects/VHE_L4.h rename to src/cpp/viper/effects/VHE_L4.h diff --git a/src/viper/effects/ViPERBass.cpp b/src/cpp/viper/effects/ViPERBass.cpp similarity index 100% rename from src/viper/effects/ViPERBass.cpp rename to src/cpp/viper/effects/ViPERBass.cpp diff --git a/src/viper/effects/ViPERBass.h b/src/cpp/viper/effects/ViPERBass.h similarity index 100% rename from src/viper/effects/ViPERBass.h rename to src/cpp/viper/effects/ViPERBass.h diff --git a/src/viper/effects/ViPERClarity.cpp b/src/cpp/viper/effects/ViPERClarity.cpp similarity index 100% rename from src/viper/effects/ViPERClarity.cpp rename to src/cpp/viper/effects/ViPERClarity.cpp diff --git a/src/viper/effects/ViPERClarity.h b/src/cpp/viper/effects/ViPERClarity.h similarity index 100% rename from src/viper/effects/ViPERClarity.h rename to src/cpp/viper/effects/ViPERClarity.h diff --git a/src/viper/effects/ViPERDDC.cpp b/src/cpp/viper/effects/ViPERDDC.cpp similarity index 100% rename from src/viper/effects/ViPERDDC.cpp rename to src/cpp/viper/effects/ViPERDDC.cpp diff --git a/src/viper/effects/ViPERDDC.h b/src/cpp/viper/effects/ViPERDDC.h similarity index 100% rename from src/viper/effects/ViPERDDC.h rename to src/cpp/viper/effects/ViPERDDC.h diff --git a/src/viper/utils/AdaptiveBuffer.cpp b/src/cpp/viper/utils/AdaptiveBuffer.cpp similarity index 100% rename from src/viper/utils/AdaptiveBuffer.cpp rename to src/cpp/viper/utils/AdaptiveBuffer.cpp diff --git a/src/viper/utils/AdaptiveBuffer.h b/src/cpp/viper/utils/AdaptiveBuffer.h similarity index 100% rename from src/viper/utils/AdaptiveBuffer.h rename to src/cpp/viper/utils/AdaptiveBuffer.h diff --git a/src/viper/utils/Biquad.cpp b/src/cpp/viper/utils/Biquad.cpp similarity index 100% rename from src/viper/utils/Biquad.cpp rename to src/cpp/viper/utils/Biquad.cpp diff --git a/src/viper/utils/Biquad.h b/src/cpp/viper/utils/Biquad.h similarity index 100% rename from src/viper/utils/Biquad.h rename to src/cpp/viper/utils/Biquad.h diff --git a/src/viper/utils/CAllpassFilter.cpp b/src/cpp/viper/utils/CAllpassFilter.cpp similarity index 100% rename from src/viper/utils/CAllpassFilter.cpp rename to src/cpp/viper/utils/CAllpassFilter.cpp diff --git a/src/viper/utils/CAllpassFilter.h b/src/cpp/viper/utils/CAllpassFilter.h similarity index 100% rename from src/viper/utils/CAllpassFilter.h rename to src/cpp/viper/utils/CAllpassFilter.h diff --git a/src/viper/utils/CCombFilter.cpp b/src/cpp/viper/utils/CCombFilter.cpp similarity index 100% rename from src/viper/utils/CCombFilter.cpp rename to src/cpp/viper/utils/CCombFilter.cpp diff --git a/src/viper/utils/CCombFilter.h b/src/cpp/viper/utils/CCombFilter.h similarity index 100% rename from src/viper/utils/CCombFilter.h rename to src/cpp/viper/utils/CCombFilter.h diff --git a/src/viper/utils/CRevModel.cpp b/src/cpp/viper/utils/CRevModel.cpp similarity index 100% rename from src/viper/utils/CRevModel.cpp rename to src/cpp/viper/utils/CRevModel.cpp diff --git a/src/viper/utils/CRevModel.h b/src/cpp/viper/utils/CRevModel.h similarity index 100% rename from src/viper/utils/CRevModel.h rename to src/cpp/viper/utils/CRevModel.h diff --git a/src/viper/utils/Crossfeed.cpp b/src/cpp/viper/utils/Crossfeed.cpp similarity index 100% rename from src/viper/utils/Crossfeed.cpp rename to src/cpp/viper/utils/Crossfeed.cpp diff --git a/src/viper/utils/Crossfeed.h b/src/cpp/viper/utils/Crossfeed.h similarity index 100% rename from src/viper/utils/Crossfeed.h rename to src/cpp/viper/utils/Crossfeed.h diff --git a/src/viper/utils/DepthSurround.cpp b/src/cpp/viper/utils/DepthSurround.cpp similarity index 100% rename from src/viper/utils/DepthSurround.cpp rename to src/cpp/viper/utils/DepthSurround.cpp diff --git a/src/viper/utils/DepthSurround.h b/src/cpp/viper/utils/DepthSurround.h similarity index 100% rename from src/viper/utils/DepthSurround.h rename to src/cpp/viper/utils/DepthSurround.h diff --git a/src/viper/utils/DynamicBass.cpp b/src/cpp/viper/utils/DynamicBass.cpp similarity index 100% rename from src/viper/utils/DynamicBass.cpp rename to src/cpp/viper/utils/DynamicBass.cpp diff --git a/src/viper/utils/DynamicBass.h b/src/cpp/viper/utils/DynamicBass.h similarity index 100% rename from src/viper/utils/DynamicBass.h rename to src/cpp/viper/utils/DynamicBass.h diff --git a/src/viper/utils/FIR.cpp b/src/cpp/viper/utils/FIR.cpp similarity index 100% rename from src/viper/utils/FIR.cpp rename to src/cpp/viper/utils/FIR.cpp diff --git a/src/viper/utils/FIR.h b/src/cpp/viper/utils/FIR.h similarity index 100% rename from src/viper/utils/FIR.h rename to src/cpp/viper/utils/FIR.h diff --git a/src/viper/utils/Harmonic.cpp b/src/cpp/viper/utils/Harmonic.cpp similarity index 100% rename from src/viper/utils/Harmonic.cpp rename to src/cpp/viper/utils/Harmonic.cpp diff --git a/src/viper/utils/Harmonic.h b/src/cpp/viper/utils/Harmonic.h similarity index 100% rename from src/viper/utils/Harmonic.h rename to src/cpp/viper/utils/Harmonic.h diff --git a/src/viper/utils/HiFi.cpp b/src/cpp/viper/utils/HiFi.cpp similarity index 100% rename from src/viper/utils/HiFi.cpp rename to src/cpp/viper/utils/HiFi.cpp diff --git a/src/viper/utils/HiFi.h b/src/cpp/viper/utils/HiFi.h similarity index 100% rename from src/viper/utils/HiFi.h rename to src/cpp/viper/utils/HiFi.h diff --git a/src/viper/utils/HighShelf.cpp b/src/cpp/viper/utils/HighShelf.cpp similarity index 100% rename from src/viper/utils/HighShelf.cpp rename to src/cpp/viper/utils/HighShelf.cpp diff --git a/src/viper/utils/HighShelf.h b/src/cpp/viper/utils/HighShelf.h similarity index 100% rename from src/viper/utils/HighShelf.h rename to src/cpp/viper/utils/HighShelf.h diff --git a/src/viper/utils/IIR_1st.cpp b/src/cpp/viper/utils/IIR_1st.cpp similarity index 100% rename from src/viper/utils/IIR_1st.cpp rename to src/cpp/viper/utils/IIR_1st.cpp diff --git a/src/viper/utils/IIR_1st.h b/src/cpp/viper/utils/IIR_1st.h similarity index 100% rename from src/viper/utils/IIR_1st.h rename to src/cpp/viper/utils/IIR_1st.h diff --git a/src/viper/utils/IIR_NOrder_BW_BP.cpp b/src/cpp/viper/utils/IIR_NOrder_BW_BP.cpp similarity index 100% rename from src/viper/utils/IIR_NOrder_BW_BP.cpp rename to src/cpp/viper/utils/IIR_NOrder_BW_BP.cpp diff --git a/src/viper/utils/IIR_NOrder_BW_BP.h b/src/cpp/viper/utils/IIR_NOrder_BW_BP.h similarity index 100% rename from src/viper/utils/IIR_NOrder_BW_BP.h rename to src/cpp/viper/utils/IIR_NOrder_BW_BP.h diff --git a/src/viper/utils/IIR_NOrder_BW_LH.cpp b/src/cpp/viper/utils/IIR_NOrder_BW_LH.cpp similarity index 100% rename from src/viper/utils/IIR_NOrder_BW_LH.cpp rename to src/cpp/viper/utils/IIR_NOrder_BW_LH.cpp diff --git a/src/viper/utils/IIR_NOrder_BW_LH.h b/src/cpp/viper/utils/IIR_NOrder_BW_LH.h similarity index 100% rename from src/viper/utils/IIR_NOrder_BW_LH.h rename to src/cpp/viper/utils/IIR_NOrder_BW_LH.h diff --git a/src/viper/utils/MinPhaseIIRCoeffs.cpp b/src/cpp/viper/utils/MinPhaseIIRCoeffs.cpp similarity index 100% rename from src/viper/utils/MinPhaseIIRCoeffs.cpp rename to src/cpp/viper/utils/MinPhaseIIRCoeffs.cpp diff --git a/src/viper/utils/MinPhaseIIRCoeffs.h b/src/cpp/viper/utils/MinPhaseIIRCoeffs.h similarity index 100% rename from src/viper/utils/MinPhaseIIRCoeffs.h rename to src/cpp/viper/utils/MinPhaseIIRCoeffs.h diff --git a/src/viper/utils/MultiBiquad.cpp b/src/cpp/viper/utils/MultiBiquad.cpp similarity index 100% rename from src/viper/utils/MultiBiquad.cpp rename to src/cpp/viper/utils/MultiBiquad.cpp diff --git a/src/viper/utils/MultiBiquad.h b/src/cpp/viper/utils/MultiBiquad.h similarity index 100% rename from src/viper/utils/MultiBiquad.h rename to src/cpp/viper/utils/MultiBiquad.h diff --git a/src/viper/utils/NoiseSharpening.cpp b/src/cpp/viper/utils/NoiseSharpening.cpp similarity index 100% rename from src/viper/utils/NoiseSharpening.cpp rename to src/cpp/viper/utils/NoiseSharpening.cpp diff --git a/src/viper/utils/NoiseSharpening.h b/src/cpp/viper/utils/NoiseSharpening.h similarity index 100% rename from src/viper/utils/NoiseSharpening.h rename to src/cpp/viper/utils/NoiseSharpening.h diff --git a/src/viper/utils/PConvSingle.cpp b/src/cpp/viper/utils/PConvSingle.cpp similarity index 100% rename from src/viper/utils/PConvSingle.cpp rename to src/cpp/viper/utils/PConvSingle.cpp diff --git a/src/viper/utils/PConvSingle.h b/src/cpp/viper/utils/PConvSingle.h similarity index 100% rename from src/viper/utils/PConvSingle.h rename to src/cpp/viper/utils/PConvSingle.h diff --git a/src/viper/utils/PassFilter.cpp b/src/cpp/viper/utils/PassFilter.cpp similarity index 100% rename from src/viper/utils/PassFilter.cpp rename to src/cpp/viper/utils/PassFilter.cpp diff --git a/src/viper/utils/PassFilter.h b/src/cpp/viper/utils/PassFilter.h similarity index 100% rename from src/viper/utils/PassFilter.h rename to src/cpp/viper/utils/PassFilter.h diff --git a/src/viper/utils/PolesFilter.cpp b/src/cpp/viper/utils/PolesFilter.cpp similarity index 100% rename from src/viper/utils/PolesFilter.cpp rename to src/cpp/viper/utils/PolesFilter.cpp diff --git a/src/viper/utils/PolesFilter.h b/src/cpp/viper/utils/PolesFilter.h similarity index 100% rename from src/viper/utils/PolesFilter.h rename to src/cpp/viper/utils/PolesFilter.h diff --git a/src/viper/utils/Polyphase.cpp b/src/cpp/viper/utils/Polyphase.cpp similarity index 100% rename from src/viper/utils/Polyphase.cpp rename to src/cpp/viper/utils/Polyphase.cpp diff --git a/src/viper/utils/Polyphase.h b/src/cpp/viper/utils/Polyphase.h similarity index 100% rename from src/viper/utils/Polyphase.h rename to src/cpp/viper/utils/Polyphase.h diff --git a/src/viper/utils/Stereo3DSurround.cpp b/src/cpp/viper/utils/Stereo3DSurround.cpp similarity index 100% rename from src/viper/utils/Stereo3DSurround.cpp rename to src/cpp/viper/utils/Stereo3DSurround.cpp diff --git a/src/viper/utils/Stereo3DSurround.h b/src/cpp/viper/utils/Stereo3DSurround.h similarity index 100% rename from src/viper/utils/Stereo3DSurround.h rename to src/cpp/viper/utils/Stereo3DSurround.h diff --git a/src/viper/utils/Subwoofer.cpp b/src/cpp/viper/utils/Subwoofer.cpp similarity index 100% rename from src/viper/utils/Subwoofer.cpp rename to src/cpp/viper/utils/Subwoofer.cpp diff --git a/src/viper/utils/Subwoofer.h b/src/cpp/viper/utils/Subwoofer.h similarity index 100% rename from src/viper/utils/Subwoofer.h rename to src/cpp/viper/utils/Subwoofer.h diff --git a/src/viper/utils/TimeConstDelay.cpp b/src/cpp/viper/utils/TimeConstDelay.cpp similarity index 100% rename from src/viper/utils/TimeConstDelay.cpp rename to src/cpp/viper/utils/TimeConstDelay.cpp diff --git a/src/viper/utils/TimeConstDelay.h b/src/cpp/viper/utils/TimeConstDelay.h similarity index 100% rename from src/viper/utils/TimeConstDelay.h rename to src/cpp/viper/utils/TimeConstDelay.h diff --git a/src/viper/utils/WaveBuffer.cpp b/src/cpp/viper/utils/WaveBuffer.cpp similarity index 100% rename from src/viper/utils/WaveBuffer.cpp rename to src/cpp/viper/utils/WaveBuffer.cpp diff --git a/src/viper/utils/WaveBuffer.h b/src/cpp/viper/utils/WaveBuffer.h similarity index 100% rename from src/viper/utils/WaveBuffer.h rename to src/cpp/viper/utils/WaveBuffer.h diff --git a/src/cpp/viper_aidl.cpp b/src/cpp/viper_aidl.cpp new file mode 100644 index 0000000..818e218 --- /dev/null +++ b/src/cpp/viper_aidl.cpp @@ -0,0 +1,49 @@ +#include "viper_aidl.h" +#include "log.h" + +::ndk::ScopedAStatus ViPER4AndroidAIDL::open(const aidl::android::hardware::audio::effect::Parameter::Common &in_common, + const std::optional<::aidl::android::hardware::audio::effect::Parameter::Specific> &in_specific, + ::aidl::android::hardware::audio::effect::IEffect::OpenEffectReturn *_aidl_return) { + VIPER_LOGD("open called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus ViPER4AndroidAIDL::close() { + VIPER_LOGD("close called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus +ViPER4AndroidAIDL::getDescriptor(::aidl::android::hardware::audio::effect::Descriptor *_aidl_return) { + VIPER_LOGD("getDescriptor called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus ViPER4AndroidAIDL::command(::aidl::android::hardware::audio::effect::CommandId in_commandId) { + VIPER_LOGD("command called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus ViPER4AndroidAIDL::getState(::aidl::android::hardware::audio::effect::State *_aidl_return) { + VIPER_LOGD("getState called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus +ViPER4AndroidAIDL::setParameter(const aidl::android::hardware::audio::effect::Parameter &in_param) { + VIPER_LOGD("setParameter called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus +ViPER4AndroidAIDL::getParameter(const aidl::android::hardware::audio::effect::Parameter::Id &in_paramId, + ::aidl::android::hardware::audio::effect::Parameter *_aidl_return) { + VIPER_LOGD("getParameter called"); + return ndk::ScopedAStatus(); +} + +::ndk::ScopedAStatus +ViPER4AndroidAIDL::reopen(::aidl::android::hardware::audio::effect::IEffect::OpenEffectReturn *_aidl_return) { + VIPER_LOGD("reopen called"); + return ndk::ScopedAStatus(); +} diff --git a/src/cpp/viper_aidl.h b/src/cpp/viper_aidl.h new file mode 100644 index 0000000..877c580 --- /dev/null +++ b/src/cpp/viper_aidl.h @@ -0,0 +1,16 @@ +#pragma once + +#include "aidl/android/hardware/audio/effect/BnEffect.h" + +using aidl::android::hardware::audio::effect::BnEffect; + +class ViPER4AndroidAIDL : public BnEffect { + ::ndk::ScopedAStatus open(const ::aidl::android::hardware::audio::effect::Parameter::Common &in_common, const std::optional< ::aidl::android::hardware::audio::effect::Parameter::Specific> &in_specific, ::aidl::android::hardware::audio::effect::IEffect::OpenEffectReturn *_aidl_return) override; + ::ndk::ScopedAStatus close() override; + ::ndk::ScopedAStatus getDescriptor(::aidl::android::hardware::audio::effect::Descriptor *_aidl_return) override; + ::ndk::ScopedAStatus command(::aidl::android::hardware::audio::effect::CommandId in_commandId) override; + ::ndk::ScopedAStatus getState(::aidl::android::hardware::audio::effect::State *_aidl_return) override; + ::ndk::ScopedAStatus setParameter(const ::aidl::android::hardware::audio::effect::Parameter &in_param) override; + ::ndk::ScopedAStatus getParameter(const ::aidl::android::hardware::audio::effect::Parameter::Id &in_paramId, ::aidl::android::hardware::audio::effect::Parameter *_aidl_return) override; + ::ndk::ScopedAStatus reopen(::aidl::android::hardware::audio::effect::IEffect::OpenEffectReturn *_aidl_return) override; +}; \ No newline at end of file diff --git a/src/external/hardware_interfaces b/src/external/hardware_interfaces new file mode 160000 index 0000000..4d7e907 --- /dev/null +++ b/src/external/hardware_interfaces @@ -0,0 +1 @@ +Subproject commit 4d7e907c777eeecc4c5bd7cf640a754fac206ff7 diff --git a/src/external/system_hardware_interfaces b/src/external/system_hardware_interfaces new file mode 160000 index 0000000..6b5df51 --- /dev/null +++ b/src/external/system_hardware_interfaces @@ -0,0 +1 @@ +Subproject commit 6b5df51c3a48139fd3a00d648d2b28c79a96b551 diff --git a/src/include/aidl/android/hardware/audio/effect/Descriptor.h b/src/include/aidl/android/hardware/audio/effect/Descriptor.h deleted file mode 100644 index cb545a5..0000000 --- a/src/include/aidl/android/hardware/audio/effect/Descriptor.h +++ /dev/null @@ -1,89 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -namespace aidl::android::hardware::audio::effect { - class Descriptor { - public: - class Identity { - public: - ::aidl::android::media::audio::common::AudioUuid type; - ::aidl::android::media::audio::common::AudioUuid uuid; - std::optional<::aidl::android::media::audio::common::AudioUuid> proxy; - - inline bool operator==(const Identity& _rhs) const { - return std::tie(type, uuid, proxy) == std::tie(_rhs.type, _rhs.uuid, _rhs.proxy); - } - inline bool operator<(const Identity& _rhs) const { - return std::tie(type, uuid, proxy) < std::tie(_rhs.type, _rhs.uuid, _rhs.proxy); - } - inline bool operator!=(const Identity& _rhs) const { - return !(*this == _rhs); - } - inline bool operator>(const Identity& _rhs) const { - return _rhs < *this; - } - inline bool operator>=(const Identity& _rhs) const { - return !(*this < _rhs); - } - inline bool operator<=(const Identity& _rhs) const { - return !(_rhs < *this); - } - }; - class Common { - public: - ::aidl::android::hardware::audio::effect::Descriptor::Identity id; - ::aidl::android::hardware::audio::effect::Flags flags; - int32_t cpuLoad = 0; - int32_t memoryUsage = 0; - std::string name; - std::string implementor; - - inline bool operator==(const Common& _rhs) const { - return std::tie(id, flags, cpuLoad, memoryUsage, name, implementor) == std::tie(_rhs.id, _rhs.flags, _rhs.cpuLoad, _rhs.memoryUsage, _rhs.name, _rhs.implementor); - } - inline bool operator<(const Common& _rhs) const { - return std::tie(id, flags, cpuLoad, memoryUsage, name, implementor) < std::tie(_rhs.id, _rhs.flags, _rhs.cpuLoad, _rhs.memoryUsage, _rhs.name, _rhs.implementor); - } - inline bool operator!=(const Common& _rhs) const { - return !(*this == _rhs); - } - inline bool operator>(const Common& _rhs) const { - return _rhs < *this; - } - inline bool operator>=(const Common& _rhs) const { - return !(*this < _rhs); - } - inline bool operator<=(const Common& _rhs) const { - return !(_rhs < *this); - } - }; - ::aidl::android::hardware::audio::effect::Descriptor::Common common; - /*::aidl::android::hardware::audio::effect::Capability capability;*/ - - inline bool operator==(const Descriptor& _rhs) const { - return std::tie(common/*, capability*/) == std::tie(_rhs.common/*, _rhs.capability*/); - } - inline bool operator<(const Descriptor& _rhs) const { - return std::tie(common/*, capability*/) < std::tie(_rhs.common/*, _rhs.capability*/); - } - inline bool operator!=(const Descriptor& _rhs) const { - return !(*this == _rhs); - } - inline bool operator>(const Descriptor& _rhs) const { - return _rhs < *this; - } - inline bool operator>=(const Descriptor& _rhs) const { - return !(*this < _rhs); - } - inline bool operator<=(const Descriptor& _rhs) const { - return !(_rhs < *this); - } - }; -} // namespace aidl::android::hardware::audio::effect diff --git a/src/include/aidl/android/hardware/audio/effect/Flags.h b/src/include/aidl/android/hardware/audio/effect/Flags.h deleted file mode 100644 index ed863cd..0000000 --- a/src/include/aidl/android/hardware/audio/effect/Flags.h +++ /dev/null @@ -1,72 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include - -namespace aidl::android::hardware::audio::effect { - class Flags { - public: - enum class Type : int8_t { - INSERT = 0, - AUXILIARY = 1, - REPLACE = 2, - PRE_PROC = 3, - POST_PROC = 4, - }; - - enum class Insert : int8_t { - ANY = 0, - FIRST = 1, - LAST = 2, - EXCLUSIVE = 3, - }; - - enum class Volume : int8_t { - NONE = 0, - CTRL = 1, - IND = 2, - MONITOR = 3, - }; - - enum class HardwareAccelerator : int8_t { - NONE = 0, - SIMPLE = 1, - TUNNEL = 2, - }; - - ::aidl::android::hardware::audio::effect::Flags::Type type = ::aidl::android::hardware::audio::effect::Flags::Type::INSERT; - ::aidl::android::hardware::audio::effect::Flags::Insert insert = ::aidl::android::hardware::audio::effect::Flags::Insert::ANY; - ::aidl::android::hardware::audio::effect::Flags::Volume volume = ::aidl::android::hardware::audio::effect::Flags::Volume::NONE; - ::aidl::android::hardware::audio::effect::Flags::HardwareAccelerator hwAcceleratorMode = ::aidl::android::hardware::audio::effect::Flags::HardwareAccelerator::NONE; - bool offloadIndication = false; - bool deviceIndication = false; - bool audioModeIndication = false; - bool audioSourceIndication = false; - bool bypass = false; - bool sinkMetadataIndication = false; - bool sourceMetadataIndication = false; - - inline bool operator==(const Flags& _rhs) const { - return std::tie(type, insert, volume, hwAcceleratorMode, offloadIndication, deviceIndication, audioModeIndication, audioSourceIndication, bypass, sinkMetadataIndication, sourceMetadataIndication) == std::tie(_rhs.type, _rhs.insert, _rhs.volume, _rhs.hwAcceleratorMode, _rhs.offloadIndication, _rhs.deviceIndication, _rhs.audioModeIndication, _rhs.audioSourceIndication, _rhs.bypass, _rhs.sinkMetadataIndication, _rhs.sourceMetadataIndication); - } - inline bool operator<(const Flags& _rhs) const { - return std::tie(type, insert, volume, hwAcceleratorMode, offloadIndication, deviceIndication, audioModeIndication, audioSourceIndication, bypass, sinkMetadataIndication, sourceMetadataIndication) < std::tie(_rhs.type, _rhs.insert, _rhs.volume, _rhs.hwAcceleratorMode, _rhs.offloadIndication, _rhs.deviceIndication, _rhs.audioModeIndication, _rhs.audioSourceIndication, _rhs.bypass, _rhs.sinkMetadataIndication, _rhs.sourceMetadataIndication); - } - inline bool operator!=(const Flags& _rhs) const { - return !(*this == _rhs); - } - inline bool operator>(const Flags& _rhs) const { - return _rhs < *this; - } - inline bool operator>=(const Flags& _rhs) const { - return !(*this < _rhs); - } - inline bool operator<=(const Flags& _rhs) const { - return !(_rhs < *this); - } - }; -} // namespace aidl::android::hardware::audio::effect diff --git a/src/include/aidl/android/hardware/audio/effect/IEffect.h b/src/include/aidl/android/hardware/audio/effect/IEffect.h deleted file mode 100644 index 5b8a7f6..0000000 --- a/src/include/aidl/android/hardware/audio/effect/IEffect.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -namespace aidl::android::hardware::audio::effect { - class IEffect { - }; -} // namespace aidl::android::hardware::audio::effect diff --git a/src/include/aidl/android/media/audio/common/AudioUuid.h b/src/include/aidl/android/media/audio/common/AudioUuid.h deleted file mode 100644 index 8f4f170..0000000 --- a/src/include/aidl/android/media/audio/common/AudioUuid.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -namespace aidl::android::media::audio::common { - class AudioUuid { - public: - int32_t timeLow = 0; - int32_t timeMid = 0; - int32_t timeHiAndVersion = 0; - int32_t clockSeq = 0; - std::vector node; - - inline bool operator==(const AudioUuid& _rhs) const { - return std::tie(timeLow, timeMid, timeHiAndVersion, clockSeq, node) == std::tie(_rhs.timeLow, _rhs.timeMid, _rhs.timeHiAndVersion, _rhs.clockSeq, _rhs.node); - } - inline bool operator<(const AudioUuid& _rhs) const { - return std::tie(timeLow, timeMid, timeHiAndVersion, clockSeq, node) < std::tie(_rhs.timeLow, _rhs.timeMid, _rhs.timeHiAndVersion, _rhs.clockSeq, _rhs.node); - } - inline bool operator!=(const AudioUuid& _rhs) const { - return !(*this == _rhs); - } - inline bool operator>(const AudioUuid& _rhs) const { - return _rhs < *this; - } - inline bool operator>=(const AudioUuid& _rhs) const { - return !(*this < _rhs); - } - inline bool operator<=(const AudioUuid& _rhs) const { - return !(_rhs < *this); - } - }; -} // namespace aidl::android::media::audio::common diff --git a/src/viper/ffts b/src/viper/ffts deleted file mode 160000 index fe86885..0000000 --- a/src/viper/ffts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fe86885ecafd0d16eb122f3212403d1d5a86e24e