/** * Copyright (c) 2021 Enzien Audio, Ltd. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions, and the following disclaimer. * * 2. Redistributions in binary form must reproduce the phrase "powered by heavy", * the heavy logo, and a hyperlink to https://enzienaudio.com, all in a visible * form. * * 2.1 If the Application is distributed in a store system (for example, * the Apple "App Store" or "Google Play"), the phrase "powered by heavy" * shall be included in the app description or the copyright text as well as * the in the app itself. The heavy logo will shall be visible in the app * itself as well. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ #ifndef _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_ #define _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_ // object includes #include "HeavyContext.hpp" #include "HvControlCast.h" #include "HvControlVar.h" #include "HvControlDelay.h" #include "HvControlSystem.h" #include "HvControlBinop.h" #include "HvTable.h" #include "HvSignalTabwrite.h" #include "HvSignalVar.h" #include "HvSignalTabread.h" #include "HvMath.h" #include "HvSignalPhasor.h" #include "HvSignalLine.h" class Heavy_arp_delay_env_pd : public HeavyContext { public: Heavy_arp_delay_env_pd(double sampleRate, int poolKb=10, int inQueueKb=2, int outQueueKb=0); ~Heavy_arp_delay_env_pd(); const char *getName() override { return "arp_delay_env_pd"; } int getNumInputChannels() override { return 0; } int getNumOutputChannels() override { return 2; } int process(float **inputBuffers, float **outputBuffer, int n) override; int processInline(float *inputBuffers, float *outputBuffer, int n) override; int processInlineInterleaved(float *inputBuffers, float *outputBuffer, int n) override; int getParameterInfo(int index, HvParameterInfo *info) override; struct Parameter { struct In { enum ParameterIn : hv_uint32_t { CHANNEL_A = 0x79853B03, // Channel_A CHANNEL_B = 0xE16E1682, // Channel_B CHANNEL_C = 0xE72718FC, // Channel_C CHANNEL_D = 0x307C0274, // Channel_D }; }; }; private: HvTable *getTableForHash(hv_uint32_t tableHash) override; void scheduleMessageForReceiver(hv_uint32_t receiverHash, HvMessage *m) override; // static sendMessage functions static void cVar_YvPEpnUh_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_eHayjBv6_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_DYnzHpic_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSwitchcase_O5mYhl3b_onMessage(HeavyContextInterface *, void *, int letIn, const HvMessage *const, void *); static void cCast_gzZa7okE_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_hj1UO5Xy_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_xUl3JuzU_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_pBUNmntT_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_sPNudZ6R_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_d9vmQ0rR_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_G3zRyasr_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_E4Ec6do0_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_XXw3dChu_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_SLtg6rNc_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_YIxdPCGV_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_Zqip7Xkd_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_zehWpnU4_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_ssKQAxko_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_s01cENlp_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_qGBikGct_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_qfTfqBM3_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_4oKrr4xn_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_X79tuCf2_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_hlwCH2uT_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_MxJmfWRW_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_rAf0fyDp_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_ET5EQCTg_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_8GCNF1V8_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_3up8OQvv_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_icWX8ifl_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_ae7TxKOA_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void hTable_ncKDzzLt_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_Wzlb1WzU_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_AF7niKwq_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_zvxvkeYa_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSwitchcase_mEf8Naqe_onMessage(HeavyContextInterface *, void *, int letIn, const HvMessage *const, void *); static void cBinop_0qRwCHv8_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_CwzvBF2s_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_9OkU32H1_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_puVbRaHY_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_m5zjVpQA_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_vc0hK7tw_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_GJqnOqJV_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_0V4UPj7Z_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_jOD5Mj4Q_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_dmrzMGJf_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_hPlGDhkM_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_tM3dKBd6_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_2SqJZJHs_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_5N2semj0_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_BQRg6jNP_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_0XRxEH1C_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_GKFWiStO_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_E1RLP07b_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_LPnclThz_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_dWWIm2kL_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_vkMNq8T0_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_9w5JwN59_sendMessage(HeavyContextInterface *, int, const HvMessage *); // objects SignalLine sLine_CPk6VuuC; SignalTabhead sTabhead_Ccf3pWD1; SignalTabread sTabread_AIPPIP2p; SignalTabread sTabread_OR6AChVH; SignalPhasor sPhasor_p4d5TEqg; SignalLine sLine_GYQ4PLNT; SignalTabwrite sTabwrite_qOQtZKqp; ControlVar cVar_YvPEpnUh; ControlVar cVar_eHayjBv6; ControlDelay cDelay_DYnzHpic; ControlVar cVar_hj1UO5Xy; ControlBinop cBinop_sPNudZ6R; ControlBinop cBinop_d9vmQ0rR; ControlBinop cBinop_G3zRyasr; ControlVar cVar_XXw3dChu; ControlVar cVar_SLtg6rNc; ControlVar cVar_YIxdPCGV; ControlVar cVar_ssKQAxko; ControlBinop cBinop_s01cENlp; ControlBinop cBinop_qGBikGct; SignalVarf sVarf_NKFEO8VS; SignalVarf sVarf_TJn8TVJj; SignalVarf sVarf_0ophamek; ControlDelay cDelay_X79tuCf2; ControlDelay cDelay_hlwCH2uT; ControlBinop cBinop_ET5EQCTg; ControlBinop cBinop_8GCNF1V8; HvTable hTable_ncKDzzLt; ControlVar cVar_AF7niKwq; ControlBinop cBinop_0qRwCHv8; ControlBinop cBinop_CwzvBF2s; ControlBinop cBinop_9OkU32H1; ControlBinop cBinop_puVbRaHY; SignalVarf sVarf_mi6YMKiN; ControlBinop cBinop_m5zjVpQA; ControlBinop cBinop_vc0hK7tw; ControlBinop cBinop_GJqnOqJV; }; #endif // _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_