From d572203c41cfff817465fc3cddcdea56d5d7d9f8 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 3 Mar 2026 09:00:50 +0100 Subject: feat(assets): replace is_procedural/is_gpu_procedural bools with AssetType enum, add MP3 type - Add AssetType enum {STATIC, PROC, PROC_GPU, MP3} to AssetRecord - Add GetAssetType() API to asset_manager.h/cc - asset_packer: parse 'MP3' compression keyword in assets.txt - tracker: remove magic-byte is_mp3_asset(); use GetAssetType() instead - assets.txt: NEVER_MP3 now uses 'MP3' compression type - doc/ASSET_SYSTEM.md: rewritten to document new types and API handoff(Gemini): AssetType enum landed; MP3 detection is now explicit via asset metadata. --- src/audio/tracker.cc | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src/audio/tracker.cc') diff --git a/src/audio/tracker.cc b/src/audio/tracker.cc index 333a337..7ce96fc 100644 --- a/src/audio/tracker.cc +++ b/src/audio/tracker.cc @@ -44,15 +44,6 @@ static bool g_cache_initialized = false; // Forward declarations static int get_free_pool_slot(); -// Returns true if the asset blob looks like an MP3 file. -static bool is_mp3_asset(const uint8_t* data, size_t size) { - if (!data || size < 3) return false; - // ID3v2 tag prefix - if (data[0] == 'I' && data[1] == 'D' && data[2] == '3') return true; - // Raw MP3 sync word: 0xFF followed by 0xE0-0xFF - if (size >= 2 && data[0] == 0xFF && (data[1] & 0xE0) == 0xE0) return true; - return false; -} #if !defined(STRIP_ALL) // Decode an in-memory MP3 blob to a heap-allocated spectrogram (caller owns). @@ -147,7 +138,7 @@ void tracker_init() { size_t size; const uint8_t* data = GetAsset(aid, &size); #if !defined(STRIP_ALL) - if (data && size > 0 && is_mp3_asset(data, size)) { + if (data && size > 0 && GetAssetType(aid) == AssetType::MP3) { int num_frames = 0; float* spec_data = convert_mp3_to_spectrogram(data, size, &num_frames); @@ -165,7 +156,7 @@ void tracker_init() { } } else #else - FATAL_CHECK(data == nullptr || !is_mp3_asset(data, size), + FATAL_CHECK(data == nullptr || GetAssetType(aid) != AssetType::MP3, "MP3 assets not supported in STRIP_ALL builds\n"); #endif if (data && size >= sizeof(SpecHeader)) { -- cgit v1.2.3