| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using LibHac.FsSystem;
- using Ryujinx.Audio.Integration;
- using Ryujinx.Common.Configuration;
- using Ryujinx.Graphics.GAL;
- using Ryujinx.HLE.FileSystem;
- using Ryujinx.HLE.FileSystem.Content;
- using Ryujinx.HLE.HOS;
- using Ryujinx.HLE.HOS.Services.Account.Acc;
- using Ryujinx.HLE.HOS.SystemState;
- using Ryujinx.HLE.Ui;
- using System;
- namespace Ryujinx.HLE
- {
- /// <summary>
- /// HLE configuration.
- /// </summary>
- public class HLEConfiguration
- {
- /// <summary>
- /// The virtual file system used by the FS service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly VirtualFileSystem VirtualFileSystem;
- /// <summary>
- /// The manager for handling a LibHac Horizon instance.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly LibHacHorizonManager LibHacHorizonManager;
- /// <summary>
- /// The account manager used by the account service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly AccountManager AccountManager;
- /// <summary>
- /// The content manager used by the NCM service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly ContentManager ContentManager;
- /// <summary>
- /// The persistent information between run for multi-application capabilities.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- public readonly UserChannelPersistence UserChannelPersistence;
- /// <summary>
- /// The GPU renderer to use for all GPU operations.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly IRenderer GpuRenderer;
- /// <summary>
- /// The audio device driver to use for all audio operations.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly IHardwareDeviceDriver AudioDeviceDriver;
- /// <summary>
- /// The handler for various UI related operations needed outside of HLE.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly IHostUiHandler HostUiHandler;
- /// <summary>
- /// Control the memory configuration used by the emulation context.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly MemoryConfiguration MemoryConfiguration;
- /// <summary>
- /// The system language to use in the settings service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly SystemLanguage SystemLanguage;
- /// <summary>
- /// The system region to use in the settings service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly RegionCode Region;
- /// <summary>
- /// Control the initial state of the vertical sync in the SurfaceFlinger service.
- /// </summary>
- internal readonly bool EnableVsync;
- /// <summary>
- /// Control the initial state of the docked mode.
- /// </summary>
- internal readonly bool EnableDockedMode;
- /// <summary>
- /// Control if the Profiled Translation Cache (PTC) should be used.
- /// </summary>
- internal readonly bool EnablePtc;
- /// <summary>
- /// Control LibHac's integrity check level.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly IntegrityCheckLevel FsIntegrityCheckLevel;
- /// <summary>
- /// Control LibHac's global access logging level. Value must be between 0 and 3.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly int FsGlobalAccessLogMode;
- /// <summary>
- /// The system time offset to apply to the time service steady and local clocks.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly long SystemTimeOffset;
- /// <summary>
- /// The system timezone used by the time service.
- /// </summary>
- /// <remarks>This cannot be changed after <see cref="Switch"/> instantiation.</remarks>
- internal readonly string TimeZone;
- /// <summary>
- /// </summary>
- public MemoryManagerMode MemoryManagerMode { internal get; set; }
- /// <summary>
- /// Control the initial state of the ignore missing services setting.
- /// If this is set to true, when a missing service is encountered, it will try to automatically handle it instead of throwing an exception.
- /// </summary>
- /// TODO: Update this again.
- public bool IgnoreMissingServices { internal get; set; }
- /// <summary>
- /// Aspect Ratio applied to the renderer window by the SurfaceFlinger service.
- /// </summary>
- public AspectRatio AspectRatio { get; set; }
- /// <summary>
- /// The audio volume level.
- /// </summary>
- public float AudioVolume { get; set; }
- /// <summary>
- /// An action called when HLE force a refresh of output after docked mode changed.
- /// </summary>
- public Action RefreshInputConfig { internal get; set; }
- public HLEConfiguration(VirtualFileSystem virtualFileSystem,
- LibHacHorizonManager libHacHorizonManager,
- ContentManager contentManager,
- AccountManager accountManager,
- UserChannelPersistence userChannelPersistence,
- IRenderer gpuRenderer,
- IHardwareDeviceDriver audioDeviceDriver,
- MemoryConfiguration memoryConfiguration,
- IHostUiHandler hostUiHandler,
- SystemLanguage systemLanguage,
- RegionCode region,
- bool enableVsync,
- bool enableDockedMode,
- bool enablePtc,
- IntegrityCheckLevel fsIntegrityCheckLevel,
- int fsGlobalAccessLogMode,
- long systemTimeOffset,
- string timeZone,
- MemoryManagerMode memoryManagerMode,
- bool ignoreMissingServices,
- AspectRatio aspectRatio,
- float audioVolume)
- {
- VirtualFileSystem = virtualFileSystem;
- LibHacHorizonManager = libHacHorizonManager;
- AccountManager = accountManager;
- ContentManager = contentManager;
- UserChannelPersistence = userChannelPersistence;
- GpuRenderer = gpuRenderer;
- AudioDeviceDriver = audioDeviceDriver;
- MemoryConfiguration = memoryConfiguration;
- HostUiHandler = hostUiHandler;
- SystemLanguage = systemLanguage;
- Region = region;
- EnableVsync = enableVsync;
- EnableDockedMode = enableDockedMode;
- EnablePtc = enablePtc;
- FsIntegrityCheckLevel = fsIntegrityCheckLevel;
- FsGlobalAccessLogMode = fsGlobalAccessLogMode;
- SystemTimeOffset = systemTimeOffset;
- TimeZone = timeZone;
- MemoryManagerMode = memoryManagerMode;
- IgnoreMissingServices = ignoreMissingServices;
- AspectRatio = aspectRatio;
- AudioVolume = audioVolume;
- }
- }
- }
|