MCPcopy Create free account
hub / github.com/Audio4Linux/JDSP4Linux / updateCrossfeed

Method updateCrossfeed

src/audio/base/DspHost.cpp:477–502  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

475}
476
477void DspHost::updateCrossfeed(DspConfig* config)
478{
479 int mode = config->get<int>(DspConfig::crossfeed_mode);
480
481 // Workaround: CrossfeedChangeMode for mode 0 (weak) leads to audio loss. so let's just do it directly like BS2B custom above
482 if(mode == 99 /* custom */ || mode == 0 /* weak */)
483 {
484 int fcut = config->get<int>(DspConfig::crossfeed_bs2b_fcut);
485 int feed = config->get<int>(DspConfig::crossfeed_bs2b_feed);
486
487 // Workaround, see comment above
488 if(mode == 0)
489 {
490 fcut = 700;
491 feed = 65;
492 }
493
494 memset(&cast(this->_dsp)->advXF.bs2b, 0, sizeof(cast(this->_dsp)->advXF.bs2b));
495 BS2BInit(&cast(this->_dsp)->advXF.bs2b[1], (unsigned int)cast(this->_dsp)->fs, ((unsigned int)fcut | ((unsigned int)feed << 16)));
496 cast(this->_dsp)->advXF.mode = 1;
497 }
498 else
499 {
500 CrossfeedChangeMode(cast(this->_dsp), mode);
501 }
502}
503
504void DspHost::updateFromCache()
505{

Callers

nothing calls this directly

Calls 3

castFunction · 0.85
CrossfeedChangeModeFunction · 0.85
BS2BInitFunction · 0.50

Tested by

no test coverage detected