StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
AudioSystem.hpp
1#pragma once
2#ifdef StevEngine_AUDIO
3#include "audio/Emitter.hpp"
4#include <SDL.h>
5#include <vector>
6#include <cstdint>
7
8namespace StevEngine::Audio {
17 public:
24 void Init();
25
33 void Play(Emitter* emitter);
34
44 void PlayBackground(std::string path, bool loop = true, double volume = 1);
45
50 void Stop(int channel);
51
55 void StopBackground();
56
63 void SDLCALL ChannelCompleted(int channel);
64
72 void SetSoundsVolume(double volume);
73 double GetSoundsVolume() const { return volumeSounds; }
74
82 void SetMusicVolume(double volume);
83 double GetMusicVolume() const { return volumeMusic; }
84
89 std::vector<const char*> GetAudioDevices();
90
98 void SetAudioDevice(const char* device);
99 const char* GetActiveAudioDevice() const { return audioDevice; }
100
101 private:
105 void CleanUp();
106
107 double volumeSounds;
108 double volumeMusic;
109 const char* audioDevice;
110 int audioRate;
111 uint16_t audioFormat;
112 int audioChannels;
113 bool audioOpen = false;
114 std::vector<Emitter*> activeSounds;
115 Mix_Music* music = NULL;
116 };
117
119 extern AudioSystem audio;
120}
121#endif
Main audio system for handling sound playback and management.
Definition AudioSystem.hpp:16
void Init()
Initialize the audio system.
Definition AudioSystem.cpp:20
void StopBackground()
Stop currently playing background music.
Definition AudioSystem.cpp:82
void SetAudioDevice(const char *device)
Set active audio output device.
Definition AudioSystem.cpp:108
void SetMusicVolume(double volume)
Set volume for background music.
Definition AudioSystem.cpp:92
void PlayBackground(std::string path, bool loop=true, double volume=1)
Play background music.
Definition AudioSystem.cpp:61
void Stop(int channel)
Stop audio on a specific channel.
Definition AudioSystem.cpp:77
void SDLCALL ChannelCompleted(int channel)
Channel finished callback.
Definition AudioSystem.cpp:38
std::vector< const char * > GetAudioDevices()
Get list of available audio output devices.
Definition AudioSystem.cpp:97
void SetSoundsVolume(double volume)
Set volume for sound effects.
Definition AudioSystem.cpp:87
void Play(Emitter *emitter)
Play an audio emitter.
Definition AudioSystem.cpp:48
Component for playing sound effects from game objects.
Definition Emitter.hpp:17