Program Listing for File ManualMix.cpp

Return to documentation for file (include/audioRender/ManualMix/ManualMix.cpp)

#include "ManualMix.hpp"

FXControlPannel::FXControlPannel(int sampleRate)
{
    compressorPannel.first  = false;
    distortionPannel.first  = false;
    echoPannel.first        = false;
    eqPannel.first          = false;
    filterPannel.first      = false;
    flangerPannel.first     = false;
    ocsFilterPannel.first   = false;
    pannerPannel.first      = false;
    phaserPannel.first      = false;
    robotPannel.first       = false;
    rollPannel.first        = false;
    trancePannel.first      = false;
    volPannel.first         = false;

    compressorPannel.second .init(sampleRate);
    distortionPannel.second .init(sampleRate);
    echoPannel.second       .init(sampleRate);
    eqPannel.second         .init(sampleRate);
    filterPannel.second     .init(sampleRate);
    flangerPannel.second    .init(sampleRate);
    ocsFilterPannel.second  .init(sampleRate);
    pannerPannel.second     .init(sampleRate);
    phaserPannel.second     .init(sampleRate);
    robotPannel.second      .init(sampleRate);
    rollPannel.second       .init(sampleRate);
    trancePannel.second     .init(sampleRate);
    volPannel.second        .init(sampleRate);
}

void
FXControlPannel::FX_ON_OFF(FXList fx, bool onoff)
{
    switch (fx){

    case FXList::COMPRESSOR:
        compressorPannel.first  = onoff;
        break;

    case FXList::DISTORTION:
        distortionPannel.first  = onoff;
        break;

    case FXList::ECHO:
        echoPannel.first        = onoff;
        break;

    case FXList::EQ:
        eqPannel.first          = onoff;
        break;

    case FXList::FILTER:
        filterPannel.first      = onoff;
        break;

    case FXList::FLANGER:
        flangerPannel.first     = onoff;
        break;

    case FXList::OCSFILTER:
        ocsFilterPannel.first   = onoff;
        break;

    case FXList::PANNER:
        pannerPannel.first      = onoff;
        break;

    case FXList::PHASER:
        phaserPannel.first      = onoff;
        break;

    case FXList::ROBOT:
        robotPannel.first       = onoff;
        break;

    case FXList::ROLL:
        rollPannel.first        = onoff;
        break;

    case FXList::TRANCE:
        trancePannel.first      = onoff;
        break;

    case FXList::VOL:
        volPannel.first         = onoff;
        break;

    default:
        break;
    }
}

ARGSETTER
FXControlPannel::GetArgSetter(FXList fx)
{
    switch (fx)
    {
    case FXList::COMPRESSOR:
        return compressorPannel.second.makeArgSetter();
        break;

    case FXList::DISTORTION:
        return distortionPannel.second.makeArgSetter();
        break;

    case FXList::ECHO:
        return echoPannel.second.makeArgSetter();
        break;

    case FXList::EQ:
        return eqPannel.second.makeArgSetter();
        break;

    case FXList::FILTER:
        return filterPannel.second.makeArgSetter();
        break;

    case FXList::FLANGER:
        return flangerPannel.second.makeArgSetter();
        break;

    case FXList::OCSFILTER:
        return ocsFilterPannel.second.makeArgSetter();
        break;

    case FXList::PANNER:
        return pannerPannel.second.makeArgSetter();
        break;

    case FXList::PHASER:
        return phaserPannel.second.makeArgSetter();
        break;

    case FXList::ROBOT:
        return robotPannel.second.makeArgSetter();
        break;

    case FXList::ROLL:
        return rollPannel.second.makeArgSetter();
        break;

    case FXList::TRANCE:
        return trancePannel.second.makeArgSetter();
        break;

    case FXList::VOL:
        return volPannel.second.makeArgSetter();
        break;

    default:
        return ARGSETTER();
        break;
    }
}

void
FXControlPannel::addFX(float** pcm, int samples)
{
    checkAndUse(pcm, samples, compressorPannel);
    checkAndUse(pcm, samples, distortionPannel);
    checkAndUse(pcm, samples, echoPannel);
    checkAndUse(pcm, samples, eqPannel);
    checkAndUse(pcm, samples, filterPannel);
    checkAndUse(pcm, samples, flangerPannel);
    checkAndUse(pcm, samples, ocsFilterPannel);
    checkAndUse(pcm, samples, pannerPannel);
    checkAndUse(pcm, samples, phaserPannel);
    checkAndUse(pcm, samples, robotPannel);
    checkAndUse(pcm, samples, rollPannel);
    checkAndUse(pcm, samples, trancePannel);
    checkAndUse(pcm, samples, volPannel);

}

bool
FXControlPannel::checkSomethingOn()
{
    return
        compressorPannel.first ||
        distortionPannel.first ||
        echoPannel.first ||
        eqPannel.first ||
        filterPannel.first ||
        flangerPannel.first ||
        ocsFilterPannel.first ||
        pannerPannel.first ||
        phaserPannel.first ||
        robotPannel.first ||
        rollPannel.first ||
        trancePannel.first ||
        volPannel.first;
}