51 lines
1.6 KiB
C#
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 }
|