@@ -181,6 +199,26 @@
}
+
+
+
+
+
+ Check Loop Interval: @ModuleConfig.Config.Behaviour.CheckLoopIntervalMs ms
+
+
+
+
+
+
+
@code {
[ModuleInject] private UnderscoreConfig UnderscoreConfig { get; set; } = null!;
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/DebugTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/DebugTab.razor
index d0aa970..ef458d4 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/DebugTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/DebugTab.razor
@@ -1,4 +1,4 @@
-@using OpenShock.Desktop.ModuleBase
+@using OpenShock.Desktop.ModuleBase
@using OpenShock.Desktop.ModuleBase.Api
@using OpenShock.ShockOSC.Services
@using OpenShock.ShockOSC.Utils
@@ -7,7 +7,22 @@
@page "/dash/debug"
- Avatar ID: @ShockOsc.AvatarId
+
+
+ @if (ShockOsc.IsGameConnected)
+ {
+ @($"Connected{(ShockOsc.IsConnectedViaOscQuery ? " (OSCQuery)" : " (Manual)")}")
+ }
+ else
+ {
+ @("Not Connected")
+ }
+
+ Avatar ID: @ShockOsc.AvatarId
+
OSC Parameters
@@ -72,21 +87,21 @@
protected override void OnInitialized()
{
_onParamsVhangeSubscription = ShockOsc.OnParamsChangeObservable.Subscribe(OnParamsChange);
+ ShockOsc.OnGameConnectionChanged += OnConnectionChanged;
OsTask.Run(UpdateParams);
}
+ private void OnConnectionChanged() => _updateQueued = true;
+
private async Task UpdateParams()
{
- while (!_cts.IsCancellationRequested)
+ using var timer = new PeriodicTimer(TimeSpan.FromMilliseconds(100));
+ while (await timer.WaitForNextTickAsync(_cts.Token))
{
- if (!_updateQueued)
- continue;
+ if (!_updateQueued) continue;
_updateQueued = false;
-
await InvokeAsync(StateHasChanged);
-
- await Task.Delay(100);
}
}
@@ -96,6 +111,7 @@
public async ValueTask DisposeAsync()
{
+ ShockOsc.OnGameConnectionChanged -= OnConnectionChanged;
_onParamsVhangeSubscription?.Dispose();
await _cts.CancelAsync();
}
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
index a4fa79b..ef251bc 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
@@ -10,6 +10,7 @@
@using ProgramGroup = OpenShock.ShockOSC.Models.ProgramGroup
@page "/dash/groups"
+@implements IDisposable
@code {
@@ -161,7 +162,7 @@
InvokeAsync(StateHasChanged);
}
- private void Dispose()
+ public void Dispose()
{
UnderscoreConfig.OnGroupConfigUpdate -= OnGroupConfigUpdate;
}
@@ -323,8 +324,18 @@
-
+
+
+ Cooldown: @MathF.Round(CurrentGroup.CooldownTime / 1000f, 1).ToString(CultureInfo.InvariantCulture)s
+
+
+
diff --git a/copy-module-dll.cmd b/copy-module-dll.cmd
deleted file mode 100644
index e700ca7..0000000
--- a/copy-module-dll.cmd
+++ /dev/null
@@ -1 +0,0 @@
-copy ShockOsc\bin\Debug\net9.0\OpenShock.ShockOSC.dll %appdata%\OpenShock\Desktop\modules\openshock.shockosc\OpenShock.ShockOSC.dll
\ No newline at end of file