MCPcopy Create free account
hub / github.com/ZL-Audio/ZLEqualizer / processOneChannelDynamic

Method processOneChannelDynamic

source/zlp/controller.cpp:759–799  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

757
758 template <typename DynamicFilterArrayType, bool should_check_parallel, bool should_be_parallel>
759 void Controller::processOneChannelDynamic(DynamicFilterArrayType& dynamic_filters, const size_t lrms_idx,
760 const std::span<double*> main_pointers,
761 const std::span<double*> side_pointers1,
762 const std::span<double*> side_pointers2, const size_t num_samples) {
763 for (const size_t& i : not_off_indices_[lrms_idx]) {
764 if constexpr (should_check_parallel) {
765 if (dynamic_filters[i].getShouldBeParallel() != should_be_parallel) {
766 continue;
767 }
768 }
769 if (c_filter_status_[i] == kBypass) {
770 if (c_dynamic_on_[i]) {
771 const auto swap = dynamic_swap_[i].load(std::memory_order::relaxed);
772 if (dynamic_bypass_[i].load(std::memory_order::relaxed)) {
773 processOneBandDynamic<true, true, true>(dynamic_filters, i, main_pointers,
774 swap ? side_pointers2 : side_pointers1, num_samples);
775 } else {
776 processOneBandDynamic<true, true, false>(dynamic_filters, i, main_pointers,
777 swap ? side_pointers2 : side_pointers1, num_samples);
778 }
779 } else {
780 processOneBandDynamic<true, false, false>(dynamic_filters, i, main_pointers, side_pointers1,
781 num_samples);
782 }
783 } else {
784 if (c_dynamic_on_[i]) {
785 const auto swap = dynamic_swap_[i].load(std::memory_order::relaxed);
786 if (dynamic_bypass_[i].load(std::memory_order::relaxed)) {
787 processOneBandDynamic<false, true, true>(dynamic_filters, i, main_pointers,
788 swap ? side_pointers2 : side_pointers1, num_samples);
789 } else {
790 processOneBandDynamic<false, true, false>(dynamic_filters, i, main_pointers,
791 swap ? side_pointers2 : side_pointers1, num_samples);
792 }
793 } else {
794 processOneBandDynamic<false, false, false>(dynamic_filters, i, main_pointers, side_pointers1,
795 num_samples);
796 }
797 }
798 }
799 }
800
801 template <bool bypass, bool dynamic_on, bool dynamic_bypass, typename DynamicFilterArrayType>
802 void Controller::processOneBandDynamic(DynamicFilterArrayType& dynamic_filters, const size_t i,

Callers

nothing calls this directly

Calls 2

getShouldBeParallelMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected