mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-31 02:14:09 +03:00
Hello WWWWWWorld!
This commit is contained in:
68
desktop_version/src/SoundSystem.cpp
Normal file
68
desktop_version/src/SoundSystem.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
#include <SDL.h>
|
||||
#include "SoundSystem.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);
|
||||
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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user