Editor: rework to the original Win32 RIO control-panel layout
Reworked the profile/mapping editor to mirror the original unfinished Win32 RIO driver's control-panel design (docs/Win32RIO, by FASA / Michel Lowrance) instead of the flat config-sheet grid. The wallpaper region positions are a VGA chroma-split display artifact, not the cockpit's logical shape. - RioJoy.Core.Editing.CockpitPanel: the functional layout — five MFD clusters, four board columns (Throttle/Secondary/Screen/Joystick-Hat), an encoder-gauge strip, and the two later-added 4x4 keypads (Internal/External). Places every address 0x00-0x47 / 0x50-0x6F exactly once (unit-tested). - Tray PanelView/PanelCanvas render the panel; ProfileEditorForm drives it. Buttons show label + assigned function (ButtonBinding.Describe -> CTL-N, JOY1, POV-U, Mse LB, RIO command names; unit-tested). Lamp shade is driven by the IsLit flag (not by whether a function is assigned); keypads are neutral blue with no Lit checkbox. Added an Unassign button next to Apply. - Removed the superseded sheet-grid UI (SheetView/SheetCanvas); SheetLayout + config-sheet.csv stay as reference data. docs/Win32RIO: the original driver (tasgame.sys, a 32-bit kernel HID minidriver that opened the serial port, set baud/8N1/DTR, and spoke the *identical* RIO protocol -- AnalogRequest/Reply, Button Pressed/Released, Check/Lamp/Reset/ Version -- validating our protocol port), oemsetup.inf, RemoteDriver.doc, and the extracted control-panel / game-controllers mockups. ~236 xUnit tests green. PLAN.md updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -0,0 +1,133 @@
|
||||
; Copyright (c) 1997-1999 Microsoft Corporation
|
||||
;
|
||||
[Version]
|
||||
|
||||
Signature="$CHICAGO$"
|
||||
Class=HIDClass
|
||||
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
|
||||
;
|
||||
Provider=%VENDOR%
|
||||
LayoutFile=layout.inf
|
||||
DriverVer=04/14/2002,5.00.2000.24
|
||||
|
||||
;
|
||||
; Layout.inf (etc.) list all files shipped with the operating system so the
|
||||
; source description sections are only needed if other files are needed.
|
||||
;
|
||||
; In order to use IHV drivers, the SourceDisksNames section must list the
|
||||
; disk(s) containing the drivers and the SourceDisksFiles section must list
|
||||
; which disk number each file to be copied is found on.
|
||||
; Disk number 99 is used to avoid a conflict with the disk numbers defined
|
||||
; in layout.inf
|
||||
;
|
||||
; tasgame.Sys is the name of the standard analog game device driver so
|
||||
; another name must be used for an IHV driver. NT will not load a driver
|
||||
; compiled as tasgame.Sys and renamed as another so it must be compiled
|
||||
; under it's final name.
|
||||
;
|
||||
; Files used in a driver installation need to be digitally signed otherwise
|
||||
; installation may fail. See documentation elsewhere in the DDK regarding
|
||||
; driver signing.
|
||||
;
|
||||
; [SourceDisksNames]
|
||||
; 99=%DiskId%,,
|
||||
;
|
||||
; [SourceDisksFiles]
|
||||
; tasgame.sys = 99
|
||||
|
||||
[DefaultInstall]
|
||||
CopyFiles=CopyFilesSYS
|
||||
AddReg=Joystick.AddReg
|
||||
|
||||
[DestinationDirs]
|
||||
CopyFilesSYS = 10,system32\drivers ;%SystemRoot%\system32\drivers
|
||||
DefaultDestDir = 10,system32\drivers
|
||||
CopyFilesDLL = 11 ;%SystemRoot%\system or system32 - 98 or Win2000
|
||||
|
||||
[ControlFlags]
|
||||
ExcludeFromSelect = GamePort\Joystick
|
||||
|
||||
; Notes
|
||||
;
|
||||
; In order that the game controllers control panel can display the device
|
||||
; name registry keys describing the device must be set up. In this sample
|
||||
; these values are setup up in the Joystick.AddReg and Gamepad.AddReg
|
||||
; sections. Clearly these values must be set up before the CPL can cause
|
||||
; the PnP ID to be exposed.
|
||||
;
|
||||
; If no PnP ID match is found when a gameport device is exposed, the default
|
||||
; driver will be matched. This allows most analog joysticks to be supported
|
||||
; without an additional driver. Unfortunately, this means that a device
|
||||
; which requires a driver must have its PnP ID matched or the default driver
|
||||
; will be loaded. To avoid the user having to change the driver the INF
|
||||
; containing the match may be copied into the INF directory in advance.
|
||||
;
|
||||
; To satisfy the two goals above, some form of preliminary setup is required.
|
||||
; This could be a program, a batch file that runs an INF section or an INF
|
||||
; with SetupClass=BASE and a DefaultInstall section.
|
||||
;
|
||||
|
||||
[Manufacturer]
|
||||
%VENDOR%=Vendor
|
||||
|
||||
[Vendor]
|
||||
;
|
||||
; For each device the following must be defined:
|
||||
; Device name - name seen in the Add New Hardware selection dialog
|
||||
; Install section - section in this INF to be run to install the device
|
||||
; PnP ID - ID which is matched by PnP when the device is detected
|
||||
; This should not contain spaces and for Win98 compatibility
|
||||
; should use the form GamePort\VID_9999&PID_9999.
|
||||
; A PnP ID must be used or this device will be detected as
|
||||
; always present and so loaded during boot even if the
|
||||
; StartType of the service is SERVICE_DEMAND_START.
|
||||
;
|
||||
;Device Name Install Section PnP ID
|
||||
;
|
||||
%Joystick%= Joystick.Inst, GamePort\VID_7777&PID_0001
|
||||
|
||||
|
||||
[Joystick.Inst]
|
||||
CopyFiles = CopyFilesSYS, CopyFilesDLL
|
||||
AddReg = Joystick.AddReg, AddReg.Vendor_Driver
|
||||
|
||||
[Joystick.Inst.NT]
|
||||
CopyFiles = CopyFilesSYS, CopyFilesDLL
|
||||
AddReg = Joystick.AddReg
|
||||
|
||||
[Joystick.AddReg]
|
||||
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMName,,%Joystick%
|
||||
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMData,1, 07, 00, 08, 00, 0A, 00, 00, 00
|
||||
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMHardwareID,,"GamePort\VID_7777&PID_0001"
|
||||
|
||||
[Joystick.Inst.NT.Services]
|
||||
AddService = VendorJoystickEnabler,%SPSVCINST_ASSOCSERVICE%,Vendor_Service_Inst
|
||||
|
||||
|
||||
[CopyFilesSYS]
|
||||
tasgame.sys
|
||||
|
||||
[CopyFilesDLL]
|
||||
|
||||
[AddReg.Vendor_Driver]
|
||||
HKR,,DevLoader,,*ntkern
|
||||
HKR,,NTMPDriver,,"tasgame.sys"
|
||||
|
||||
[Vendor_Service_Inst]
|
||||
DisplayName = %SvcDesc%
|
||||
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType = 3 ; SERVICE_DEMAND_START
|
||||
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
|
||||
ServiceBinary = %10%\system32\drivers\tasgame.sys
|
||||
LoadOrderGroup = Extended Base
|
||||
|
||||
[Strings]
|
||||
; non localized strings
|
||||
SPSVCINST_ASSOCSERVICE= 0x00000002
|
||||
KEY_OEM="SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM"
|
||||
|
||||
;localized strings
|
||||
VENDOR = "Thomas Steinke"
|
||||
SvcDesc = "VWE Pod"
|
||||
Joystick = "VWE Pod"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user