mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Build pipeline now produces a working bootable image. Found and fixed 11 gaps between the manually-built working SD and build-all.sh output: Boot partition: - extlinux.conf as primary boot method (U-Boot loads first) - PanCho removed from boot.ini and build-image.sh - Stale uInitrd removed (caused wrong boot path) - logo.bmp (U-Boot native BMP) replaces broken splash-1.raw - fstab uses LABEL=ROMS instead of /dev/mmcblk1p3 - Only R36S DTB copied (no extra r35s/rg351mp-linux) Root filesystem: - emulationstation.service created and enabled - getty@tty1 disabled (ES takes over tty1) - archr-boot-setup: Before=emulationstation.service, simplified - All services use After=local-fs.target (not removed getty) - boot-timing captures ES profiling data New files added to repo: - build-mesa.sh, build-retroarch.sh (were untracked) - Custom DTS, ALSA config, controller autoconfig - Runtime scripts (retroarch-launch, pmic-poweroff, hotkeys) - VLC stub source, timezone data Repo cleanup: - README.md rewritten with build instructions + architecture - .gitignore expanded (test scripts, failed approaches, logs) - splash-show.sh removed (failed splash approach) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.9 KiB
C
37 lines
1.9 KiB
C
/*
|
|
* Minimal libvlc stub for Arch R
|
|
* ES-fcamod links against libvlc.so.5 but handles VLC init failure gracefully.
|
|
* This stub satisfies the dynamic linker with no-op implementations.
|
|
* All functions return NULL/0/failure so ES falls back to non-VLC paths.
|
|
*/
|
|
|
|
#include <stddef.h>
|
|
|
|
/* Opaque types (ES only uses pointers) */
|
|
typedef void libvlc_instance_t;
|
|
typedef void libvlc_media_t;
|
|
typedef void libvlc_media_player_t;
|
|
typedef void libvlc_media_track_t;
|
|
|
|
/* ES-fcamod required symbols (17 total) */
|
|
|
|
libvlc_instance_t *libvlc_new(int argc, const char *const *argv) { return NULL; }
|
|
libvlc_media_t *libvlc_media_new_path(libvlc_instance_t *inst, const char *path) { return NULL; }
|
|
void libvlc_media_add_option(libvlc_media_t *m, const char *opt) { }
|
|
int libvlc_media_parse_with_options(libvlc_media_t *m, unsigned flags, int timeout) { return -1; }
|
|
int libvlc_media_get_parsed_status(libvlc_media_t *m) { return 0; }
|
|
unsigned libvlc_media_tracks_get(libvlc_media_t *m, libvlc_media_track_t ***tracks) { return 0; }
|
|
void libvlc_media_tracks_release(libvlc_media_track_t **tracks, unsigned count) { }
|
|
void libvlc_media_release(libvlc_media_t *m) { }
|
|
|
|
libvlc_media_player_t *libvlc_media_player_new_from_media(libvlc_media_t *m) { return NULL; }
|
|
void libvlc_media_player_set_media(libvlc_media_player_t *p, libvlc_media_t *m) { }
|
|
int libvlc_media_player_play(libvlc_media_player_t *p) { return -1; }
|
|
void libvlc_media_player_stop(libvlc_media_player_t *p) { }
|
|
int libvlc_media_player_get_state(libvlc_media_player_t *p) { return 0; }
|
|
void libvlc_media_player_release(libvlc_media_player_t *p) { }
|
|
|
|
void libvlc_audio_set_mute(libvlc_media_player_t *p, int mute) { }
|
|
void libvlc_video_set_callbacks(libvlc_media_player_t *p, void *lock, void *unlock, void *display, void *opaque) { }
|
|
void libvlc_video_set_format(libvlc_media_player_t *p, const char *chroma, unsigned w, unsigned h, unsigned pitch) { }
|