Files
2026-07-13 13:13:17 +08:00

51 lines
1.6 KiB
C#

using System;
namespace T3.Core.IO;
/// <summary>
/// Global application settings shared across Core, Editor and Player.
/// Saved to projectSettings.json in the settings directory.
/// </summary>
public sealed class CoreSettings : Settings<CoreSettings.ConfigData>
{
public CoreSettings(bool saveOnQuit) : base("projectSettings.json", saveOnQuit)
{
}
public sealed class ConfigData
{
public bool LogAssemblyVersionMismatches = false;
public string LimitMidiDeviceCapture = null;
// Logging
public bool LogCompilationDetails = false;
public bool LogAssemblyLoadingDetails = false;
public bool LogFileEvents = false;
// Audio
public bool AppMute = false;
public float AppVolume = 1;
/// <summary>
/// Machine-specific WASAPI input device used when a project leaves its AudioInputDeviceName
/// empty ("use default input"). Kept out of the project file so shared projects stay portable.
/// </summary>
public string LocalAudioInputDeviceName = string.Empty;
// IO
public int DefaultOscPort = 8000;
// Performance
public bool TimeClipSuspending = true;
public bool SkipOptimization;
public bool EnableDirectXDebug;
public bool EnableBeatSyncProfiling = false;
}
}
[Serializable]
public record ExportSettings(Guid OperatorId, string ApplicationTitle, WindowMode WindowMode, CoreSettings.ConfigData ConfigData, string Author, Guid BuildId, string EditorVersion);
public enum WindowMode { Windowed, Fullscreen }