/** * Copyright (c) 2022 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_DELAY_SIMPLE_HPP_ #define _HEAVY_CONTEXT_DELAY_SIMPLE_HPP_ // object includes #include "HeavyContext.hpp" #include "HvControlTabhead.h" #include "HvSignalVar.h" #include "HvTable.h" #include "HvControlBinop.h" #include "HvSignalTabwrite.h" #include "HvControlDelay.h" #include "HvMath.h" #include "HvSignalTabread.h" #include "HvControlSystem.h" #include "HvControlVar.h" #include "HvControlCast.h" class Heavy_delay_simple : public HeavyContext { public: Heavy_delay_simple(double sampleRate, int poolKb=10, int inQueueKb=2, int outQueueKb=0); ~Heavy_delay_simple(); const char *getName() override { return "delay_simple"; } int getNumInputChannels() override { return 2; } 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 { DELAY_FEEDBACK = 0x36377AA9, // Delay_Feedback DELAY_TIME = 0xEE78D101, // Delay_Time DRY_VOLUME = 0x5EFB46D2, // Dry_Volume GAIN = 0x677821DA, // Gain WET_VOLUME = 0xEA49B5A, // Wet_Volume }; }; }; private: HvTable *getTableForHash(hv_uint32_t tableHash) override; void scheduleMessageForReceiver(hv_uint32_t receiverHash, HvMessage *m) override; // static sendMessage functions static void cVar_4cpXTaBY_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_fRPZcVCt_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_Om7ifKfd_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_LnHfGF8V_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_mOyup5ir_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_hdrV3jKk_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_B288dglo_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_OFD5iAqe_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_EI4kKdvf_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_4MyuHNhK_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void hTable_TFqOKFso_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_clwxczYs_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_NAf7xjjy_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_o1Fk4mWr_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_g87DeymK_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_DlDeZMFB_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cTabhead_zhu6BFdy_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_c68iDIVD_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_LlBI3RTT_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cVar_nONxuBGP_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_FTWI9Lbr_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cDelay_4Y58Ksfn_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void sTabread_OJVVdLuf_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_kd9uMvnd_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_qp875S9R_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_99kJjPmN_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSystem_kPqFOU4H_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_2Y6gSDxh_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_60hMCcpx_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cMsg_2y7SxePc_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_khIQbSXe_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_zoAHkSwC_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_H69XkGIL_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cBinop_HsqyfMPx_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cCast_spzeS2Y3_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSend_wldZJDJM_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSend_dFhbvIPr_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSend_4A35hG1G_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cSend_jiugLxbD_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_kE9u8lIG_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_pzAN0z6v_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_iG7Q7Uzr_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_kJYDDgog_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_AJBhI0kX_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_eGza5oBR_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_SIoX2X2C_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_UQL9KHRi_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_ex2b75Oc_sendMessage(HeavyContextInterface *, int, const HvMessage *); static void cReceive_LQwqfjMo_sendMessage(HeavyContextInterface *, int, const HvMessage *); // objects SignalTabread sTabread_OJVVdLuf; SignalTabwrite sTabwrite_kTfJPrs1; ControlVar cVar_4cpXTaBY; ControlVar cVar_fRPZcVCt; ControlVar cVar_Om7ifKfd; ControlVar cVar_LnHfGF8V; ControlVar cVar_mOyup5ir; ControlDelay cDelay_OFD5iAqe; ControlDelay cDelay_EI4kKdvf; ControlBinop cBinop_4MyuHNhK; HvTable hTable_TFqOKFso; ControlBinop cBinop_NAf7xjjy; ControlTabhead cTabhead_zhu6BFdy; ControlVar cVar_nONxuBGP; ControlDelay cDelay_FTWI9Lbr; ControlDelay cDelay_4Y58Ksfn; ControlBinop cBinop_kd9uMvnd; ControlBinop cBinop_qp875S9R; ControlBinop cBinop_99kJjPmN; ControlBinop cBinop_khIQbSXe; ControlBinop cBinop_H69XkGIL; ControlBinop cBinop_HsqyfMPx; SignalVarf sVarf_DXN3F4mN; SignalVarf sVarf_o7lB6W7R; SignalVarf sVarf_4RDRwlaL; SignalVarf sVarf_vL8TEPN9; SignalVarf sVarf_eLw9NCKn; }; #endif // _HEAVY_CONTEXT_DELAY_SIMPLE_HPP_