Commit Graph
525 Commits
Author SHA1 Message Date
RobertBeekman 83cf6da830 Core - Fix profile service, storage and device bugs found by the tests (#912)
* Core - Fix default headset layouts and the z-index of devices placed by the auto-arrange fallback

- Headsets with 2 or 4 LEDs get their default layout, the files are named "... LEDs headset.xml"
- Devices placed by the auto-arrange fallback get the z-index of their type

* Core - Fall back to the default value passed to GetSetting when a stored setting can't be read

* Core - Fix storing, cloning and migrating profiles

- New profiles are stored at the current migration version, so they're no longer migrated on every start and can be duplicated right away
- A category created at the top is listed first right away, so its profiles render on top
- CloneProfileConfiguration makes a copy of the stored data, saving a clone stores its profile through the original
- Importing a profile raises ProfileAdded
- A profile configuration that isn't valid JSON is logged and skipped instead of stopping all migrations
- A stored profile without a version is migrated from version 0, like an imported one
- ProfileCategoryRepository.IsUnique returns true when the name is free
- M0001 and M0004 leave a missing node type or storage out instead of writing null
- M0003 also unwraps a list that is an item of another list
2026-10-24 16:19:23 +02:00
RobertBeekman 6e7fae16d2 Merge pull request #903 from senposage/codex/close-process-query-handles
Close process query handles
2026-10-17 21:12:15 +02:00
RobertBeekman e1357f1bf0 Core - Keep small LEDs addressable at reduced render scales
Sample each LED from its unsnapped absolute boundary instead of the
render-grid-aligned AbsoluteRectangle, ensuring at least one pixel and
clamping to the texture. Also apply the saved render scale at startup.
2026-10-17 20:38:30 +02:00
rjc862003 2b29c15cf1 Close process query handles 2026-10-01 23:49:22 -04:00
Robert 86f2426f37 Core - Remove API versioning, we have MinimumVersion to achieve the same thing 2025-12-19 23:11:27 +01:00
Robert 55dca6cebb Upgrade packages
Update namespaces
Clean up unused imports
Replace Avalonia.ReactiveUI with ReactiveUI.Avalonia 🙄
2025-12-16 22:28:16 +01:00
Robert bda247d3c3 Streamlines plugin management and installation
Refactors plugin handling for improved reliability and user experience.

- Removes built-in plugin copying, migrating to workshop-based installation
- Introduces a dedicated service for plugin interactions (enabling, disabling, removal, settings)
- Simplifies plugin enabling/disabling logic in the UI, centralizing the logic
2025-12-12 18:29:24 +01:00
Robert 06c5294e88 Profile editor - Fix race condition causing the editor to fail to activate on suspended profiles
Surface editor - Implemented left-handed preset
2025-12-11 22:55:31 +01:00
Robert 37b8c2c3e9 Webserver - Add option to enable remote access 2025-02-16 12:05:26 +01:00
Robert fcf00af130 Add missing status handler, add TODO 2025-02-15 16:52:26 +01:00
Robert 0a26319914 Remove unneccesary error handler 2025-02-14 18:20:54 +01:00
Robert eb4a6ceafb Finish implementing GenHTTP 2025-02-13 21:35:35 +01:00
Robert e09389c6db Replace EmbedIO with GenHTTP 2025-02-08 22:48:51 +01:00
Robert 37f973b093 Core - Removed scripting providers
Meta - Updated packages
2024-11-14 14:09:51 +01:00
Robert 00948de9d6 Workshop - Fix installing new versions of profiles 2024-07-02 22:34:25 +02:00
Robert 648b7765ef Core - Added API for retrieving current suspended device providers
Core - Added events for plugin removal, entry installlation/uninstallation
Workshop - Remove the related workshop entry when manually removing a plugin or profile
Workshop - Prevent installing profiles with missing plugins and show a dialog with which plugins are missing
2024-06-30 09:42:41 +02:00
RobertBeekman 3022c7df65 Core - Add device provider suspension system 2024-05-16 20:40:45 +02:00
Robert f152812064 Device properties - Show layout error state 2024-03-30 20:28:01 +01:00
Robert 18d75318d9 Workshop - Replace non-workshop plugins when installing them from the workshop 2024-03-14 20:44:45 +01:00
Robert fa8b03104f Storage - Fix features of newly discovered plugins disabling after restart 2024-03-14 20:08:12 +01:00
RobertBeekman 551921db9f Storage - Replace LiteDB with SQLite + EF Core (#843)
Storage - Added LiteDB to SQLite migration
UI - Try to die a bit more gracefully
Core - Delay start watching plugins for hot reload after initializing
UI - Simplify category management logic
UI - Avoid crash during profile icon load
Storage - Fix entry metadata retrieval
2024-03-13 20:19:21 +01:00
RobertBeekman a340f8822e Replace JSON.NET with System.Text.json (#840) 2024-02-28 19:31:38 +01:00
RobertBeekman 5203e95141 Core - Add migration to also migrate profile activation conditions 2024-02-25 11:45:41 +01:00
Robert 49ed0205b7 Move migrations to storage, add Storage migration for nodes change 2024-02-23 20:58:32 +01:00
Robert 6adcae94b4 Merge branch 'development' into feature/node-providers 2024-02-23 17:36:47 +01:00
Robert 248d4c8e18 Storage - Use nullable reference types
Core - Fix build warnings
2024-02-23 17:35:06 +01:00
RobertBeekman bfd4a436de Profile service - Migrate profiles before importing them 2024-02-22 21:23:47 +01:00
RobertBeekman 39d7d8132f Core - Added node provider plugin feature type
Visual Scripting - Removed all nodes
2024-02-22 19:42:25 +01:00
RobertBeekman f2c8de1746 Plugins - Fixed cancelling prerequisite installation
Plugins - Tweaked prerequisite installation popup size
Account settings - Added personal access token management
Workshop - Added plugin loading, installing and removal
2024-02-16 23:04:24 +01:00
RobertBeekman d9df443970 Workshop - Added plugin upload support 2024-02-14 23:04:19 +01:00
RobertBeekman 3952a268d1 Debugger - Fixed current renderer always showing as Software
Render service - Log which renderer is used
Updating - Fixed release not loading when viewing it from the desktop notification
Core - Removed old unused code
Data model event cycle node - Fixed crash on shutdown
2024-02-02 09:45:18 +01:00
RobertBeekman 28edabae89 Workshop - Implemented workshop installation, layout selection and removal 2024-01-14 12:46:51 +01:00
RobertBeekman dad6a56238 Devices - Implemented switching between layout providers 2024-01-13 11:59:12 +01:00
RobertBeekman e8590abd61 Devices - Reworking layout loading 2024-01-09 21:27:51 +01:00
Robert 1bd4efbbc5 Meta - Fixed a bunch of build warnings 2023-10-18 23:13:57 +02:00
Robert fb6845be5d Core - Call OnFrameRendering after core has rendered instead of before 2023-10-18 21:11:06 +02:00
Robert d73312c4f4 Web server - Ensure controllers and web modules provided by plugins are removed on disable 2023-10-16 21:29:37 +02:00
Robert 43e396bf6d Core - Refactored layout loading, fixing LED images
Core - Make a better effort at removing orphaned devices from device providers that failed to load
2023-10-16 19:44:13 +02:00
Robert 76d424012a Core - Brought device load/save logic in line with the rest of the code 2023-10-14 17:20:22 +02:00
Robert 38eb0ff460 Device visualizer - Never return NaN measurements
Device logical layout picker - Fixed NRE
Surface manager - Improve thread safety
2023-10-11 20:53:21 +02:00
Robert 7e72e22295 Revert "Undo device changes"
This reverts commit 41c1458b5a.
2023-10-11 19:30:49 +02:00
Robert 41c1458b5a Undo device changes 2023-10-09 20:54:59 +02:00
Robert ccd79de67c Always recreate LED group when recreating surface 2023-10-09 20:47:09 +02:00
Robert 3e88aa37ff Change surface manager SKTexture handling 2023-10-09 20:04:23 +02:00
Robert 543b62a715 Profile editor - Added back hotkeys for the tools
Profile editor - Fixed hotkeys not always working
2023-10-07 20:12:35 +02:00
Robert f985682e78 Profile editor - Fixed easing options not applying
Device properties - Fixed layout changes not saving
2023-10-06 21:28:02 +02:00
Robert 2a0a0f3cfd Core - Split up RGBService into RenderService and DeviceService
Core - Removed rendering from CoreService
Core - Store and restore original device LEDs when applying/clearing layouts
2023-10-05 20:38:07 +02:00
Robert bbadef7a9a Merge branch 'development' 2023-09-09 20:47:51 +02:00
Robert c69be2836e Workshop - Added installed entries and update profiles when reinstalling them 2023-09-06 20:39:43 +02:00
Diogo Trindade 625fff4b73 Fix namespaces 2023-09-04 15:56:59 +01:00