mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
System daemons: hotkeys (volume/brightness), automount, bluetooth agent, memory manager, sleep/suspend, USB gadget mode, save-config persistence. Boot splash: initramfs SVG renderer (fbsplash + svg_parser) for 0.7s splash. Panel tools: generate-panel-dtbos.sh rewrite, convert-panel.py for ROCKNIX panel data extraction, archr-dtbo.py for runtime overlay management. Input: archr-gptokeyb.c gamepad-to-keyboard mapper via uinput. Launch wrappers: emulationstation.sh and retroarch-launch.sh updated for KMS/DRM + Mesa 26 Panfrost environment. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
850 B
C
34 lines
850 B
C
#ifndef FBSPLASH_H
|
|
#define FBSPLASH_H
|
|
|
|
#include <stdint.h>
|
|
#include <linux/fb.h>
|
|
|
|
typedef struct {
|
|
int fd;
|
|
uint8_t *buffer;
|
|
struct fb_var_screeninfo vinfo;
|
|
struct fb_fix_screeninfo finfo;
|
|
size_t screensize;
|
|
} Framebuffer;
|
|
|
|
typedef struct {
|
|
uint32_t screen_width;
|
|
uint32_t screen_height;
|
|
uint32_t svg_width;
|
|
uint32_t svg_height;
|
|
uint32_t x_offset;
|
|
uint32_t y_offset;
|
|
float base_svg_width;
|
|
float base_svg_height;
|
|
} DisplayInfo;
|
|
|
|
Framebuffer* fb_init(const char *fb_device);
|
|
void fb_cleanup(Framebuffer *fb);
|
|
void set_pixel(Framebuffer *fb, uint32_t x, uint32_t y, uint32_t color);
|
|
void blend_pixel(Framebuffer *fb, uint32_t x, uint32_t y, uint32_t color, float alpha);
|
|
void fb_flush(Framebuffer *fb);
|
|
DisplayInfo* calculate_display_info(Framebuffer *fb, float base_width, float base_height);
|
|
|
|
#endif
|