Program Listing for File audioRender.cpp

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

#include "audioRender.hpp"

bool
audioRender::LoadTrack(litedb& db, trackdata& td)
{
    auto searchRes = db << td;
    if(!searchRes.has_value()){
        return false;
    }
    auto mb = CapReader<MixBinaryCapnpData>();
    if(!mb.open(searchRes.value()[0].mixBinary)){
        return false;
    }
    auto mt = MixTranslator();
    if(!(mt.Read(mb))){
        return false;
    }
    auto mm = MixMachine();

    if(!mm.IDsort(mt)){
        return false;
    }

    if(!mm.mix(db, mt.bpms.value())){
        return false;
    }
    rendered_frames = std::move(mm.rendered_out);

    if(!rendered_frames.has_value()){
        return false;
    }
    return true;
}

bool
audioRender::LoadTrackFromMixData(litedb& db, BIN& mixData)
{

    auto mb = CapReader<MixBinaryCapnpData>();
    if(!mb.open(mixData)){
        return false;
    }
    auto mt = MixTranslator();
    if(!(mt.Read(mb))){
        return false;
    }
    auto mm = MixMachine();

    if(!mm.IDsort(mt)){
        return false;
    }

    if(!mm.mix(db, mt.bpms.value())){
        return false;
    }
    rendered_frames = std::move(mm.rendered_out);

    if(!rendered_frames.has_value()){
        return false;
    }
    return true;
}