diff --git a/docs/audit-core-audio.md b/docs/audit-core-audio.md index cadaa77..6a6fe0f 100644 --- a/docs/audit-core-audio.md +++ b/docs/audit-core-audio.md @@ -62,7 +62,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic |----|---------------|----------|-----------|--------|-------| | COUP-01 | `jail_audio.hpp:107-118` | `inline` globals en namespace: estado del engine sin encapsulación | Crítico | DEFERRED | Refactor grande; se hará en fase posterior | | COUP-02 | `jail_audio.hpp` entero | Engine header-only: 678 líneas compilándose en cada TU | Importante | DEFERRED | Depende de COUP-01 | -| COUP-03 | `audio.cpp:3`, `jail_audio.hpp:8` | `#include ` sólo para `std::cout` de errores | Importante | PENDING | Sustituir por `std::fprintf(stderr,…)` con `` | +| COUP-03 | `audio.cpp:3`, `jail_audio.hpp:8` | `#include ` sólo para `std::cout` de errores | Importante | DONE | `` → `` als dos fitxers. `jail_audio.hpp` ja no arrossega iostream a cada TU que l'inclou. Missatges prefixats `Ja::` / `Audio:` (convenció `Module: message` del projecte) | | COUP-04 | `audio.cpp:43-45`, `208` | `Ja::init` en `initSDLAudio` vs `Ja::quit` en destructor (asimetría) | Menor | WONTFIX | Convive con singleton; se revisará con COUP-01 | | COUP-05 | `audio.hpp:71,79` | API pública expone `Ja::Music*`/`Ja::Sound*` | Menor | WONTFIX | Forward-declare ya mitiga; evita doble lookup por nombre | diff --git a/source/core/audio/audio.cpp b/source/core/audio/audio.cpp index 625dbe3..445b801 100644 --- a/source/core/audio/audio.cpp +++ b/source/core/audio/audio.cpp @@ -3,7 +3,7 @@ #include // Para SDL_GetError, SDL_Init #include // Para clamp -#include // Para std::cout +#include // Para std::fprintf // Implementació de stb_vorbis (ha d'anar ABANS d'incloure jail_audio.hpp). // clang-format off @@ -230,7 +230,7 @@ void Audio::enableMusic(bool value) { // Inicialitza SDL Audio void Audio::initSDLAudio() { if (!SDL_Init(SDL_INIT_AUDIO)) { - std::cout << "SDL_AUDIO could not initialize! SDL Error: " << SDL_GetError() << '\n'; + std::fprintf(stderr, "Audio: SDL_AUDIO could not initialize! SDL Error: %s\n", SDL_GetError()); } else { Ja::init(Defaults::Audio::FREQUENCY, Defaults::Audio::FORMAT, Defaults::Audio::CHANNELS); sound_enabled_ = config_.sound_enabled; diff --git a/source/core/audio/jail_audio.hpp b/source/core/audio/jail_audio.hpp index 5c536f0..0bed69e 100644 --- a/source/core/audio/jail_audio.hpp +++ b/source/core/audio/jail_audio.hpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include @@ -274,7 +274,7 @@ namespace Ja { audio_spec = {.format = format, .channels = num_channels, .freq = freq}; if (sdl_audio_device != 0) { SDL_CloseAudioDevice(sdl_audio_device); } sdl_audio_device = SDL_OpenAudioDevice(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &audio_spec); - if (sdl_audio_device == 0) { std::cout << "Failed to initialize SDL audio!" << '\n'; } + if (sdl_audio_device == 0) { std::fprintf(stderr, "Ja: Failed to initialize SDL audio!\n"); } for (auto& channel : channels) { channel.state = ChannelState::FREE; } } @@ -305,7 +305,7 @@ namespace Ja { &vorbis_error, nullptr); if (music->vorbis == nullptr) { - std::cout << "loadMusic: stb_vorbis_open_memory failed (error " << vorbis_error << ")" << '\n'; + std::fprintf(stderr, "Ja::loadMusic: stb_vorbis_open_memory failed (error %d)\n", vorbis_error); return nullptr; } @@ -341,7 +341,7 @@ namespace Ja { current_music->stream = SDL_CreateAudioStream(¤t_music->spec, &audio_spec); if (current_music->stream == nullptr) { - std::cout << "Failed to create audio stream!" << '\n'; + std::fprintf(stderr, "Ja::playMusic: Failed to create audio stream!\n"); current_music->state = MusicState::STOPPED; return; } @@ -351,7 +351,7 @@ namespace Ja { pumpMusic(current_music); if (!SDL_BindAudioStream(sdl_audio_device, current_music->stream)) { - std::cout << "[ERROR] SDL_BindAudioStream failed!" << '\n'; + std::fprintf(stderr, "Ja::playMusic: SDL_BindAudioStream failed!\n"); } } @@ -450,7 +450,7 @@ namespace Ja { stb_vorbis_seek_start(current_music->vorbis); current_music->stream = SDL_CreateAudioStream(¤t_music->spec, &audio_spec); if (current_music->stream == nullptr) { - std::cout << "Failed to create audio stream for crossfade!" << '\n'; + std::fprintf(stderr, "Ja::crossfadeMusic: Failed to create audio stream!\n"); current_music->state = MusicState::STOPPED; return; } @@ -514,7 +514,7 @@ namespace Ja { auto sound = std::make_unique(); Uint8* raw = nullptr; if (!SDL_LoadWAV_IO(SDL_IOFromMem(buffer, size), true, &sound->spec, &raw, &sound->length)) { - std::cout << "Failed to load WAV from memory: " << SDL_GetError() << '\n'; + std::fprintf(stderr, "Ja::loadSound: Failed to load WAV from memory: %s\n", SDL_GetError()); return nullptr; } sound->buffer.reset(raw); // adopta el SDL_malloc'd buffer @@ -548,7 +548,7 @@ namespace Ja { channels[channel].stream = SDL_CreateAudioStream(&channels[channel].sound->spec, &audio_spec); if (channels[channel].stream == nullptr) { - std::cout << "Failed to create audio stream for sound!" << '\n'; + std::fprintf(stderr, "Ja::playSoundOnChannel: Failed to create audio stream!\n"); channels[channel].state = ChannelState::FREE; return -1; }