1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-28 15:38:30 +02:00
VVVVVV/desktop_version/src/SoundSystem.cpp

67 lines
1.5 KiB
C++
Raw Normal View History

2020-01-01 21:29:24 +01:00
#include "SoundSystem.h"
#include <SDL.h>
2020-01-01 21:29:24 +01:00
#include "FileSystemUtils.h"
#include "Vlogging.h"
2020-01-01 21:29:24 +01:00
MusicTrack::MusicTrack(const char* fileName)
{
m_music = Mix_LoadMUS(fileName);
m_isValid = true;
if(m_music == NULL)
{
vlog_error("Unable to load Ogg Music file: %s", Mix_GetError());
m_isValid = false;
}
2020-01-01 21:29:24 +01:00
}
MusicTrack::MusicTrack(SDL_RWops *rw)
{
m_music = Mix_LoadMUS_RW(rw, 1);
m_isValid = true;
if(m_music == NULL)
{
vlog_error("Unable to load Magic Binary Music file: %s", Mix_GetError());
m_isValid = false;
}
2020-01-01 21:29:24 +01:00
}
SoundTrack::SoundTrack(const char* fileName)
{
unsigned char *mem;
size_t length;
sound = NULL;
FILESYSTEM_loadAssetToMemory(fileName, &mem, &length, false);
if (mem == NULL)
{
vlog_error("Unable to load WAV file %s", fileName);
SDL_assert(0 && "WAV file missing!");
return;
}
SDL_RWops *fileIn = SDL_RWFromConstMem(mem, length);
sound = Mix_LoadWAV_RW(fileIn, 1);
FILESYSTEM_freeMemory(&mem);
2020-01-01 21:29:24 +01:00
if (sound == NULL)
{
vlog_error("Unable to load WAV file: %s", Mix_GetError());
}
2020-01-01 21:29:24 +01:00
}
SoundSystem::SoundSystem(void)
2020-01-01 21:29:24 +01:00
{
int audio_rate = 44100;
Uint16 audio_format = AUDIO_S16SYS;
int audio_channels = 2;
int audio_buffers = 1024;
2020-01-01 21:29:24 +01:00
if (Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers) != 0)
{
vlog_error("Unable to initialize audio: %s", Mix_GetError());
SDL_assert(0 && "Unable to initialize audio!");
}
2020-01-01 21:29:24 +01:00
}