1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-01 02:23:32 +02:00
VVVVVV/desktop_version/src/SoundSystem.cpp
Misa 52f7a587fe Separate includes into sections and alphabetize them
Okay, so basically here's the include layout that this game now
consistently uses:

[The "main" header file, if any (e.g. Graphics.h for Graphics.cpp)]
[blank line]
[All system includes, such as tinyxml2/physfs/utfcpp/SDL]
[blank line]
[All project includes, such as Game.h/Entity.h/etc.]

And if applicable, another blank line, and then some special-case
include screwy stuff (take a look at editor.cpp or FileSystemUtils.cpp,
for example, they have ifdefs and defines with their includes).
2020-07-19 21:37:40 -04:00

74 lines
1.5 KiB
C++

#include "SoundSystem.h"
#include <SDL.h>
#include "FileSystemUtils.h"
MusicTrack::MusicTrack(const char* fileName)
{
m_music = Mix_LoadMUS(fileName);
m_isValid = true;
if(m_music == NULL)
{
fprintf(stderr, "Unable to load Ogg Music file: %s\n", Mix_GetError());
m_isValid = false;
}
}
MusicTrack::MusicTrack(SDL_RWops *rw)
{
m_music = Mix_LoadMUS_RW(rw, 0);
m_isValid = true;
if(m_music == NULL)
{
fprintf(stderr, "Unable to load Magic Binary Music file: %s\n", Mix_GetError());
m_isValid = false;
}
}
SoundTrack::SoundTrack(const char* fileName)
{
sound = NULL;
unsigned char *mem;
size_t length = 0;
FILESYSTEM_loadFileToMemory(fileName, &mem, &length);
SDL_RWops *fileIn = SDL_RWFromMem(mem, length);
sound = Mix_LoadWAV_RW(fileIn, 1);
if (length)
{
FILESYSTEM_freeMemory(&mem);
}
if (sound == NULL)
{
fprintf(stderr, "Unable to load WAV file: %s\n", Mix_GetError());
}
}
SoundSystem::SoundSystem()
{
int audio_rate = 44100;
Uint16 audio_format = AUDIO_S16SYS;
int audio_channels = 2;
int audio_buffers = 1024;
if (Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers) != 0)
{
fprintf(stderr, "Unable to initialize audio: %s\n", Mix_GetError());
SDL_assert(0 && "Unable to initialize audio!");
}
}
void SoundSystem::playMusic(MusicTrack* music)
{
if(!music->m_isValid)
{
fprintf(stderr, "Invalid mix specified: %s\n", Mix_GetError());
}
if(Mix_PlayMusic(music->m_music, 0) == -1)
{
fprintf(stderr, "Unable to play Ogg file: %s\n", Mix_GetError());
}
}