hvcc-examples-dpf/delay_simple/c/Heavy_delay_simple.hpp
2022-09-16 15:34:36 +02:00

163 lines
8.5 KiB
C++

/**
* 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_