✅ P1.1 Phase 9 Touch Input (4h) - TouchEmulator: 4x4 grid navigation via buttons (UP/DOWN/LEFT/RIGHT toggle) - Files: touch_emulator.{h,cpp} + AmigaUIShell integration - Button mapping: 0=UP, 1=SELECT, 2=DOWN, 3=MENU, 4=TOGGLE_LR - Build SUCCESS (31.06s, 64.4% RAM, 42.0% Flash) ✅ P1.2 Documentation Update (1h) - AGENT_TODO.md: Phase 9 completion + Sprint 9 section added - Root cause analysis: watchdog timeout (cycle 9) → stack fix (8192→16384) - Troubleshooting guide: common issues + debug commands Files: + touch_emulator.{h,cpp} ~ ui_amiga_shell.* + main.cpp + AGENT_TODO.md Next: P1.3 (Sprint 1 endurance validation) + P2 (main.cpp refactor)
285 lines
8.6 KiB
JSON
285 lines
8.6 KiB
JSON
{
|
|
"apps": [
|
|
{
|
|
"id": "audio_player",
|
|
"title": "Lecteur Audio",
|
|
"category": "media",
|
|
"entry_screen": "SCENE_AUDIO_PLAYER",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/audio_player/icon.png",
|
|
"required_capabilities": 193,
|
|
"optional_capabilities": 16,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/audio_player/manifest.json"
|
|
},
|
|
{
|
|
"id": "calculator",
|
|
"title": "Calculatrice",
|
|
"category": "utility",
|
|
"entry_screen": "SCENE_CALCULATOR",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/calculator/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/calculator/manifest.json"
|
|
},
|
|
{
|
|
"id": "timer_tools",
|
|
"title": "Chronometre/Minuteur",
|
|
"category": "utility",
|
|
"entry_screen": "SCENE_TIMER",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/timer_tools/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/timer_tools/manifest.json"
|
|
},
|
|
{
|
|
"id": "flashlight",
|
|
"title": "Lampe de Poche",
|
|
"category": "utility",
|
|
"entry_screen": "SCENE_FLASHLIGHT",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/flashlight/icon.png",
|
|
"required_capabilities": 136,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/flashlight/manifest.json"
|
|
},
|
|
{
|
|
"id": "camera_video",
|
|
"title": "Appareil Photo/Video",
|
|
"category": "capture",
|
|
"entry_screen": "SCENE_PHOTO_MANAGER",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/camera_video/icon.png",
|
|
"required_capabilities": 196,
|
|
"optional_capabilities": 32,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/camera_video/manifest.json"
|
|
},
|
|
{
|
|
"id": "dictaphone",
|
|
"title": "Dictaphone",
|
|
"category": "capture",
|
|
"entry_screen": "SCENE_RECORDER",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/dictaphone/icon.png",
|
|
"required_capabilities": 194,
|
|
"optional_capabilities": 32,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/dictaphone/manifest.json"
|
|
},
|
|
{
|
|
"id": "qr_scanner",
|
|
"title": "Lecteur QR Code",
|
|
"category": "capture",
|
|
"entry_screen": "SCENE_QR_DETECTOR",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/qr_scanner/icon.png",
|
|
"required_capabilities": 132,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/qr_scanner/manifest.json"
|
|
},
|
|
{
|
|
"id": "audiobook_player",
|
|
"title": "Livres Audio",
|
|
"category": "media",
|
|
"entry_screen": "SCENE_AUDIOBOOK",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/audiobook_player/icon.png",
|
|
"required_capabilities": 193,
|
|
"optional_capabilities": 48,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/audiobook_player/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_webradio",
|
|
"title": "Webradio Enfants",
|
|
"category": "kids_media",
|
|
"entry_screen": "SCENE_WEBRADIO",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_webradio/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_webradio/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_podcast",
|
|
"title": "Podcast Enfants",
|
|
"category": "kids_media",
|
|
"entry_screen": "SCENE_PODCAST",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_podcast/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_podcast/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_music",
|
|
"title": "Musique Enfants",
|
|
"category": "kids_media",
|
|
"entry_screen": "SCENE_KIDS_MUSIC",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_music/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_music/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_yoga",
|
|
"title": "Yoga Enfants",
|
|
"category": "kids_wellness",
|
|
"entry_screen": "SCENE_KIDS_YOGA",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_yoga/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_yoga/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_meditation",
|
|
"title": "Meditation Enfants",
|
|
"category": "kids_wellness",
|
|
"entry_screen": "SCENE_KIDS_MEDITATION",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_meditation/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_meditation/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_languages",
|
|
"title": "Langues Enfants",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_KIDS_LANG",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_languages/icon.png",
|
|
"required_capabilities": 129,
|
|
"optional_capabilities": 80,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_languages/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_math",
|
|
"title": "Maths Enfants",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_KIDS_MATH",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_math/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 81,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_math/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_science",
|
|
"title": "Sciences Enfants",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_KIDS_SCIENCE",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_science/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 81,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_science/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_geography",
|
|
"title": "Geographie Enfants",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_KIDS_GEO",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_geography/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 81,
|
|
"supports_offline": true,
|
|
"supports_streaming": true,
|
|
"asset_manifest": "/apps/kids_geography/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_drawing",
|
|
"title": "Dessin",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_DRAWING",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_drawing/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/kids_drawing/manifest.json"
|
|
},
|
|
{
|
|
"id": "kids_coloring",
|
|
"title": "Coloriage",
|
|
"category": "kids_learning",
|
|
"entry_screen": "SCENE_COLORING",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/kids_coloring/icon.png",
|
|
"required_capabilities": 128,
|
|
"optional_capabilities": 0,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/kids_coloring/manifest.json"
|
|
},
|
|
{
|
|
"id": "nes_emulator",
|
|
"title": "Emulateur NES",
|
|
"category": "games",
|
|
"entry_screen": "SCENE_NES_EMU",
|
|
"enabled": true,
|
|
"version": "1.0.0",
|
|
"icon_path": "/apps/nes_emulator/icon.png",
|
|
"required_capabilities": 193,
|
|
"optional_capabilities": 32,
|
|
"supports_offline": true,
|
|
"supports_streaming": false,
|
|
"asset_manifest": "/apps/nes_emulator/manifest.json"
|
|
}
|
|
]
|
|
}
|