Prosperoradio
Une application Internet-radio native pour PlayStation 5 homebrew Parcourir et rechercher le catalogue Radio Browser avec support disque résistant cache,...
Choisir une liste...
ProsperoRadio
Une application Internet-radio native pour PlayStation 5 homebrew
Parcourir et rechercher le catalogue Radio Browser avec support disque résistant
cache, lecture audio native PS5 et interface RmlUi.
.
Faits marquants
- Parcourez plus de 56 000 stations prises en charge dans un navigateur radio validé synchronisation; le total en direct change à mesure que le catalogue public évolue.
- Explorez 240 pays et des centaines de genres et de langues avec côté serveur recherche et filtres à la demande.
- Jouer AAC/AAC+, MP3 et Opus à travers des chemins de décodeur natifs PS5, avec validation Vorbis, FLAC et Ogg-FLAC reculent.
- Résoudre les listes de lecture AAC HLS, M3U/PLS et les métadonnées ICY uniquement audio se rétablissant proprement dans des cours d'eau mal formés ou interrompus.
- Gardez le catalogue et les favoris rapides et persistants dans SQLite sous
/download0, avec des rafraîchissements atomiques et le miroir de navigateur radio. - Utiliser une interface RmlUi premier contrôleur avec DualSense et gauche navigation, entrée de texte PS5 et noms de stations multilingues.
Fondations de projets
[!IMPORTANT]
Construit sur lePS5 Native App Boilerplate.ProsperoRadio préserve la structure moderne du modèle C++20,.hppinterfaces,
temps d'exécution reproductible, outillage FSELF, tests, flux de déploiement et libération
l'automatisation.
[!IMPORTANT] Le travail audio est documenté enPS5 Audio Decoding Research.Le dépôt d'accompagnement enregistre l'enquête de décodeur de premier matériel, les notes d'ingénierie inverse, les sondes d'API natives, les limites de codec et l'appareil validation qui a informé l'implémentation audio de ProsperoRadio.
Valeur
- Oui.
Titre de la coquilleProsperoRadioAutres
Titre IDPPSA99001Autres
Catégorie
Version actuelle01.000.005Autres
Source de versionsce_sys/param.jsonAutres
Données écrites/download0seulement
Caractéristiques
- Parcourir Populaire, Trending, Top rated, Favoris et Découvrez les vues.
- Rechercher en direct les données du navigateur radio par texte, pays, genre, langue et bitrate, avec basculement miroir et recherche côté serveur.
- Gardez un grand catalogue SQLite et des favoris sur
/download0; une synchronisation ratée laisse intact le dernier catalogue vérifié. - Naviguez entièrement avec le D-pad DualSense ou le bâton gauche analogique; le PS5 IME gère l'entrée de texte.
- Render emballé, polices bitmap multilingues de façon déterministe plutôt que selon la rastérisation de la police de plate-forme.
- Jouer AAC/AAC+ et MP3 à travers le décodage natif PS5 ; jouer Opus à travers le route de décodeur Opus/CELT native; jouer Vorbis et FLAC/Ogg-FLAC avec limited Décodeurs de processeurs.
- Résoudre l'indirection M3U/PLS délimitée, retirer les métadonnées ICY, et soutenir la sous-ensemble AAC HLS.
Les limites et la validation du codec spécifique à l'application sont documentées dans Architecture, ,Codec investigationet Roadmap. Le dossier de recherche réutilisable complet vit dans PS5 Audio Decoding Research.
Exigences
Construire à partir de Linux, WSL, ou un coureur Linux CI. Sur Ubuntu, Debian ou WSL :
sudo apt update
sudo apt install curl git make pkg-config python3 python3-venv tar unzip wget \
clang-18 clang-format-18 clang-tidy-18 lld-18 libsqlite3-dev
La production.ffpfsccible utilise le bootstraper MkPFS épinglé. Les
le dépôt télécharge, vérifie et cache le public PS5 Payload SDK, zlib,
Le port SQLite de PacBrew, GoogleTest et les outils d'emballage ci-dessous ignorés.deps/.
Aucun élément propriétaire de SDK, module système, clé ou jeu n'est inclus ou récupéré.
Effectuez une vérification préalable en lecture seule avant de construire:
make doctor
VoirGetting startedet Native toolingpour le détail construction-environnement.
Construire
sce_sys/param.jsonest la seule source d'identité et de version. Ne pas
changementPPSA99001lors de la mise à jour de ProsperoRadio: le changement produit un PS5 séparé
le titre plutôt qu'une mise à jour.
# Production release image (also assembles the complete title folder).
make ffpfsc
# Faster folder-only build for development deployment.
make
Les résultats sont écrits à l'adresse suivante :
dist/PPSA99001/ complete title folder
dist/PPSA99001.ffpfsc compressed package
Un UFS2 local optionnel.ffpkgl'objectif reste disponible pour le développement;
est intentionnellement exclu des rejets de CI et de GitHub. Voir
Package formats.
L'application est uneMédiastitre de la catégorie. Mettre en scène tout le dossier, paseboot.binseul. Pour une boucle de développement local contre un service FTP déjà en service :
make deploy PS5_HOST=192.168.4.30 DEPLOY_FORMAT=folder
[!NOTE] Le premier lancement peut prendre un certain temps pendant que ProsperoRadio télécharge, valide, et cache le catalogue Radio Browser. Gardez la console en ligne et laissez l'application ouvert jusqu'à ce que la base de données finisse le chargement ; les lancements ultérieurs utilisent le cache local.
Le deployeur n'écrit que les chemins du titre/data/homebrew. Il télécharge
chaque fichier à travers un nom temporaire, puis publieeboot.binet
sce_sys/param.jsondernier. Pour le protocole console et les exigences en matière de preuves, voir
DeploymentetTesting.
Portails d'essai et de qualité
make test # C++ unit tests, UI/metadata tests, 16 codec/catalogue checks
make lint # formatting, static analysis, metadata, and shell checks
make check # lint + all host tests + complete folder build
make ffpfsc # production folder + FFPFSC image
La suite de test fonctionne entièrement sur l'hôte et ne contacte jamais une console. C'est couvre la cohérence des actifs RML/UI, la persistance des catalogues, l'analyse miroir/presse, Calendrier de l'AAC, cadrage MP3, métadonnées de l'ICY, PCM/comportement d'essai, Ogg/Opus, Vorbis, FLAC, HLS/MPEG-TS, entrée du contrôleur et commande de texte arabe/RTL. La limite PS5 seulement est documentée dansTesting.
GitHub Actions exécute le lintage, chaque test hôte, l'exécution déterministe
la reproduction, et une construction FFPFSC. Quand exactementcontentVersionl'étiquette est
poussé, le flux de travail porte le temps de constructionSHA256SUMSavant, vérifie
et publie exactement le.ffpfscfichier image et somme de contrôle.
Présentation des sources
src/main.cpp SDL2/RmlUi application lifetime and renderer bridge
src/radio_app.cpp C++20 controller and focus/state transitions
src/radio_text.cpp C++20 UTF-8 visual-order helper
src/*.hpp Private C++ application interfaces
include/*.hpp Public codec, catalogue, input, and service interfaces
assets/ui/ RML, RCSS, font atlases, and icons mounted at /app0/assets/ui
vendor/ Checked-in RmlUi, SDL2, FreeType, decoder, and PS5 SDK inputs
tools/build.sh Template-native compile/link/FSELF/folder assembler
tooling/native/ Template-owned native ELF and FSELF tooling
tests/ GoogleTest and Python integration regressions
sce_sys/param.json Shell metadata, title identity, and release version
docs/ Architecture, testing, codec, build, and deployment documentation
ProsperoRadio est une application C++20. Les interfaces appartenant au dépôt utilisent les
Plaque de chaudière.hppconvention; codec portable, demux, persistance, entrée, et
Les modules de service sont des unités de traduction C++ testables indépendamment. Fournisseur
les décodeurs de fichiers uniques conservent leurs noms de fichiers en amont et sont compilés par
petits adaptateurs C++. VoirTemplate port notes.
Version et versions
contentVersiondanssce_sys/param.jsonconduit la
métadonnées emballées, version de l'interface utilisateur de la barre supérieure, balise Git et nom de la publication GitHub. C'est
utilise exactement PS5NN.NNN.NNNformat sansvpréfixe.
# After updating sce_sys/param.json and passing the local gates.
git tag 01.000.005
git push origin main 01.000.005
Le flux de travail rejette une étiquette erronée. Significations plein champ, Jeu/Média métadonnées, et la configuration de l'import-linking sont dans Configuration.
Crédits, logiciels tiers et licences
ProsperoRadio reconnaît les projets open-source et les services publics la demande possible:
- Plateforme et emballage: PS5 Native App Boilerplate(GPL-3,0 ou plus tard),PS5 Payload SDKv0.42,PacBrewv0.40.2, ,SharpProsperocomme format public référence,MkPFSet UFS2Tool.
- Pile d'application : Radio Browser, ,RmlUi 6.2(MIT), ,SDL2, ,FreeType 2.13.2, ,SQLite 3.46.1(domaine public), ,zlib 1.3.2, ,stb_vorbis(MIT), et dr_flac(MIT-0).
- Outils et types d'actifs: LLVM, ,GoogleTest 1.17.0, ,DirectXTex, ,LVGL, ,Montserrat, ,Noto fonts, ,DejaVu fontset Source Han Sans.
Radio Browser fournit des métadonnées de station et des URLs mais n'héberge pas individuellement
les flux de station. Les SDK, zlib, GoogleTest, MkPFS et UFS2Tool sont vérifiés
build inputs tenu en dessous ignoré.deps/; ils ne sont pas distribués dans
libérer le paquet. SharpProspero n'est ni récupéré ni lié. Enregistrement SDL2,
Les fichiers RmlUi, FreeType, stb vorbis et dr flac conservent leur licence en amont
Textes ci-dessousvendor/. Des licences de police complètes accompagnent
assets/ui/fonts/lvgl-bitmap/.
Le shim d'exécution, le convertisseur ELF et l'écrivain FSELF sont des auteurs indépendants Code GPL-3.0 ou plus tard. Pas de SDK propriétaire Sony, module firmware, chiffrement clé, ou l'actif de jeu extrait est inclus. Le lanceur fourni par le mainteneur l'oeuvre et la sélection audio sont distribuées sous licence de projet.
ProsperoRadio est GPL-3.0-ou plus tard. VoirLICENSEet Contributing.
PlayStation et PS5 sont des marques de commerce de Sony Interactive Entertainment. Cette projet est indépendant et n'est pas affilié à ou soutenu par Sony.
Ce projet a été élaboré avec l'aide d'OpenAI Codex, dont certains l'interface originale. Les responsables du projet ont examiné et validé le code, les tests, la documentation, les dépendances et les actifs générés.