Skip to content

Add --control-pipe option #32

@fasterthanlime

Description

@fasterthanlime

In a native game setup there's three actors:

  • the launcher + overlay-renderer (itch)
  • the encoder (capsulerun)
  • the game

The current --pipe handles the encoder <-> game communication: it mostly concerns itself with synchronizing the video frame buffer (and capture start/stop).

We need a --control-pipe for launcher <-> encoder, so that the launcher is aware of some metrics (fps, recorded length, etc.) some events (recording start/stop, encoding finished with file path, etc.) and so on. It will also be useful for when we're able to capture mouse/keyboard events from the game, to relay them back to the overlay renderer.

TL:DR we need another pair of fifos/named pipes. Luckily both capsulerun and itch have classes that encapsulate that functionality now, so it should be rather easy. We might however have to change MainLoop to work off an event queue instead of reading directly from a connection, since we'll have several connections to deal with.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions