Conversation
kosekmi
left a comment
There was a problem hiding this comment.
Additional testing on MacOS and Linux (Raspberry Pi OS) concluded, ready for merge
|
Thanks @kosekmi for your help testing this! I don't plan on making any more changes to this branch, but I want to sit on it until Sep 5 to make sure no more "one more thing" pops into my mind. |
…are not contiguous or not starting from 0
|
Ok, I did end up with a couple more "one more things"...
I'll wait at least another 12 hours before I click merge. |
There was a problem hiding this comment.
Pull Request Overview
This pull request implements a major refactor to add WebUSB support, configurable settings, and player auto-detection while consolidating multiple player variants into a single build. The changes enable runtime configuration through a web interface and provide device detection capabilities.
- Adds WebUSB interface for device configuration and control through a web page
- Implements configurable settings system with persistent storage in flash memory
- Replaces fixed player count builds with runtime-configurable auto-detection system
Reviewed Changes
Copilot reviewed 109 out of 110 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/main/Host/host_setup.hpp/cpp | New setup functions for configuring Dreamcast nodes and parsers |
| src/main/Host/host_main.cpp | New main host implementation with auto-detection and settings support |
| src/main/Host/host.cpp | Removed old host implementation |
| src/main/Host/CMakeLists.txt | Updated to build single host binary instead of multiple variants |
| src/main/Client/client_usb_host_main.cpp | Fixed static cast warning |
| src/hostLib/webusb_parsers/* | New WebUSB command handlers for settings, maple bus, and flycast communication |
| src/hostLib/tty_parsers/* | Refactored TTY parsers with updated interfaces and node data structures |
| src/hostLib/test/* | Updated test files to match new interfaces and data structures |
| src/hostLib/peripherals/* | Updated peripheral classes to use shared pointer interfaces |
| src/hostLib/* | Core library updates for new transmission system and data structures |
| src/hal/Usb/Client/* | WebUSB implementation and USB descriptor updates |
| src/hal/System/* | New settings system and identification updates |
| src/hal/MapleBus/* | Enhanced maple bus with configurable byte order support |
Comments suppressed due to low confidence (2)
src/hostLib/webusb_parsers/SettingsWebUsbCommandHandler.cpp:1
- The variable type has been changed from uint32_t to uint8_t which could cause integer overflow if the calculation exceeds 255. Consider using appropriate integer types for the calculations.
// MIT License
src/hostLib/webusb_parsers/SettingsWebUsbCommandHandler.cpp:1
- Similar to the previous comment, changing from uint32_t to uint8_t could cause issues if the payload grows beyond 255 words. Consider using uint32_t for consistency and safety.
// MIT License
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
…ads are available and which are connected; only auto setting should cause disconnect
|
One more thing:
|
Disabled,Enabled,Disabled, Enable On Detect,Auto,Auto, No Disableshared_ptrto something. I'm leveraging this in the WinUSB implementation so that I can create an object and automatically have it destroyed once a response is sent over WinUSB due to Maple communication completion.