Improve struct and namespace usage

This commit is contained in:
Jaby
2023-01-08 21:08:23 +01:00
committed by Jaby
parent 274b3dc243
commit 068eb48557
14 changed files with 169 additions and 177 deletions

View File

@@ -7,32 +7,32 @@ namespace JabyEngine {
using namespace JabyEngine;
static void clear_main_volume() {
static constexpr auto StartVol = SweepVolume::with(SweepVolume::VolumeEnable, SweepVolume::Volume.with(I16_MAX >> 2));
static constexpr auto StartVol = SPU_IO::SweepVolume::with(SPU_IO::SweepVolume::VolumeEnable, SPU_IO::SweepVolume::Volume.with(I16_MAX >> 2));
MainVolume::left.write(StartVol);
MainVolume::right.write(StartVol);
SPU_IO::MainVolume::Left.write(StartVol);
SPU_IO::MainVolume::Right.write(StartVol);
}
static void clear_cd_and_ext_audio_volume() {
CDVolume::left.write(0);
CDVolume::right.write(0);
SPU_IO::CDVolume::Left.write(0);
SPU_IO::CDVolume::Right.write(0);
ExternalAudioInputVolume::left.write(0);
ExternalAudioInputVolume::right.write(0);
SPU_IO::ExternalAudioInputVolume::Left.write(0);
SPU_IO::ExternalAudioInputVolume::Right.write(0);
}
static void clear_control_register() {
Control.write(ControlRegister());
SPU_IO::Control.write(SPU_IO::ControlRegister());
}
static void clear_voice() {
for(auto& voice : Voices) {
voice.volumeLeft.write(SweepVolume());
voice.volumeRight.write(SweepVolume());
voice.sampleRate.write(SampleRate());
voice.ad.write(AD());
voice.sr.write(SR());
voice.currentVolume.write(SimpleVolume(0));
for(auto& voice : SPU_IO::Voice) {
voice.volumeLeft.write(SPU_IO::SweepVolume());
voice.volumeRight.write(SPU_IO::SweepVolume());
voice.sampleRate.write(SPU_IO::SampleRate());
voice.ad.write(SPU_IO::AD());
voice.sr.write(SPU_IO::SR());
voice.currentVolume.write(SPU_IO::SimpleVolume(0));
voice.adr.write(0x200);
voice.repeatAdr.write(0x200);
@@ -40,37 +40,37 @@ namespace JabyEngine {
}
static void clear_pmon() {
PMON.write(PitchModFlags());
SPU_IO::PMON.write(SPU_IO::PitchModFlags());
}
static void clear_noise_and_echo() {
NON.write(NoiseGenerator());
EON.write(EchoOn());
SPU_IO::NON.write(SPU_IO::NoiseGenerator());
SPU_IO::EON.write(SPU_IO::EchoOn());
}
static void clear_reverb() {
Reverb::Volume::left.write(0);
Reverb::Volume::right.write(0);
Reverb::work_area_adr.write(0);
SPU_IO::Reverb::Volume::Left.write(0);
SPU_IO::Reverb::Volume::Right.write(0);
SPU_IO::Reverb::WorkAreaAdr.write(0);
}
static void setup_control_register() {
static constexpr auto SetupValue = ControlRegister::with(ControlRegister::Enable, ControlRegister::Unmute, ControlRegister::CDAudioEnable);
static constexpr auto SetupValue = SPU_IO::ControlRegister::with(SPU_IO::ControlRegister::Enable, SPU_IO::ControlRegister::Unmute, SPU_IO::ControlRegister::CDAudioEnable);
Control.write(SetupValue);
SPU_IO::Control.write(SetupValue);
}
static void setup_data_transfer_control() {
static constexpr uint16_t RequiredValue = (2 << 1);
DataTransferControl.write(RequiredValue);
SPU_IO::DataTransferControl.write(RequiredValue);
}
static void wait_voices() {
static constexpr int16_t Treshhold = (I16_MAX*0.03);
try_again:
for(const auto& voice : Voices) {
for(const auto& voice : SPU_IO::Voice) {
if(voice.currentVolume.read() > Treshhold) {
goto try_again;
}
@@ -78,7 +78,7 @@ namespace JabyEngine {
}
void stop_voices() {
Key::off.write(UI32_MAX);
SPU_IO::Key::Off.write(UI32_MAX);
}
void setup() {