flutter_fbdev library

Run Flutter on no-DRM framebuffer handhelds (Anbernic RG34XXSP and friends), with gamepad/evdev input and an on-screen button-mapping overlay.

See the README for the full picture: this package ships a software-rendered /dev/fb0 Flutter embedder (native/), build + deploy tooling (tool/), and the Dart input layer exported here.

Classes

FbdevAudio
Plays a bundled audio file through the framebuffer embedder.
HandheldButtonEvent
A press or release of a HandheldButton.
HandheldInput
Receives raw evdev input forwarded by the framebuffer embedder over the flutter_fbdev/input platform channel, maps it to HandheldButtons via a HandheldProfile, and dispatches press/release events.
HandheldInputOverlay
On-screen overlay that flashes + bounces the most recently pressed handheld button (mapped name, or the raw KEY n / HAT X + for unmapped inputs).
HandheldProfile
Maps a device's raw evdev codes to HandheldButtons. The d-pad is assumed to be an EV_ABS hat (hatX/hatY); face/shoulder/menu buttons are EV_KEY codes in keys. Override for other devices - rg34xxsp is the default.
HandheldSticks
The state of both analog sticks, each axis normalized to -1.0 .. 1.0 (0 = centred). evdev exposes no fixed range over the raw channel, so values self-calibrate as the stick is swept to its extremes - expect a short warm-up the first time a stick is used.

Enums

HandheldButton
A logical handheld button, mapped from raw evdev events by a HandheldProfile.

Constants

flutterFbdevVersion → const String
The published package version, mirroring version: in pubspec.yaml.

Properties

isFbdevHandheld bool
True when running on a no-DRM framebuffer handheld via the flutter_fbdev embedder (the engine reports the Linux target). Gate handheld code paths on this: button input, landscape layout, silent audio, skipping touch menus, etc.
no setter

Functions

fbdevTryStep(FutureOr<void> step()) Future<bool>
Runs step, swallowing any error so a platform service that's unavailable on the minimal embedder (shared_preferences, audio, haptics, Game Center, …) can't abort startup. Wrap each risky bootstrap call. Returns true on success.