From 7416f413db78e8638bcb51bb9b4415c97a4d16c6 Mon Sep 17 00:00:00 2001 From: fig02 Date: Thu, 27 Mar 2025 01:47:44 -0400 Subject: [PATCH] SoundMode -> SoundOutputMode (#2475) * SoundOutputMode, and move SoundSetting * missed a couple * format * move SoundSetting --- include/audiothread_cmd.h | 10 ++--- include/seqcmd.h | 10 ++--- include/variables.h | 2 +- include/z64audio.h | 16 +++---- src/audio/data.c | 10 ++--- src/audio/debug.inc.c | 2 +- src/audio/general.c | 42 +++++++++++-------- src/audio/lib/load.c | 2 +- src/audio/lib/playback.c | 6 +-- src/audio/lib/synthesis.c | 2 +- src/audio/lib/thread.c | 4 +- src/audio/sequence.c | 6 +-- src/code/z_sram.c | 2 +- src/overlays/actors/ovl_En_Mag/z_en_mag.c | 2 +- .../ovl_file_choose/z_file_nameset.c | 2 +- 15 files changed, 63 insertions(+), 55 deletions(-) diff --git a/include/audiothread_cmd.h b/include/audiothread_cmd.h index c0576b82b3..c4a3436311 100644 --- a/include/audiothread_cmd.h +++ b/include/audiothread_cmd.h @@ -44,7 +44,7 @@ typedef enum AudioThreadCmdOp { /* 0xE1 */ AUDIOCMD_OP_GLOBAL_SET_SFX_FONT, /* 0xE2 */ AUDIOCMD_OP_GLOBAL_SET_INSTRUMENT_FONT, /* 0xE3 */ AUDIOCMD_OP_GLOBAL_POP_PERSISTENT_CACHE, - /* 0xF0 */ AUDIOCMD_OP_GLOBAL_SET_SOUND_MODE = 0xF0, + /* 0xF0 */ AUDIOCMD_OP_GLOBAL_SET_SOUND_OUTPUT_MODE = 0xF0, /* 0xF1 */ AUDIOCMD_OP_GLOBAL_MUTE, /* 0xF2 */ AUDIOCMD_OP_GLOBAL_UNMUTE, /* 0xF3 */ AUDIOCMD_OP_GLOBAL_SYNC_LOAD_INSTRUMENT, @@ -412,12 +412,12 @@ typedef enum AudioThreadCmdOp { AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_POP_PERSISTENT_CACHE, 0, 0, 0), tableType) /** - * Change the sound mode of audio + * Change the sound output mode * - * @param soundMode (s32) see the `SoundMode` enum + * @param soundOutputMode (s32) see the `SoundOutputMode` enum */ -#define AUDIOCMD_GLOBAL_SET_SOUND_MODE(soundMode) \ - AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_SET_SOUND_MODE, 0, 0, 0), soundMode) +#define AUDIOCMD_GLOBAL_SET_SOUND_OUTPUT_MODE(soundOutputMode) \ + AudioThread_QueueCmdS32(AUDIO_MK_CMD(AUDIOCMD_OP_GLOBAL_SET_SOUND_OUTPUT_MODE, 0, 0, 0), soundOutputMode) /** * Mute all sequence players diff --git a/include/seqcmd.h b/include/seqcmd.h index 5acce7c493..53fce27bfb 100644 --- a/include/seqcmd.h +++ b/include/seqcmd.h @@ -56,7 +56,7 @@ typedef enum SeqCmdSetupCmdOp { // Subset of `SEQCMD_OP_GLOBAL_CMD` typedef enum SeqCmdSubCmdOp { - /* 0x0 */ SEQCMD_SUB_OP_GLOBAL_SET_SOUND_MODE, + /* 0x0 */ SEQCMD_SUB_OP_GLOBAL_SET_SOUND_OUTPUT_MODE, /* 0x1 */ SEQCMD_SUB_OP_GLOBAL_DISABLE_NEW_SEQUENCES } SeqCmdSubCmdOp; @@ -479,12 +479,12 @@ typedef enum SeqCmdSubCmdOp { */ /** - * Change the sound mode of audio + * Change the sound output mode * - * @param soundMode see the `SoundMode` enum + * @param soundOutputMode see the `SoundOutputMode` enum */ -#define SEQCMD_SET_SOUND_MODE(soundMode) \ - Audio_QueueSeqCmd((SEQCMD_OP_GLOBAL_CMD << 28) | (SEQCMD_SUB_OP_GLOBAL_SET_SOUND_MODE << 8) | (u8)(soundMode)) +#define SEQCMD_SET_SOUND_OUTPUT_MODE(soundOutputMode) \ + Audio_QueueSeqCmd((SEQCMD_OP_GLOBAL_CMD << 28) | (SEQCMD_SUB_OP_GLOBAL_SET_SOUND_OUTPUT_MODE << 8) | (u8)(soundOutputMode)) /** * Disable (or reenable) new sequences from starting diff --git a/include/variables.h b/include/variables.h index 845826b664..b6f1384fc0 100644 --- a/include/variables.h +++ b/include/variables.h @@ -118,7 +118,7 @@ extern u8 gStartSeqDisabled; #if DEBUG_FEATURES extern u8 gAudioDebugPrintSeqCmd; #endif -extern u8 gSoundModeList[]; +extern u8 gSoundOutputModes[]; extern u8 gAudioSpecId; extern u8 D_80133418; extern AudioSpec gAudioSpecs[18]; diff --git a/include/z64audio.h b/include/z64audio.h index 3673811ac9..fdbbd62509 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -75,12 +75,12 @@ typedef enum SoundSetting { /* 3 */ SOUND_SETTING_SURROUND } SoundSetting; -typedef enum SoundMode { - /* 0 */ SOUNDMODE_STEREO, - /* 1 */ SOUNDMODE_HEADSET, - /* 2 */ SOUNDMODE_SURROUND, - /* 3 */ SOUNDMODE_MONO -} SoundMode; +typedef enum SoundOutputMode { + /* 0 */ SOUND_OUTPUT_STEREO, + /* 1 */ SOUND_OUTPUT_HEADSET, + /* 2 */ SOUND_OUTPUT_SURROUND, + /* 3 */ SOUND_OUTPUT_MONO +} SoundOutputMode; typedef enum AdsrStatus { /* 0 */ ADSR_STATE_DISABLED, @@ -936,7 +936,7 @@ typedef struct AudioContext { /* 0x2890 */ s32 maxAudioCmds; /* 0x2894 */ s32 numNotes; /* 0x2898 */ s16 maxTempo; // Maximum possible tempo (seqTicks per minute), using every tick as a seqTick to process a .seq file - /* 0x289A */ s8 soundMode; + /* 0x289A */ s8 soundOutputMode; /* 0x289C */ s32 totalTaskCount; // The total number of times the top-level function on the audio thread has run since audio was initialized /* 0x28A0 */ s32 curAudioFrameDmaCount; /* 0x28A4 */ s32 rspTaskIndex; @@ -1204,7 +1204,7 @@ void func_800F64E0(u8 arg0); void Audio_ToggleMalonSinging(u8 malonSingingDisabled); void Audio_SetEnvReverb(s8 reverb); void Audio_SetCodeReverb(s8 reverb); -void Audio_SetSoundMode(s8 soundSetting); +void Audio_SetSoundOutputMode(s8 soundSetting); void Audio_SetBaseFilter(u8); void Audio_SetExtraFilter(u8); void Audio_SetCutsceneFlag(s8 flag); diff --git a/src/audio/data.c b/src/audio/data.c index 5f8bfa71f3..729af6aa34 100644 --- a/src/audio/data.c +++ b/src/audio/data.c @@ -59,11 +59,11 @@ u8 gStartSeqDisabled = false; u8 gAudioDebugPrintSeqCmd = true; #endif -u8 gSoundModeList[] = { - SOUNDMODE_STEREO, - SOUNDMODE_HEADSET, - SOUNDMODE_SURROUND, - SOUNDMODE_MONO, +u8 gSoundOutputModes[] = { + SOUND_OUTPUT_STEREO, + SOUND_OUTPUT_HEADSET, + SOUND_OUTPUT_SURROUND, + SOUND_OUTPUT_MONO, }; u8 gAudioSpecId = 0; diff --git a/src/audio/debug.inc.c b/src/audio/debug.inc.c index a41254001e..e6d2dd89ca 100644 --- a/src/audio/debug.inc.c +++ b/src/audio/debug.inc.c @@ -847,7 +847,7 @@ void AudioDebug_ProcessInput_SndCont(void) { &gSfxDefaultReverb); break; case 4: - Audio_SetSoundMode(sAudioSndContWork[sAudioSndContSel]); + Audio_SetSoundOutputMode(sAudioSndContWork[sAudioSndContSel]); break; case 5: SEQCMD_DISABLE_PLAY_SEQUENCES(sAudioSndContWork[sAudioSndContSel]); diff --git a/src/audio/general.c b/src/audio/general.c index 83572107a8..8e3b6a6e79 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -141,9 +141,9 @@ f32 D_801305F4 = 1.0f; u8 sGanonsTowerLevelsVol[8] = { 127, 80, 75, 73, 70, 68, 65, 60 }; u8 sEnterGanonsTowerTimer = 0; #if DEBUG_FEATURES -s8 sSoundMode = SOUNDMODE_SURROUND; +s8 sSoundOutputMode = SOUND_OUTPUT_SURROUND; #else -s8 sSoundMode = SOUNDMODE_STEREO; +s8 sSoundOutputMode = SOUND_OUTPUT_STEREO; #endif s8 D_80130608 = 0; s8 sAudioCutsceneFlag = 0; @@ -2631,7 +2631,7 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIdx, u8 channelIndex) { case BANK_ENV: case BANK_ENEMY: case BANK_VOICE: - if (sSoundMode == SOUNDMODE_SURROUND) { + if (sSoundOutputMode == SOUND_OUTPUT_SURROUND) { combFilterGain = func_800F3990(*entry->posY, entry->sfxParams); } FALLTHROUGH; @@ -2643,7 +2643,7 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIdx, u8 channelIndex) { pan = Audio_ComputeSfxPanSigned(*entry->posX, *entry->posZ, entry->token); freqScale = Audio_ComputeSfxFreqScale(bankId, entryIdx) * *entry->freqScale; - if (sSoundMode == SOUNDMODE_SURROUND) { + if (sSoundOutputMode == SOUND_OUTPUT_SURROUND) { behindScreenZ = sBehindScreenZ[(entry->sfxParams & SFX_FLAG_10) >> SFX_FLAG_10_SHIFT]; if (!(entry->sfxParams & SFX_FLAG_11)) { if (*entry->posZ < behindScreenZ) { @@ -2675,7 +2675,7 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIdx, u8 channelIndex) { if ((baseFilter | sAudioExtraFilter) != 0) { filter = (baseFilter | sAudioExtraFilter); - } else if ((sSoundMode == SOUNDMODE_SURROUND) && !(entry->sfxParams & SFX_FLAG_13)) { + } else if ((sSoundOutputMode == SOUND_OUTPUT_SURROUND) && !(entry->sfxParams & SFX_FLAG_13)) { filter = func_800F37B8(behindScreenZ, entry, pan); } break; @@ -3773,32 +3773,40 @@ void Audio_SetCodeReverb(s8 reverb) { } } -void Audio_SetSoundMode(s8 soundSetting) { - s8 soundModeIndex; +/** + * Sets the Sound Output Mode. + * + * This function translates the game-side `SoundSetting` to an internal `SoundOutputMode` value. + * The order of each value between the two enums is slightly different. + * + * Original name: Na_SetSoundOutputMode + */ +void Audio_SetSoundOutputMode(s8 soundSetting) { + s8 soundOutputMode; switch (soundSetting) { case SOUND_SETTING_STEREO: - soundModeIndex = SOUNDMODE_STEREO; - sSoundMode = SOUNDMODE_STEREO; + soundOutputMode = SOUND_OUTPUT_STEREO; + sSoundOutputMode = SOUND_OUTPUT_STEREO; break; case SOUND_SETTING_MONO: - soundModeIndex = SOUNDMODE_MONO; - sSoundMode = SOUNDMODE_MONO; + soundOutputMode = SOUND_OUTPUT_MONO; + sSoundOutputMode = SOUND_OUTPUT_MONO; break; case SOUND_SETTING_HEADSET: - soundModeIndex = SOUNDMODE_HEADSET; - sSoundMode = SOUNDMODE_HEADSET; + soundOutputMode = SOUND_OUTPUT_HEADSET; + sSoundOutputMode = SOUND_OUTPUT_HEADSET; break; case SOUND_SETTING_SURROUND: - soundModeIndex = SOUNDMODE_STEREO; - sSoundMode = SOUNDMODE_SURROUND; + soundOutputMode = SOUND_OUTPUT_STEREO; + sSoundOutputMode = SOUND_OUTPUT_SURROUND; break; } - SEQCMD_SET_SOUND_MODE(soundModeIndex); + SEQCMD_SET_SOUND_OUTPUT_MODE(soundOutputMode); } void Audio_SetBaseFilter(u8 filter) { @@ -4046,7 +4054,7 @@ void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId) { SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, channelIdx, ioPort, ioData); } - SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, NATURE_CHANNEL_UNK, CHANNEL_IO_PORT_7, sSoundMode); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, NATURE_CHANNEL_UNK, CHANNEL_IO_PORT_7, sSoundOutputMode); } } diff --git a/src/audio/lib/load.c b/src/audio/lib/load.c index d4c1ea8644..4a0b8388e3 100644 --- a/src/audio/lib/load.c +++ b/src/audio/lib/load.c @@ -1192,7 +1192,7 @@ void AudioLoad_Init(void* heap, u32 heapSize) { gAudioCtx.totalTaskCount = 0; gAudioCtx.rspTaskIndex = 0; gAudioCtx.curAiBufIndex = 0; - gAudioCtx.soundMode = SOUNDMODE_STEREO; + gAudioCtx.soundOutputMode = SOUND_OUTPUT_STEREO; gAudioCtx.curTask = NULL; gAudioCtx.rspTask[0].task.t.data_size = 0; gAudioCtx.rspTask[1].task.t.data_size = 0; diff --git a/src/audio/lib/playback.c b/src/audio/lib/playback.c index 9c1b8126e4..b84fa31df4 100644 --- a/src/audio/lib/playback.c +++ b/src/audio/lib/playback.c @@ -31,7 +31,7 @@ void Audio_InitNoteSub(Note* note, NoteSubEu* sub, NoteSubAttributes* attrs) { sub->bitField0.stereoStrongLeft = false; sub->bitField0.stereoHeadsetEffects = stereoData.stereoHeadsetEffects; sub->bitField0.usesHeadsetPanEffects = stereoData.usesHeadsetPanEffects; - if (stereoHeadsetEffects && (gAudioCtx.soundMode == SOUNDMODE_HEADSET)) { + if (stereoHeadsetEffects && (gAudioCtx.soundOutputMode == SOUND_OUTPUT_HEADSET)) { halfPanIndex = pan >> 1; if (halfPanIndex > 0x3F) { halfPanIndex = 0x3F; @@ -43,7 +43,7 @@ void Audio_InitNoteSub(Note* note, NoteSubEu* sub, NoteSubAttributes* attrs) { volLeft = gHeadsetPanVolume[pan]; volRight = gHeadsetPanVolume[0x7F - pan]; - } else if (stereoHeadsetEffects && (gAudioCtx.soundMode == SOUNDMODE_STEREO)) { + } else if (stereoHeadsetEffects && (gAudioCtx.soundOutputMode == SOUND_OUTPUT_STEREO)) { strongLeft = strongRight = 0; sub->haasEffectLeftDelaySize = 0; sub->haasEffectRightDelaySize = 0; @@ -80,7 +80,7 @@ void Audio_InitNoteSub(Note* note, NoteSubEu* sub, NoteSubAttributes* attrs) { break; } - } else if (gAudioCtx.soundMode == SOUNDMODE_MONO) { + } else if (gAudioCtx.soundOutputMode == SOUND_OUTPUT_MONO) { sub->bitField0.stereoHeadsetEffects = false; sub->bitField0.usesHeadsetPanEffects = false; volLeft = 0.707f; // approx 1/sqrt(2) diff --git a/src/audio/lib/synthesis.c b/src/audio/lib/synthesis.c index 85fb8d2610..72bec4390a 100644 --- a/src/audio/lib/synthesis.c +++ b/src/audio/lib/synthesis.c @@ -647,7 +647,7 @@ Acmd* AudioSynth_DoOneAudioUpdate(s16* aiBuf, s32 aiBufLen, Acmd* cmd, s32 updat #if OOT_VERSION < NTSC_1_1 || !PLATFORM_N64 if ((reverb->leakRtl != 0) || (reverb->leakLtr != 0)) #else - if (((reverb->leakRtl != 0) || (reverb->leakLtr != 0)) && (gAudioCtx.soundMode != SOUNDMODE_MONO)) + if (((reverb->leakRtl != 0) || (reverb->leakLtr != 0)) && (gAudioCtx.soundOutputMode != SOUND_OUTPUT_MONO)) #endif { cmd = AudioSynth_LeakReverb(cmd, reverb); diff --git a/src/audio/lib/thread.c b/src/audio/lib/thread.c index f47dbade7e..6bc793e3f6 100644 --- a/src/audio/lib/thread.c +++ b/src/audio/lib/thread.c @@ -226,8 +226,8 @@ void AudioThread_ProcessGlobalCmd(AudioCmd* cmd) { } break; - case AUDIOCMD_OP_GLOBAL_SET_SOUND_MODE: - gAudioCtx.soundMode = cmd->asUInt; + case AUDIOCMD_OP_GLOBAL_SET_SOUND_OUTPUT_MODE: + gAudioCtx.soundOutputMode = cmd->asUInt; break; case AUDIOCMD_OP_GLOBAL_MUTE: diff --git a/src/audio/sequence.c b/src/audio/sequence.c index a6d5003cc4..208429eadf 100644 --- a/src/audio/sequence.c +++ b/src/audio/sequence.c @@ -370,9 +370,9 @@ void Audio_ProcessSeqCmd(u32 cmd) { subOp = (cmd & 0xF00) >> 8; val = cmd & 0xFF; switch (subOp) { - case SEQCMD_SUB_OP_GLOBAL_SET_SOUND_MODE: - // Set sound mode - AUDIOCMD_GLOBAL_SET_SOUND_MODE(gSoundModeList[val]); + case SEQCMD_SUB_OP_GLOBAL_SET_SOUND_OUTPUT_MODE: + // Set sound output mode + AUDIOCMD_GLOBAL_SET_SOUND_OUTPUT_MODE(gSoundOutputModes[val]); break; case SEQCMD_SUB_OP_GLOBAL_DISABLE_NEW_SEQUENCES: diff --git a/src/code/z_sram.c b/src/code/z_sram.c index de2f1ce72e..bf713d373d 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -1058,7 +1058,7 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting); PRINTF_RST(); - Audio_SetSoundMode(gSaveContext.soundSetting); + Audio_SetSoundOutputMode(gSaveContext.soundSetting); } void Sram_Alloc(GameState* gameState, SramContext* sramCtx) { diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c index 3431445989..222fbaa3ea 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -71,7 +71,7 @@ void EnMag_ResetSram(void) { SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8007800), buffer, 0x800, 1); gSaveContext.soundSetting = gSaveContext.zTargetSetting = 0; // SOUND_SETTING_STEREO/Z_TARGET_SETTING_SWITCH - Audio_SetSoundMode(gSaveContext.soundSetting); + Audio_SetSoundOutputMode(gSaveContext.soundSetting); } #endif diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index 2c1e49fb59..999b34efa2 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -1369,7 +1369,7 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) { PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.soundSetting); PRINTF_RST(); - Audio_SetSoundMode(gSaveContext.soundSetting); + Audio_SetSoundOutputMode(gSaveContext.soundSetting); PRINTF("終了\n"); return; }