Skip to content

Commit cd938e0

Browse files
authored
Merge pull request #95 from YGNI-RType/dev
hotfix AudioManager: float conversion and transmission through network lost volume data
2 parents b88ef61 + 1a9713f commit cd938e0

3 files changed

Lines changed: 9 additions & 10 deletions

File tree

include/GEngine/libdev/components/driver/output/Sound.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ struct Sound : public gengine::Component<Sound> {
2525
struct Music : public gengine::Component<Music> {
2626
bool pause = false;
2727
std::uint64_t musicId;
28-
float volume;
28+
uint16_t volume;
2929

30-
Music(std::uint64_t musicId, float volume = 1)
30+
Music(std::uint64_t musicId, uint16_t volume = UINT16_MAX)
3131
: musicId(musicId)
3232
, volume(volume) {
3333
}

include/GEngine/libdev/systems/driver/output/AudioManager.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,12 @@ class AudioManager
5656
void onMusic(gengine::system::event::driver::output::Music &e) {
5757
auto &musics = getComponents<gengine::component::driver::output::Music>();
5858
auto &netSends = getComponents<geg::component::network::NetSend>();
59-
60-
if (!musics.size())
61-
spawnEntity(gengine::component::driver::output::Music(getMusicIdByPath(e.path)),
59+
if (!musics.size()) {
60+
spawnEntity(gengine::component::driver::output::Music(getMusicIdByPath(e.path), e.volume * UINT16_MAX),
6261
geg::component::network::NetSend());
63-
else {
62+
} else {
6463
getMusicComponent().musicId = getMusicIdByPath(e.path);
65-
getMusicComponent().volume = e.volume;
64+
getMusicComponent().volume = e.volume * UINT16_MAX;
6665
for (auto [e, _unused, netSend] : gengine::Zip(musics, netSends)) {
6766
netSend.update();
6867
break;

source/GEngine/libdev/systems/driver/output/AudioManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ void AudioManager::onMainLoop(geg::event::RenderLoop &e) {
6868
StopMusicStream(getMusicById(m_currentMusicId));
6969
m_currentMusicId = music.musicId;
7070
PlayMusicStream(getMusicById(m_currentMusicId));
71-
SetMusicVolume(getMusicById(m_currentMusicId), music.volume);
71+
SetMusicVolume(getMusicById(m_currentMusicId), float(music.volume) / UINT16_MAX);
7272
}
7373
}
7474

@@ -95,10 +95,10 @@ void AudioManager::onMainLoop(geg::event::RenderLoop &e) {
9595
gengine::component::driver::output::Music &AudioManager::getMusicComponent(void) {
9696
auto &musics = getComponents<gengine::component::driver::output::Music>();
9797

98-
if (!musics.size())
99-
THROW_WARNING("Music component not initilazed");
10098
for (auto &[_, m] : musics)
10199
return m;
100+
101+
THROW_WARNING("Music component not initilazed");
102102
}
103103

104104
void AudioManager::onSoundPlayed(

0 commit comments

Comments
 (0)