chore(fmod): add files from Chensne/DragonNest
This commit is contained in:
commit
50fb3c6b1c
544 changed files with 315778 additions and 0 deletions
127
src/fmod_dsp_tremolo.h
Executable file
127
src/fmod_dsp_tremolo.h
Executable file
|
|
@ -0,0 +1,127 @@
|
|||
#ifndef _FMOD_DSP_TREMOLO_H
|
||||
#define _FMOD_DSP_TREMOLO_H
|
||||
|
||||
#include "fmod_settings.h"
|
||||
|
||||
#ifdef FMOD_SUPPORT_TREMOLO
|
||||
|
||||
#include "fmod.h"
|
||||
#include "fmod_dsp_filter.h"
|
||||
|
||||
#define TREMOLO_MAX_CHANNELS 16
|
||||
#define TREMOLO_MAX_CHANNEL_MAPS 8
|
||||
#define TREMOLO_TABLE_SIZE 16
|
||||
#define TREMOLO_TRANSITION 128
|
||||
|
||||
namespace FMOD
|
||||
{
|
||||
#if defined(PLATFORM_PS3) || defined(PLATFORM_WINDOWS_PS3MODE)
|
||||
class DSPTremolo : public DSPI
|
||||
#else
|
||||
class DSPTremolo : public DSPFilter
|
||||
#endif
|
||||
{
|
||||
DECLARE_MEMORYTRACKER_NONVIRTUAL
|
||||
|
||||
private:
|
||||
|
||||
typedef struct {
|
||||
int channelcount;
|
||||
float phase[TREMOLO_MAX_CHANNEL_MAPS];
|
||||
} speakerPhaseMap;
|
||||
|
||||
static const speakerPhaseMap phaseMap[];
|
||||
|
||||
float FMOD_PPCALIGN16(mFrequency);
|
||||
float FMOD_PPCALIGN16(mFrequencyUpdate);
|
||||
float FMOD_PPCALIGN16(mDepth);
|
||||
float FMOD_PPCALIGN16(mDepthUpdate);
|
||||
float FMOD_PPCALIGN16(mShape);
|
||||
float FMOD_PPCALIGN16(mShapeUpdate);
|
||||
float FMOD_PPCALIGN16(mSkew);
|
||||
float FMOD_PPCALIGN16(mSkewUpdate);
|
||||
float FMOD_PPCALIGN16(mDuty);
|
||||
float FMOD_PPCALIGN16(mDutyUpdate);
|
||||
float FMOD_PPCALIGN16(mSquare);
|
||||
float FMOD_PPCALIGN16(mSquareUpdate);
|
||||
float FMOD_PPCALIGN16(mPhase);
|
||||
float FMOD_PPCALIGN16(mPhaseUpdate);
|
||||
bool FMOD_PPCALIGN16(mUpdatePhase);
|
||||
float FMOD_PPCALIGN16(mSpread);
|
||||
float FMOD_PPCALIGN16(mSpreadUpdate);
|
||||
|
||||
float FMOD_PPCALIGN16(mKUp);
|
||||
float FMOD_PPCALIGN16(mKHigh);
|
||||
float FMOD_PPCALIGN16(mKDown);
|
||||
float FMOD_PPCALIGN16(mKLow);
|
||||
|
||||
int FMOD_PPCALIGN16(mPosUp);
|
||||
int FMOD_PPCALIGN16(mPosHigh);
|
||||
int FMOD_PPCALIGN16(mPosDown);
|
||||
int FMOD_PPCALIGN16(mPosLow);
|
||||
|
||||
float FMOD_PPCALIGN16(mPeriod);
|
||||
int FMOD_PPCALIGN16(mPeriodSamples);
|
||||
|
||||
float FMOD_PPCALIGN16(mPeriodAdjust);
|
||||
float FMOD_PPCALIGN16(mPeriodOffset);
|
||||
int FMOD_PPCALIGN16(mPeriodAddSample);
|
||||
|
||||
float FMOD_PPCALIGN16(mTableUpPeriod);
|
||||
float FMOD_PPCALIGN16(mTableDownPeriod);
|
||||
float FMOD_PPCALIGN16(mUpRampFactor);
|
||||
float FMOD_PPCALIGN16(mDownRampFactor);
|
||||
float FMOD_PPCALIGN16(mTransitionRampFactor);
|
||||
float FMOD_PPCALIGN16(mLFOMin);
|
||||
|
||||
float FMOD_PPCALIGN16(mInvPeriod);
|
||||
float FMOD_PPCALIGN16(mInvTableSize);
|
||||
|
||||
int FMOD_PPCALIGN16(mLFOPos[TREMOLO_MAX_CHANNELS]);
|
||||
float FMOD_PPCALIGN16(mLFOLevel[TREMOLO_MAX_CHANNELS]);
|
||||
float FMOD_PPCALIGN16(mLFORamp[TREMOLO_MAX_CHANNELS]);
|
||||
int FMOD_PPCALIGN16(mLFONextRamp[TREMOLO_MAX_CHANNELS]);
|
||||
|
||||
float FMOD_PPCALIGN16(mLFOTable[TREMOLO_TABLE_SIZE+1]);
|
||||
|
||||
int FMOD_PPCALIGN16(mOutputRate);
|
||||
int FMOD_PPCALIGN16(mChannels);
|
||||
|
||||
unsigned short mOldSpeakerMask;
|
||||
|
||||
FMOD_RESULT createInternal();
|
||||
FMOD_RESULT releaseInternal();
|
||||
FMOD_RESULT resetInternal();
|
||||
FMOD_RESULT readInternal(float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels);
|
||||
FMOD_RESULT setParameterInternal(int index, float value);
|
||||
FMOD_RESULT getParameterInternal(int index, float *value, char *valuestr);
|
||||
|
||||
void createLFOTable();
|
||||
void updateWaveform();
|
||||
void updateTiming();
|
||||
void applyPhase();
|
||||
|
||||
void getRampValues(int samplepos, float *p_lfolevel, float *p_lforamp, int *p_nextramppos);
|
||||
float getLFOLevel(int samplepos);
|
||||
float readLFOTable(int pos, bool forward, float *ramp);
|
||||
|
||||
public:
|
||||
|
||||
static FMOD_DSP_DESCRIPTION_EX *getDescriptionEx();
|
||||
|
||||
static FMOD_RESULT F_CALLBACK createCallback(FMOD_DSP_STATE *dsp);
|
||||
static FMOD_RESULT F_CALLBACK releaseCallback(FMOD_DSP_STATE *dsp);
|
||||
static FMOD_RESULT F_CALLBACK resetCallback(FMOD_DSP_STATE *dsp);
|
||||
static FMOD_RESULT F_CALLBACK readCallback(FMOD_DSP_STATE *dsp, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels);
|
||||
static FMOD_RESULT F_CALLBACK setParameterCallback(FMOD_DSP_STATE *dsp, int index, float value);
|
||||
static FMOD_RESULT F_CALLBACK getParameterCallback(FMOD_DSP_STATE *dsp, int index, float *value, char *valuestr);
|
||||
#ifdef FMOD_SUPPORT_MEMORYTRACKER
|
||||
static FMOD_RESULT F_CALLBACK getMemoryUsedCallback(FMOD_DSP_STATE *dsp, MemoryTracker *tracker);
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue