1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-22 17:49:43 +01:00

Consolidate SoundSystem into Music.

It's just some small wrappers, and SoundSystem can be inlined trivially.
This commit is contained in:
Ethan Lee 2021-12-26 08:38:16 -05:00
parent f723e03871
commit c87f0e1a0c
6 changed files with 80 additions and 85 deletions

View file

@ -99,7 +99,6 @@ set(VVV_SRC
src/Screen.cpp src/Screen.cpp
src/Script.cpp src/Script.cpp
src/Scripts.cpp src/Scripts.cpp
src/SoundSystem.cpp
src/Spacestation2.cpp src/Spacestation2.cpp
src/TerminalScripts.cpp src/TerminalScripts.cpp
src/Textbox.cpp src/Textbox.cpp

View file

@ -5,6 +5,7 @@
#include <physfsrwops.h> #include <physfsrwops.h>
#include "BinaryBlob.h" #include "BinaryBlob.h"
#include "FileSystemUtils.h"
#include "Game.h" #include "Game.h"
#include "Graphics.h" #include "Graphics.h"
#include "Map.h" #include "Map.h"
@ -12,6 +13,59 @@
#include "UtilityClass.h" #include "UtilityClass.h"
#include "Vlogging.h" #include "Vlogging.h"
/* Begin SDL_mixer wrapper */
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;
}
}
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);
if (sound == NULL)
{
vlog_error("Unable to load WAV file: %s", Mix_GetError());
}
}
SoundSystem::SoundSystem(void)
{
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)
{
vlog_error("Unable to initialize audio: %s", Mix_GetError());
SDL_assert(0 && "Unable to initialize audio!");
}
}
/* End SDL_mixer wrapper */
musicclass::musicclass(void) musicclass::musicclass(void)
{ {
safeToProcessMusic= false; safeToProcessMusic= false;

View file

@ -4,7 +4,32 @@
#include <vector> #include <vector>
#include "BinaryBlob.h" #include "BinaryBlob.h"
#include "SoundSystem.h" #include <SDL_mixer.h>
/* SDL_mixer object wrappers */
class MusicTrack
{
public:
MusicTrack(SDL_RWops *rw);
Mix_Music *m_music;
bool m_isValid;
};
class SoundTrack
{
public:
SoundTrack(const char* fileName);
Mix_Chunk *sound;
};
/* SDL_mixer init wrapper */
class SoundSystem
{
public:
SoundSystem(void);
};
#define musicroom(rx, ry) ((rx) + ((ry) * 20)) #define musicroom(rx, ry) ((rx) + ((ry) * 20))

View file

@ -1,55 +0,0 @@
#include "SoundSystem.h"
#include <SDL.h>
#include "FileSystemUtils.h"
#include "Vlogging.h"
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;
}
}
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);
if (sound == NULL)
{
vlog_error("Unable to load WAV file: %s", Mix_GetError());
}
}
SoundSystem::SoundSystem(void)
{
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)
{
vlog_error("Unable to initialize audio: %s", Mix_GetError());
SDL_assert(0 && "Unable to initialize audio!");
}
}

View file

@ -1,27 +0,0 @@
#ifndef SOUNDSYSTEM_H
#define SOUNDSYSTEM_H
#include <SDL_mixer.h>
class MusicTrack
{
public:
MusicTrack(SDL_RWops *rw);
Mix_Music *m_music;
bool m_isValid;
};
class SoundTrack
{
public:
SoundTrack(const char* fileName);
Mix_Chunk *sound;
};
class SoundSystem
{
public:
SoundSystem(void);
};
#endif /* SOUNDSYSTEM_H */

View file

@ -24,7 +24,6 @@
#include "RenderFixed.h" #include "RenderFixed.h"
#include "Screen.h" #include "Screen.h"
#include "Script.h" #include "Script.h"
#include "SoundSystem.h"
#include "UtilityClass.h" #include "UtilityClass.h"
#include "Vlogging.h" #include "Vlogging.h"