backend-infra-engineer: Release v0.3.9-hotfix7 snapshot
This commit is contained in:
122
test/standalone/test_sdl3_audio_compile.cc
Normal file
122
test/standalone/test_sdl3_audio_compile.cc
Normal file
@@ -0,0 +1,122 @@
|
||||
// test_sdl3_audio_compile.cc - Standalone compile test for SDL3 audio backend
|
||||
// This verifies the SDL3 audio backend compiles without errors
|
||||
// Compile with: g++ -std=c++17 -DYAZE_USE_SDL3 -I../../src -c test_sdl3_audio_compile.cc
|
||||
|
||||
// Mock the dependencies to test compilation
|
||||
namespace yaze {
|
||||
namespace log {
|
||||
inline void Log(const char* level, const char* tag, const char* fmt, ...) {}
|
||||
} // namespace log
|
||||
} // namespace yaze
|
||||
|
||||
#define LOG_INFO(tag, ...) yaze::log::Log("INFO", tag, __VA_ARGS__)
|
||||
#define LOG_WARN(tag, ...) yaze::log::Log("WARN", tag, __VA_ARGS__)
|
||||
#define LOG_ERROR(tag, ...) yaze::log::Log("ERROR", tag, __VA_ARGS__)
|
||||
|
||||
// Define YAZE_USE_SDL3 to enable SDL3 backend
|
||||
#define YAZE_USE_SDL3
|
||||
|
||||
// Include the actual implementation files to test compilation
|
||||
#include "../../src/app/emu/audio/audio_backend.h"
|
||||
|
||||
// Mock SDL3 functions for compile test only
|
||||
#ifdef YAZE_USE_SDL3
|
||||
|
||||
struct SDL_AudioSpec {
|
||||
int format;
|
||||
int channels;
|
||||
int freq;
|
||||
};
|
||||
|
||||
struct SDL_AudioStream;
|
||||
typedef unsigned int SDL_AudioDeviceID;
|
||||
typedef int SDL_AudioFormat;
|
||||
|
||||
#define SDL_AUDIO_S16 0x8010
|
||||
#define SDL_AUDIO_F32 0x8120
|
||||
#define SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK 0
|
||||
|
||||
// Mock SDL3 functions
|
||||
SDL_AudioStream* SDL_OpenAudioDeviceStream(SDL_AudioDeviceID id,
|
||||
const SDL_AudioSpec* spec,
|
||||
void* callback, void* userdata) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
SDL_AudioDeviceID SDL_GetAudioStreamDevice(SDL_AudioStream* stream) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_GetAudioDeviceFormat(SDL_AudioDeviceID device, SDL_AudioSpec* spec,
|
||||
int* sample_frames) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_ResumeAudioDevice(SDL_AudioDeviceID device) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_PauseAudioDevice(SDL_AudioDeviceID device) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool SDL_IsAudioDevicePaused(SDL_AudioDeviceID device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void SDL_DestroyAudioStream(SDL_AudioStream* stream) {}
|
||||
|
||||
int SDL_PutAudioStreamData(SDL_AudioStream* stream, const void* buf, int len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_GetAudioStreamQueued(SDL_AudioStream* stream) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_GetAudioStreamAvailable(SDL_AudioStream* stream) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SDL_GetAudioStreamData(SDL_AudioStream* stream, void* buf, int len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SDL_ClearAudioStream(SDL_AudioStream* stream) {}
|
||||
|
||||
SDL_AudioStream* SDL_CreateAudioStream(const SDL_AudioSpec* src_spec,
|
||||
const SDL_AudioSpec* dst_spec) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char* SDL_GetError() {
|
||||
return "Mock error";
|
||||
}
|
||||
|
||||
// Now include the SDL3 implementation
|
||||
#include "../../src/app/emu/audio/sdl3_audio_backend.cc"
|
||||
|
||||
#endif // YAZE_USE_SDL3
|
||||
|
||||
// Simple test to verify it compiles
|
||||
int main() {
|
||||
#ifdef YAZE_USE_SDL3
|
||||
yaze::emu::audio::SDL3AudioBackend backend;
|
||||
|
||||
yaze::emu::audio::AudioConfig config;
|
||||
config.sample_rate = 48000;
|
||||
config.channels = 2;
|
||||
config.buffer_frames = 1024;
|
||||
config.format = yaze::emu::audio::SampleFormat::INT16;
|
||||
|
||||
// Just verify the interface is correct
|
||||
bool initialized = backend.IsInitialized();
|
||||
std::string name = backend.GetBackendName();
|
||||
float volume = backend.GetVolume();
|
||||
backend.SetVolume(0.5f);
|
||||
|
||||
return (name == "SDL3") ? 0 : 1;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user