| 475 | } |
| 476 | |
| 477 | void 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 | |
| 504 | void DspHost::updateFromCache() |
| 505 | { |
nothing calls this directly
no test coverage detected