Add RIOJoy to the product catalog
RIOJoy (the cockpit RIO → virtual-gamepad feeder; separate net48 repo) is now an installable/launchable product in Console/RedPlanet/Apps.xml. Its dist zip is already TeslaConsole-shaped (postinstall.bat + RIOJoy\ → extracts to C:\Games, the launcher runs postinstall.bat as SYSTEM to install ViGEmBus + register auto-start), so this is the only change needed on the TeslaSuite side. - Launch entry exe C:\Games\RIOJoy\app\RioJoy.Tray.exe, autoRestart=false (the postinstall HKLM Run entry owns startup; the catalog entry is for registration + manual restart from the console). - CatalogTests: bumped the count guard to 4 products / 6 entries and added a byte-exact LaunchData check for the RIOJoy entry. 74 tests green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -76,4 +76,23 @@
|
||||
autoRestart="true"
|
||||
hostType="None" />
|
||||
</Product>
|
||||
|
||||
<!-- RIOJoy — virtual-gamepad feeder for the cockpit RIO board (separate repo,
|
||||
net48 framework-dependent). Its dist\RIOJoy-<ver>.zip is purpose-built for
|
||||
Install Product: extracts to C:\Games (giving postinstall.bat + RIOJoy\),
|
||||
and the launcher runs postinstall.bat as SYSTEM — it installs ViGEmBus and
|
||||
registers RIOJoy to auto-start at logon (HKLM ...\Run). The launch entry
|
||||
below registers it in the pod app list and lets the operator (re)start it on
|
||||
demand; autoRestart is false because the auto-start Run entry owns startup. -->
|
||||
<Product id="87FBC2E6-6359-4EF4-96A5-DF157823CFF6"
|
||||
name="RIOJoy"
|
||||
menuText="RIOJoy..."
|
||||
hostTypeDialog="false">
|
||||
<Launch key="FE83E212-45DF-48F9-848E-0B3CEE0692A3"
|
||||
displayName="RIOJoy"
|
||||
exe="C:\Games\RIOJoy\app\RioJoy.Tray.exe"
|
||||
args=""
|
||||
autoRestart="false"
|
||||
hostType="None" />
|
||||
</Product>
|
||||
</AppCatalog>
|
||||
|
||||
@@ -25,10 +25,16 @@ namespace TeslaConsole.DiffTests
|
||||
=> _fx.Recovered.Run("CatalogEntry", new[] { _catalog, launchKey, w, h });
|
||||
|
||||
[Fact]
|
||||
public void Catalog_Has_Three_Products_And_Five_Entries()
|
||||
=> Assert.Equal("products=3;entries=5",
|
||||
public void Catalog_Has_Four_Products_And_Six_Entries()
|
||||
=> Assert.Equal("products=4;entries=6",
|
||||
_fx.Recovered.Run("CatalogSummary", new[] { _catalog }));
|
||||
|
||||
[Fact]
|
||||
public void RioJoy_Matches_Expected()
|
||||
=> Assert.Equal(
|
||||
@"RIOJoy|fe83e212-45df-48f9-848e-0b3cee0692a3|C:\Games\RIOJoy\app\RioJoy.Tray.exe||C:\Games\RIOJoy\app|False",
|
||||
Entry("FE83E212-45DF-48F9-848E-0B3CEE0692A3"));
|
||||
|
||||
// Each expected string is "DisplayName|LaunchKey|Exe|Args|WorkingDirectory|AutoRestart"
|
||||
// and matches exactly what the old hardcoded PodInfo_InstallProductCompleted emitted.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user