From 4ed670c01b4fd9074bcb5071f135ffbbb1ddab15 Mon Sep 17 00:00:00 2001 From: Vincent Maas Date: Fri, 2 Aug 2024 13:47:03 +0200 Subject: [PATCH] add pages for new UI, fix issues --- ColorControl.UI/Blazor.cs | 8 +- ColorControl.UI/ColorControl.UI.csproj | 45 +- ColorControl.UI/Components/App.razor | 21 +- .../Components/Layout/NavMenu.razor | 58 +- .../Components/Layout/NavMenu.razor.css | 4 + .../Components/Layout/TopMenu.razor | 8 +- .../Components/Pages/AMD/AmdPresetPage.razor | 391 +++ .../Components/Pages/AMD/AmdSettings.razor | 64 + .../Components/Pages/AMD/AmdSummary.razor | 208 ++ .../Components/Pages/Counter.razor | 19 - .../Pages/Game/GamePresetPage.razor | 235 ++ .../Components/Pages/Game/GameSettings.razor | 61 + .../Components/Pages/Game/GameSummary.razor | 160 ++ .../Pages/Generic/ConfirmModal.razor | 36 + .../Components/Pages/Generic/FieldDefs.razor | 125 + .../Pages/Generic/FieldsModal.razor | 127 + .../Components/Pages/Generic/FlagsInput.razor | 53 + .../Pages/Generic/ShortcutInput.razor | 63 + .../Components/Pages/Generic/StepsInput.razor | 402 +++ .../Pages/Generic/TriggerInput.razor | 49 + ColorControl.UI/Components/Pages/Home.razor | 57 +- ColorControl.UI/Components/Pages/Info.razor | 50 + .../Components/Pages/LG/LgDevicePage.razor | 215 ++ .../Pages/LG/LgExecuteActionModal.razor | 117 + .../Components/Pages/LG/LgPresetPage.razor | 184 ++ .../Components/Pages/LG/LgSettings.razor | 34 + .../Components/Pages/LG/LgSummary.razor | 353 +++ .../Components/Pages/Logging.razor | 205 ++ .../Pages/Nvidia/NvidiaDithering.razor | 181 ++ .../Pages/Nvidia/NvidiaDriverSettings.razor | 247 ++ .../Pages/Nvidia/NvidiaPreset.razor | 618 +++++ .../Pages/Nvidia/NvidiaSettings.razor | 76 + .../Pages/Nvidia/NvidiaSummary.razor | 251 ++ .../Components/Pages/Options.razor | 332 ++- .../Pages/Samsung/SamsungDevicePage.razor | 237 ++ .../Pages/Samsung/SamsungPresetPage.razor | 173 ++ .../Pages/Samsung/SamsungServiceMenu.razor | 233 ++ .../Pages/Samsung/SamsungSettings.razor | 34 + .../Pages/Samsung/SamsungSummary.razor | 333 +++ .../Components/Pages/Weather.razor | 64 - .../Extensions/PresetExtensions.cs | 43 + ColorControl.UI/State/AppState.cs | 2 +- ColorControl.UI/appsettings.Development.json | 1 + ColorControl.UI/appsettings.json | 1 + ColorControl.UI/wwwroot/app.css | 4 + ColorControl/ColorControl.csproj | 9 +- ColorControl/CommandLineHandler.cs | 2 +- ColorControl/Forms/OptionsPanel.Designer.cs | 162 +- ColorControl/Forms/OptionsPanel.cs | 34 +- ColorControl/MainForm.cs | 683 +++-- ColorControl/MainWorker.cs | 4 +- ColorControl/Program.cs | 792 +++--- ColorControl/Services/AMD/ADL.cs | 396 --- ColorControl/Services/AMD/ADLWrapper.cs | 402 --- ColorControl/Services/AMD/AmdDisplayInfo.cs | 27 +- ColorControl/Services/AMD/AmdPanel.cs | 1308 +++++----- ColorControl/Services/AMD/AmdPreset.cs | 148 -- ColorControl/Services/AMD/AmdService.cs | 351 ++- .../Services/Common/GraphicsService.cs | 43 + ColorControl/Services/Common/IServiceBase.cs | 7 +- .../Services/Common/LoggingService.cs | 70 + .../Services/Common/NotifyIconManager.cs | 398 +-- .../Services/Common/OptionsService.cs | 224 ++ ColorControl/Services/Common/PresetBase.cs | 232 -- .../Common/QuickAccessForm.Designer.cs | 1 + .../Services/Common/QuickAccessForm.cs | 3 +- ColorControl/Services/Common/ServiceBase.cs | 529 ++-- .../Services/Common/ServiceManager.cs | 80 +- ColorControl/Services/Common/UpdateManager.cs | 10 +- .../Services/GameLauncher/GamePanel.cs | 13 +- .../Services/GameLauncher/GamePreset.cs | 106 - .../Services/GameLauncher/GameService.cs | 64 +- .../GameLauncher/GameServiceConfig.cs | 11 - ColorControl/Services/LG/LgDevice.cs | 77 +- ColorControl/Services/LG/LgGameBar.cs | 579 ++--- ColorControl/Services/LG/LgPanel.cs | 2280 ++++++++--------- ColorControl/Services/LG/LgPreset.cs | 118 - ColorControl/Services/LG/LgService.cs | 240 +- ColorControl/Services/LG/LgServiceConfig.cs | 78 +- ColorControl/Services/LG/RemoteControlForm.cs | 385 +-- .../Services/LG/RemoteControlPanel.cs | 283 +- .../Services/NVIDIA/ColorDataConverter.cs | 3 +- ColorControl/Services/NVIDIA/NvDitherPanel.cs | 1 + ColorControl/Services/NVIDIA/NvGpuInfo.cs | 2 +- ColorControl/Services/NVIDIA/NvPanel.cs | 27 +- ColorControl/Services/NVIDIA/NvService.cs | 304 +-- .../Services/NVIDIA/NvServiceConfig.cs | 12 - .../Services/Samsung/ISamsungService.cs | 27 +- .../Services/Samsung/SamsungButtons.cs | 50 - .../Services/Samsung/SamsungDevice.cs | 1605 ++++++------ ColorControl/Services/Samsung/SamsungPanel.cs | 1976 +++++++------- .../Services/Samsung/SamsungPreset.cs | 109 - .../Services/Samsung/SamsungService.cs | 190 +- .../Services/Samsung/SamsungServiceConfig.cs | 17 +- .../Svc/ColorControlBackgroundService.cs | 2 +- ColorControl/XForms/BrowserWindow.xaml | 21 + ColorControl/XForms/BrowserWindow.xaml.cs | 87 + ColorControl/XForms/LogWindow.xaml | 65 + ColorControl/XForms/LogWindow.xaml.cs | 25 +- ColorControl/lgtv/LgTvApi.cs | 1508 +++++------ ColorControl/lgtv/LgWebOsMouseService.cs | 134 +- ColorControl/lgtv/MessageType.cs | 4 - MHC2Gen/IccContext.cs | 16 +- Nspector/Common/DrsSettingsService.cs | 1344 +++++----- Nspector/Common/Meta/SettingMeta.cs | 9 +- Nspector/nspector/CustomSettingNames.xml | 107 +- Nspector/nspector/Reference.xml | 37 - NvAPIWrapper/Display/ColorData.cs | 368 +-- Shared/Common/GlobalContext.cs | 88 +- Shared/Common/InfoDto.cs | 11 + Shared/Common/PipeUtils.cs | 204 +- Shared/Common/StreamString.cs | 33 + Shared/Contracts/AMD/ADL.cs | 393 +++ Shared/Contracts/AMD/ADLWrapper.cs | 397 +++ Shared/Contracts/AMD/AmdPreset.cs | 175 ++ Shared/Contracts/AMD/AmdServiceConfig.cs | 17 + Shared/Contracts/Config.cs | 28 +- Shared/Contracts/Delegates.cs | 3 + Shared/Contracts/FieldDefinition.cs | 112 + Shared/Contracts/Game/GamePreset.cs | 138 + Shared/Contracts/Game/GameServiceConfig.cs | 18 + Shared/Contracts/InvokableActionDto.cs | 19 + Shared/Contracts/LG/LgDeviceDto.cs | 32 + Shared/Contracts/LG/LgDeviceOptions.cs | 23 + Shared/Contracts/LG/LgEnums.cs | 389 +++ Shared/Contracts/LG/LgFields.cs | 105 + Shared/Contracts/LG/LgPreset.cs | 119 + Shared/Contracts/LG/LgServiceConfigDto.cs | 20 + Shared/Contracts/Module.cs | 11 +- Shared/Contracts/ModuleDto.cs | 9 + Shared/Contracts/NVIDIA/NovideoSettings.cs | 24 + .../NVIDIA/NvColorEnhancementSettings.cs | 34 +- Shared/Contracts/NVIDIA/NvEnums.cs | 45 + .../NVIDIA/NvHdmiInfoFrameSettings.cs | 9 + Shared/Contracts/NVIDIA/NvHdrSettings.cs | 31 +- .../Contracts}/NVIDIA/NvPreset.cs | 189 +- Shared/Contracts/NVIDIA/NvServiceConfig.cs | 21 + Shared/Contracts/NVIDIA/NvSettingConstants.cs | 30 + Shared/Contracts/NVIDIA/NvSettingItemDto.cs | 67 + Shared/Contracts/PresetStep.cs | 90 + Shared/Contracts/Presets/PresetBase.cs | 271 ++ Shared/Contracts/Samsung/SamsungButtons.cs | 50 + Shared/Contracts/Samsung/SamsungDeviceDto.cs | 32 + .../Contracts/Samsung/SamsungDeviceOptions.cs | 23 + Shared/Contracts/Samsung/SamsungEnums.cs | 13 + Shared/Contracts/Samsung/SamsungFields.cs | 85 + Shared/Contracts/Samsung/SamsungPreset.cs | 112 + Shared/Contracts/Samsung/SamsungPresets.cs | 23 + .../Samsung/SamsungServiceConfigDto.cs | 33 + Shared/Contracts/VirtualResolution.cs | 25 +- Shared/EventDispatcher/EventDispatcher.cs | 5 +- .../KeyboardShortcutDispatcher.cs | 65 +- Shared/Forms/MessageForms.cs | 68 +- Shared/Forms/MessageForms.resx | 120 + Shared/Services/OptionsService.cs | 27 - Shared/Services/RpcClientService.cs | 4 +- Shared/Services/RpcServerService.cs | 83 +- Shared/Services/RpcUiClientService.cs | 57 + novideo_srgb/MainWindow.xaml.cs | 20 + 159 files changed, 18672 insertions(+), 9709 deletions(-) create mode 100644 ColorControl.UI/Components/Pages/AMD/AmdPresetPage.razor create mode 100644 ColorControl.UI/Components/Pages/AMD/AmdSettings.razor create mode 100644 ColorControl.UI/Components/Pages/AMD/AmdSummary.razor delete mode 100644 ColorControl.UI/Components/Pages/Counter.razor create mode 100644 ColorControl.UI/Components/Pages/Game/GamePresetPage.razor create mode 100644 ColorControl.UI/Components/Pages/Game/GameSettings.razor create mode 100644 ColorControl.UI/Components/Pages/Game/GameSummary.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/ConfirmModal.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/FieldDefs.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/FieldsModal.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/FlagsInput.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/ShortcutInput.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/StepsInput.razor create mode 100644 ColorControl.UI/Components/Pages/Generic/TriggerInput.razor create mode 100644 ColorControl.UI/Components/Pages/Info.razor create mode 100644 ColorControl.UI/Components/Pages/LG/LgDevicePage.razor create mode 100644 ColorControl.UI/Components/Pages/LG/LgExecuteActionModal.razor create mode 100644 ColorControl.UI/Components/Pages/LG/LgPresetPage.razor create mode 100644 ColorControl.UI/Components/Pages/LG/LgSettings.razor create mode 100644 ColorControl.UI/Components/Pages/LG/LgSummary.razor create mode 100644 ColorControl.UI/Components/Pages/Logging.razor create mode 100644 ColorControl.UI/Components/Pages/Nvidia/NvidiaDithering.razor create mode 100644 ColorControl.UI/Components/Pages/Nvidia/NvidiaDriverSettings.razor create mode 100644 ColorControl.UI/Components/Pages/Nvidia/NvidiaPreset.razor create mode 100644 ColorControl.UI/Components/Pages/Nvidia/NvidiaSettings.razor create mode 100644 ColorControl.UI/Components/Pages/Nvidia/NvidiaSummary.razor create mode 100644 ColorControl.UI/Components/Pages/Samsung/SamsungDevicePage.razor create mode 100644 ColorControl.UI/Components/Pages/Samsung/SamsungPresetPage.razor create mode 100644 ColorControl.UI/Components/Pages/Samsung/SamsungServiceMenu.razor create mode 100644 ColorControl.UI/Components/Pages/Samsung/SamsungSettings.razor create mode 100644 ColorControl.UI/Components/Pages/Samsung/SamsungSummary.razor delete mode 100644 ColorControl.UI/Components/Pages/Weather.razor create mode 100644 ColorControl.UI/Extensions/PresetExtensions.cs delete mode 100644 ColorControl/Services/AMD/ADL.cs delete mode 100644 ColorControl/Services/AMD/ADLWrapper.cs delete mode 100644 ColorControl/Services/AMD/AmdPreset.cs create mode 100644 ColorControl/Services/Common/LoggingService.cs create mode 100644 ColorControl/Services/Common/OptionsService.cs delete mode 100644 ColorControl/Services/Common/PresetBase.cs delete mode 100644 ColorControl/Services/GameLauncher/GamePreset.cs delete mode 100644 ColorControl/Services/GameLauncher/GameServiceConfig.cs delete mode 100644 ColorControl/Services/LG/LgPreset.cs delete mode 100644 ColorControl/Services/NVIDIA/NvServiceConfig.cs delete mode 100644 ColorControl/Services/Samsung/SamsungButtons.cs delete mode 100644 ColorControl/Services/Samsung/SamsungPreset.cs create mode 100644 ColorControl/XForms/BrowserWindow.xaml create mode 100644 ColorControl/XForms/BrowserWindow.xaml.cs delete mode 100644 ColorControl/lgtv/MessageType.cs create mode 100644 Shared/Common/InfoDto.cs create mode 100644 Shared/Contracts/AMD/ADL.cs create mode 100644 Shared/Contracts/AMD/ADLWrapper.cs create mode 100644 Shared/Contracts/AMD/AmdPreset.cs create mode 100644 Shared/Contracts/AMD/AmdServiceConfig.cs create mode 100644 Shared/Contracts/Delegates.cs create mode 100644 Shared/Contracts/FieldDefinition.cs create mode 100644 Shared/Contracts/Game/GamePreset.cs create mode 100644 Shared/Contracts/Game/GameServiceConfig.cs create mode 100644 Shared/Contracts/InvokableActionDto.cs create mode 100644 Shared/Contracts/LG/LgDeviceDto.cs create mode 100644 Shared/Contracts/LG/LgDeviceOptions.cs create mode 100644 Shared/Contracts/LG/LgEnums.cs create mode 100644 Shared/Contracts/LG/LgFields.cs create mode 100644 Shared/Contracts/LG/LgPreset.cs create mode 100644 Shared/Contracts/LG/LgServiceConfigDto.cs create mode 100644 Shared/Contracts/ModuleDto.cs create mode 100644 Shared/Contracts/NVIDIA/NovideoSettings.cs create mode 100644 Shared/Contracts/NVIDIA/NvEnums.cs rename {ColorControl/Services => Shared/Contracts}/NVIDIA/NvPreset.cs (71%) create mode 100644 Shared/Contracts/NVIDIA/NvServiceConfig.cs create mode 100644 Shared/Contracts/NVIDIA/NvSettingConstants.cs create mode 100644 Shared/Contracts/NVIDIA/NvSettingItemDto.cs create mode 100644 Shared/Contracts/PresetStep.cs create mode 100644 Shared/Contracts/Presets/PresetBase.cs create mode 100644 Shared/Contracts/Samsung/SamsungButtons.cs create mode 100644 Shared/Contracts/Samsung/SamsungDeviceDto.cs create mode 100644 Shared/Contracts/Samsung/SamsungDeviceOptions.cs create mode 100644 Shared/Contracts/Samsung/SamsungEnums.cs create mode 100644 Shared/Contracts/Samsung/SamsungFields.cs create mode 100644 Shared/Contracts/Samsung/SamsungPreset.cs create mode 100644 Shared/Contracts/Samsung/SamsungPresets.cs create mode 100644 Shared/Contracts/Samsung/SamsungServiceConfigDto.cs create mode 100644 Shared/Forms/MessageForms.resx delete mode 100644 Shared/Services/OptionsService.cs create mode 100644 Shared/Services/RpcUiClientService.cs diff --git a/ColorControl.UI/Blazor.cs b/ColorControl.UI/Blazor.cs index deca49b..582849a 100644 --- a/ColorControl.UI/Blazor.cs +++ b/ColorControl.UI/Blazor.cs @@ -1,10 +1,11 @@ +using ColorControl.Shared.Contracts; using ColorControl.Shared.Services; namespace ColorControl.UI; public static class Blazor { - public static void Start() + public static void Start(Config? config = null) { var builder = WebApplication.CreateBuilder(); @@ -12,8 +13,9 @@ public static class Blazor builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); + builder.Services.AddSingleton(new AppState { SelectedTheme = (config?.UseDarkMode ?? true) ? "dark" : "light" }); + builder.Services.AddTransient(); + builder.WebHost.ConfigureKestrel(o => o.ListenAnyIP(config?.UiPort > 0 ? config.UiPort : 5000)); var app = builder.Build(); diff --git a/ColorControl.UI/ColorControl.UI.csproj b/ColorControl.UI/ColorControl.UI.csproj index 8374a7f..d9c99b4 100644 --- a/ColorControl.UI/ColorControl.UI.csproj +++ b/ColorControl.UI/ColorControl.UI.csproj @@ -1,4 +1,4 @@ - + net8.0-windows10.0.20348.0 @@ -7,8 +7,51 @@ Library + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + diff --git a/ColorControl.UI/Components/App.razor b/ColorControl.UI/Components/App.razor index 1f31ed6..86bbe4f 100644 --- a/ColorControl.UI/Components/App.razor +++ b/ColorControl.UI/Components/App.razor @@ -1,4 +1,8 @@ -@inject AppState AppState +@using ColorControl.Shared.Contracts +@using ColorControl.Shared.Services +@inject AppState AppState +@inject RpcUiClientService ClientService; +@inject NavigationManager _navigationManager; @implements IDisposable @attribute [StreamRendering] @@ -9,7 +13,8 @@ - + + @@ -23,8 +28,18 @@ @code { - protected override void OnInitialized() + protected override async Task OnInitializedAsync() { + var config = await ClientService.CallAsync("OptionsService", "GetConfig"); + + var newTheme = config.UseDarkMode ? "dark" : "light"; + + if (newTheme != AppState.SelectedTheme) + { + AppState.SelectedTheme = config.UseDarkMode ? "dark" : "light"; + _navigationManager.Refresh(); + } + AppState.OnChange += StateHasChanged; } diff --git a/ColorControl.UI/Components/Layout/NavMenu.razor b/ColorControl.UI/Components/Layout/NavMenu.razor index e450155..514ac68 100644 --- a/ColorControl.UI/Components/Layout/NavMenu.razor +++ b/ColorControl.UI/Components/Layout/NavMenu.razor @@ -1,4 +1,13 @@ -