void FMODDistanceFilterState::init(FMOD_DSP_STATE *dsp_state)
{
    FMOD_DSP_STATE_GETSAMPLERATE(dsp_state, &m_sample_rate);

    m_max_channels = 8;
    m_max_distance = FMOD_DISTANCE_FILTER_PARAM_MAX_DISTANCE_DEFAULT;
    m_bandpass_frequency = FMOD_DISTANCE_FILTER_PARAM_BANDPASS_FREQUENCY_DEFAULT;
    m_distance = 0;

    m_previous_lp1_out = (float*)FMOD_DSP_STATE_MEMALLOC(dsp_state, m_max_channels * sizeof(float), FMOD_MEMORY_NORMAL, "Previous Lowpass1 outputs");
    m_previous_lp2_out = (float*)FMOD_DSP_STATE_MEMALLOC(dsp_state, m_max_channels * sizeof(float), FMOD_MEMORY_NORMAL, "Previous Lowpass2 outputs");
    m_previous_hp_out = (float*)FMOD_DSP_STATE_MEMALLOC(dsp_state, m_max_channels * sizeof(float), FMOD_MEMORY_NORMAL, "Previous Highpass outputs");

    updateTimeConstants();
    reset();
}
Example #2
0
FMOD_RESULT F_CALLBACK FMOD_Noise_dspcreate(FMOD_DSP_STATE *dsp)
{
    dsp->plugindata = (FMODNoiseState *)FMOD_DSP_STATE_MEMALLOC(dsp, sizeof(FMODNoiseState), FMOD_MEMORY_NORMAL, "FMODNoiseState");
    if (!dsp->plugindata)
    {
        return FMOD_ERR_MEMORY;
    }
    return FMOD_OK;
}
FMOD_RESULT F_CALLBACK FMOD_DistanceFilter_dspcreate(FMOD_DSP_STATE *dsp_state)
{
    FMODDistanceFilterState* state = (FMODDistanceFilterState *)FMOD_DSP_STATE_MEMALLOC(dsp_state, sizeof(FMODDistanceFilterState), FMOD_MEMORY_NORMAL, "FMODDistanceFilterState");
    state->init(dsp_state);
    dsp_state->plugindata = state;
    if (!state)
    {
        return FMOD_ERR_MEMORY;
    }
    return FMOD_OK;
}