[PR #101] [MERGED] Exposing Wolf events via API #360

Closed
opened 2026-10-15 13:00:00 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/wolf/pull/101
Author: @ABeltramo
Created: 8/26/2024
Status: ✅ Merged
Merged: 10/14/2024
Merged by: @ABeltramo

Base: stable ← Head: dev-backend-api


📝 Commits (10+)

  • fabdea9 feat: move to C++20, using custom event bus
  • a46a683 fix: upgraded boost minimum version, fixed CI params
  • e5ab3ea refactor: moved all eventbus events into a single header
  • 6293663 feat: added basic serialization support for events
  • eb4f95a feat: added msgpack
  • e9e19a0 feat: CI - using devcontainers for tests
  • 4e21a0f feat: updated to latest custom eventbus, fixed audio events, added event_type
  • 289777a fix: rebase on top of stable
  • b42e3db feat: implemented API UNIX socket
  • 61207c7 fix: CI

📊 Changes

63 files changed (+4127 additions, -1321 deletions)

View changed files

📝 .github/workflows/docker-build.yml (+40 -0)
📝 .github/workflows/linux-build-test.yml (+6 -13)
📝 CMakeLists.txt (+1 -1)
📝 docker/gstreamer.Dockerfile (+7 -0)
📝 docs/modules/ROOT/nav.adoc (+1 -0)
➕ docs/modules/dev/pages/api.adoc (+70 -0)
➕ docs/modules/dev/partials/spec.json (+778 -0)
📝 docs/modules/user/pages/configuration.adoc (+33 -9)
📝 src/core/src/core/audio.hpp (+1 -1)
📝 src/core/src/core/gstreamer.hpp (+1 -5)
📝 src/core/src/platforms/all/docker/docker/formatters.hpp (+8 -3)
📝 src/core/src/platforms/all/helpers/CMakeLists.txt (+1 -1)
📝 src/core/src/platforms/all/helpers/helpers/logger.hpp (+3 -2)
📝 src/core/src/platforms/linux/pulseaudio/CMakeLists.txt (+1 -1)
📝 src/core/src/platforms/linux/pulseaudio/pulse.cpp (+9 -9)
📝 src/core/src/platforms/linux/uinput/CMakeLists.txt (+1 -1)
📝 src/moonlight-protocol/CMakeLists.txt (+1 -1)
📝 src/moonlight-protocol/moonlight/data-structures.hpp (+2 -0)
📝 src/moonlight-server/CMakeLists.txt (+36 -14)
➕ src/moonlight-server/api/api.cpp (+33 -0)

...and 43 more files

📄 Description

In this PR:

Here's an example co-op session with two clients:

https://github.com/user-attachments/assets/25b8e78d-7661-4e4d-8f3f-be75683e8fe8


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/wolf/pull/101 **Author:** [@ABeltramo](https://github.com/ABeltramo) **Created:** 8/26/2024 **Status:** ✅ Merged **Merged:** 10/14/2024 **Merged by:** [@ABeltramo](https://github.com/ABeltramo) **Base:** `stable` ← **Head:** `dev-backend-api` --- ### 📝 Commits (10+) - [`fabdea9`](https://github.com/games-on-whales/wolf/commit/fabdea9c08b082a3f84503f2927816854497ba4e) feat: move to C++20, using custom event bus - [`a46a683`](https://github.com/games-on-whales/wolf/commit/a46a683435a7a49ac0b9568ab8c7c7db233ed69b) fix: upgraded boost minimum version, fixed CI params - [`e5ab3ea`](https://github.com/games-on-whales/wolf/commit/e5ab3eabec6d025375228d33b06c9a1ee743a3c4) refactor: moved all eventbus events into a single header - [`6293663`](https://github.com/games-on-whales/wolf/commit/629366377fa096e47f538a5d5fb69e9aea87106c) feat: added basic serialization support for events - [`eb4f95a`](https://github.com/games-on-whales/wolf/commit/eb4f95ad7a679ce80957f5770d790bc08aafcaa9) feat: added msgpack - [`e9e19a0`](https://github.com/games-on-whales/wolf/commit/e9e19a070f80f93c5c3783a78705a1c5047e715f) feat: CI - using devcontainers for tests - [`4e21a0f`](https://github.com/games-on-whales/wolf/commit/4e21a0f5af4a2e4092df173395997580414b2102) feat: updated to latest custom eventbus, fixed audio events, added event_type - [`289777a`](https://github.com/games-on-whales/wolf/commit/289777a6fbd0cb436c831a72d47734aa2b23cb2b) fix: rebase on top of stable - [`b42e3db`](https://github.com/games-on-whales/wolf/commit/b42e3dbdf38a3cd1ee5e76d4eaef59f5c002eb28) feat: implemented API UNIX socket - [`61207c7`](https://github.com/games-on-whales/wolf/commit/61207c78d6a71950518effc2531c69ef2d1a086a) fix: CI ### 📊 Changes **63 files changed** (+4127 additions, -1321 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/docker-build.yml` (+40 -0) 📝 `.github/workflows/linux-build-test.yml` (+6 -13) 📝 `CMakeLists.txt` (+1 -1) 📝 `docker/gstreamer.Dockerfile` (+7 -0) 📝 `docs/modules/ROOT/nav.adoc` (+1 -0) ➕ `docs/modules/dev/pages/api.adoc` (+70 -0) ➕ `docs/modules/dev/partials/spec.json` (+778 -0) 📝 `docs/modules/user/pages/configuration.adoc` (+33 -9) 📝 `src/core/src/core/audio.hpp` (+1 -1) 📝 `src/core/src/core/gstreamer.hpp` (+1 -5) 📝 `src/core/src/platforms/all/docker/docker/formatters.hpp` (+8 -3) 📝 `src/core/src/platforms/all/helpers/CMakeLists.txt` (+1 -1) 📝 `src/core/src/platforms/all/helpers/helpers/logger.hpp` (+3 -2) 📝 `src/core/src/platforms/linux/pulseaudio/CMakeLists.txt` (+1 -1) 📝 `src/core/src/platforms/linux/pulseaudio/pulse.cpp` (+9 -9) 📝 `src/core/src/platforms/linux/uinput/CMakeLists.txt` (+1 -1) 📝 `src/moonlight-protocol/CMakeLists.txt` (+1 -1) 📝 `src/moonlight-protocol/moonlight/data-structures.hpp` (+2 -0) 📝 `src/moonlight-server/CMakeLists.txt` (+36 -14) ➕ `src/moonlight-server/api/api.cpp` (+33 -0) _...and 43 more files_ </details> ### 📄 Description In this PR: - Added APIs via Unix socket to fully control Wolf programmatically [see docs](https://games-on-whales.github.io/wolf/dev-backend-api/dev/api.html) - Added [gstinterpipe](https://github.com/RidgeRun/gst-interpipe) so that we can nicely decouple producers (running apps) from consumers (Moonlight clients) in order to implement **co-op sessions** [see docs](https://games-on-whales.github.io/wolf/dev-backend-api/user/configuration.html#_co_op_sessions) and video below - Merged https://github.com/games-on-whales/wolf/pull/104 to add support for custom app images - Moved to C++20, refactored events and config TOML loading to better use [reflect-cpp](https://github.com/getml/reflect-cpp) Here's an example co-op session with two clients: https://github.com/user-attachments/assets/25b8e78d-7661-4e4d-8f3f-be75683e8fe8 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 13:00:00 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#360
No description provided.