internal static void Bind(CConfigIni configIni, SoundGroupLevelController soundGroupLevelController) { soundGroupLevelController.SetLevel(ESoundGroup.SoundEffect, configIni.SoundEffectLevel); soundGroupLevelController.SetLevel(ESoundGroup.Voice, configIni.VoiceLevel); soundGroupLevelController.SetLevel(ESoundGroup.SongPreview, configIni.SongPreviewLevel); soundGroupLevelController.SetLevel(ESoundGroup.SongPlayback, configIni.SongPlaybackLevel); soundGroupLevelController.SetKeyboardSoundLevelIncrement(configIni.KeyboardSoundLevelIncrement); configIni.PropertyChanged += (sender, args) => { switch (args.PropertyName) { case nameof(CConfigIni.SoundEffectLevel): soundGroupLevelController.SetLevel(ESoundGroup.SoundEffect, configIni.SoundEffectLevel); break; case nameof(CConfigIni.VoiceLevel): soundGroupLevelController.SetLevel(ESoundGroup.Voice, configIni.VoiceLevel); break; case nameof(CConfigIni.SongPreviewLevel): soundGroupLevelController.SetLevel(ESoundGroup.SongPreview, configIni.SongPreviewLevel); break; case nameof(CConfigIni.SongPlaybackLevel): soundGroupLevelController.SetLevel(ESoundGroup.SongPlayback, configIni.SongPlaybackLevel); break; case nameof(CConfigIni.KeyboardSoundLevelIncrement): soundGroupLevelController.SetKeyboardSoundLevelIncrement(configIni.KeyboardSoundLevelIncrement); break; } }; soundGroupLevelController.LevelChanged += (sender, args) => { switch (args.SoundGroup) { case ESoundGroup.SoundEffect: configIni.SoundEffectLevel = args.Level; break; case ESoundGroup.Voice: configIni.VoiceLevel = args.Level; break; case ESoundGroup.SongPreview: configIni.SongPreviewLevel = args.Level; break; case ESoundGroup.SongPlayback: configIni.SongPlaybackLevel = args.Level; break; default: throw new ArgumentOutOfRangeException(); } }; }
internal static void Handle( IInputDevice keyboard, SoundGroupLevelController soundGroupLevelController, CSkin skin, bool isSongPreview) { var isAdjustmentPositive = keyboard.bIsKeyPressed((int)SlimDXKeys.Key.RightBracket); if (!(isAdjustmentPositive || keyboard.bIsKeyPressed((int)SlimDXKeys.Key.LeftBracket))) { return; } ESoundGroup soundGroup; CSkin.Cシステムサウンド システムサウンド = null; if (keyboard.bIsKeyDown((int)SlimDXKeys.Key.LeftControl) || keyboard.bIsKeyDown((int)SlimDXKeys.Key.RightControl)) { soundGroup = ESoundGroup.SoundEffect; システムサウンド = skin.sound決定音; } else if (keyboard.bIsKeyDown((int)SlimDXKeys.Key.LeftShift) || keyboard.bIsKeyDown((int)SlimDXKeys.Key.RightShift)) { soundGroup = ESoundGroup.Voice; システムサウンド = skin.soundゲーム開始音; } else if (isSongPreview) { soundGroup = ESoundGroup.SongPreview; } else { soundGroup = ESoundGroup.SongPlayback; } soundGroupLevelController.AdjustLevel(soundGroup, isAdjustmentPositive); システムサウンド?.t再生する(); }