Add user-info message support to RetroArch WebSocket monitor#55
Merged
Conversation
Co-authored-by: kzryzstof <38137839+kzryzstof@users.noreply.github.com> Agent-Logs-Url: https://github.com/Octelys/achievements-tracker-plugin/sessions/aa14e230-8237-4006-9a8b-eb203e951ab2
Copilot
AI
changed the title
[WIP] Add dedicated web-socket client for retro-achievements
Add RetroArch WebSocket client in src/retro-achievements
Mar 21, 2026
…sistency across source and header files.
Collaborator
|
@copilot It is now missing the code to start & stop the monitoring of RA |
Co-authored-by: kzryzstof <38137839+kzryzstof@users.noreply.github.com> Agent-Logs-Url: https://github.com/Octelys/achievements-tracker-plugin/sessions/535a824b-b304-4402-8315-320169e150a6
Contributor
Author
Collaborator
|
@copilot In the PR Octelys/retro-arch#4, I just have added the support to send the retro-achievements as another message. Update this current branch to retrieve them. |
Co-authored-by: kzryzstof <38137839+kzryzstof@users.noreply.github.com> Agent-Logs-Url: https://github.com/Octelys/achievements-tracker-plugin/sessions/8ede68ae-61b0-41cc-872f-292c772bedb3
Contributor
Author
Done in 9c4971c. The monitor now handles the new New typedef struct {
uint32_t id;
char name[256];
uint32_t points;
char status[16]; // "unlocked" or "locked"
char badge_url[512];
} retro_achievement_t;New callback type and subscription API: typedef void (*on_retro_achievements_t)(const retro_achievement_t *achievements, size_t count);
void retro_achievements_subscribe_achievements(on_retro_achievements_t callback);The monitor parses the incoming |
Co-authored-by: kzryzstof <38137839+kzryzstof@users.noreply.github.com> Agent-Logs-Url: https://github.com/Octelys/achievements-tracker-plugin/sessions/18b1240d-5837-4e48-b3ee-4e9d4bec7849
Copilot
AI
changed the title
Add RetroArch WebSocket client in src/retro-achievements
Add user-info message support to RetroArch WebSocket monitor
Mar 21, 2026
…ith bitwise operations, improve logging, and streamline iteration.
…nto copilot/add-web-socket-client
…ate related files to `integrations` directory, introduce `identity` abstraction, and clean up includes.
…ntegrations, centralize event handling, and simplify source dependencies.
…s into a unified, platform-agnostic abstraction; migrate platform-specific logic to `integrations/*`; update monitoring service to centralize game and achievement event handling.
…ostic components; introduce game cover URL support, centralized event handling, and HTTP URL normalization.
… status and notify on no game played.
…l cover URLs, adjust logging levels in RetroAchievements integration.
…ion and cache handling in Xbox and platform integrations.
…sure consistent setup and initialization across monitoring and game-played events.
…te before installing dependencies
…tization in monitoring events.
… logic and add `UNUSED_PARAMETER` macro
… and Retro sources; rename and generalize source types
…e identity notifications and source prioritization across Xbox and RetroAchievements integrations.
…e identity notifications and source prioritization across Xbox and RetroAchievements integrations.
… assets for Xbox plugin sources
…esponding unit tests to verify callback behavior and source prioritization.
…ncy and improved debugging.
…logy with platform-agnostic labels.
kzryzstof
approved these changes
Apr 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Handles the
"user"and"no_user"messages introduced in Octelys/retro-arch#4, alongside the previously added"game_playing","no_game", and"achievements"messages.retro_achievements_monitor.hretro_user_tstruct:on_retro_user_t/on_retro_no_user_tretro_achievements_subscribe_user()/retro_achievements_subscribe_no_user()retro_achievements_monitor.cuser_subscription_t/no_user_subscription_tlinked lists andnotify_user()/notify_no_user()dispatch helpers{"type":"user", "username":"...", "display_name":"...", "score":N, "score_softcore":N, "avatar_url":"..."}and{"type":"no_user"}, dispatching to subscribersHAVE_LIBWEBSOCKETS-guarded stub implementations for both new subscription functions⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast.