| 1453 | } |
| 1454 | |
| 1455 | void BambooTracker::funcJamKeyOff(JamKey key, int keyNum, const TrackAttribute& attrib) |
| 1456 | { |
| 1457 | if (attrib.source == SoundSource::RHYTHM) { |
| 1458 | opnaCtrl_->setKeyOffFlagRhythm(attrib.channelInSource); |
| 1459 | opnaCtrl_->updateKeyOnOffStatusRhythm(true); |
| 1460 | } |
| 1461 | else { |
| 1462 | JamKeyInfo&& info = jamMan_->keyOff(key, keyNum); |
| 1463 | |
| 1464 | if (info.channelInSource > -1) { // Key still sound |
| 1465 | switch (info.source) { |
| 1466 | case SoundSource::FM: |
| 1467 | if (songStyle_.type == SongType::FM3chExpanded && info.channelInSource == 2) { |
| 1468 | opnaCtrl_->keyOffFM(2, true); |
| 1469 | opnaCtrl_->keyOffFM(6, true); |
| 1470 | opnaCtrl_->keyOffFM(7, true); |
| 1471 | opnaCtrl_->keyOffFM(8, true); |
| 1472 | } |
| 1473 | else { |
| 1474 | opnaCtrl_->keyOffFM(info.channelInSource, true); |
| 1475 | } |
| 1476 | break; |
| 1477 | case SoundSource::SSG: |
| 1478 | opnaCtrl_->keyOffSSG(info.channelInSource, true); |
| 1479 | break; |
| 1480 | case SoundSource::ADPCM: |
| 1481 | opnaCtrl_->keyOffADPCM(true); |
| 1482 | break; |
| 1483 | default: |
| 1484 | break; |
| 1485 | } |
| 1486 | } |
| 1487 | } |
| 1488 | } |
| 1489 | |
| 1490 | void BambooTracker::jamkeyOffAll() |
| 1491 | { |
nothing calls this directly
no test coverage detected