From ab9e5f47b38ec6cd0f5839805607596ea2fd2587 Mon Sep 17 00:00:00 2001 From: kotofyt Date: Wed, 27 May 2026 02:23:17 +0300 Subject: [PATCH] few additions to sounds --- engine/miniaudio.cpp | 37 ++++++++++++++++++++++++++++++++++++- game/client/game.cpp | 3 --- public/iaudio.h | 5 +++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/engine/miniaudio.cpp b/engine/miniaudio.cpp index 50b770a..f379f29 100644 --- a/engine/miniaudio.cpp +++ b/engine/miniaudio.cpp @@ -15,9 +15,14 @@ public: virtual double GetPlayTime() override; virtual double Stop() override; virtual void Continue() override; - + virtual bool BIsPlaying() override; + + virtual void SetIs3D( bool b ) override; + virtual void SetIsLooping( bool b ) override; virtual void SetDirection( Vector v ) override; + virtual void SetTimeScale( float fValue ) override; virtual void SetVolume( float fValue ) override; + virtual void SetPitch( float fValue ) override; ma_sound m_sound; CMiniAudio *m_pAudio; @@ -70,19 +75,48 @@ double CMiniAudioPlayer::Stop() void CMiniAudioPlayer::Continue() { + ma_sound_start(&m_sound); +} +bool CMiniAudioPlayer::BIsPlaying() +{ + return ma_sound_is_playing(&m_sound); +} + +void CMiniAudioPlayer::SetIs3D( bool b ) +{ + ma_sound_set_spatialization_enabled(&m_sound, b); +} + +void CMiniAudioPlayer::SetIsLooping( bool b ) +{ + ma_sound_set_looping(&m_sound, b); } void CMiniAudioPlayer::SetDirection( Vector v ) +{ + ma_sound_set_position(&m_sound, v.x, v.y, v.z); + +} + + +void CMiniAudioPlayer::SetTimeScale( float fValue ) { } void CMiniAudioPlayer::SetVolume( float fValue ) { + ma_sound_set_volume(&m_sound, fValue); } +void CMiniAudioPlayer::SetPitch( float fValue ) +{ + ma_sound_set_pitch(&m_sound, fValue); +} + + IAudioPlayer *CMiniAudio::SpawnPlayer() { CMiniAudioPlayer *pPlayer; @@ -110,6 +144,7 @@ void CMiniAudioManager::Init() V_printf("ma_engine_init failed\n"); } r = ma_engine_start(&m_engine); + ma_engine_listener_set_position(&m_engine, 0, 0, 0, 0); if ( r != MA_SUCCESS ) { V_printf("ma_engine_start failed\n"); diff --git a/game/client/game.cpp b/game/client/game.cpp index a9f84d2..1274601 100644 --- a/game/client/game.cpp +++ b/game/client/game.cpp @@ -74,9 +74,6 @@ void CFunnyGameBridge::Init() g_pKotUI = (IKotUIManager*)fnEngineFactory(KOT_UI_INTEFACE_VERSION, NULL); g_pAudioManager = (IAudioManager*)fnEngineFactory(AUDIO_MANAGER_INTERFACE_VERSION, NULL); g_pAudioManager->Init(); - IAudio *pAudio = g_pAudioManager->CreateAudio("game/core/sounds/bonk.wav"); - IAudioPlayer *pAudioPlayer = pAudio->SpawnPlayer(); - pAudioPlayer->StartAt(0.35); g_pKotUI->ConnectInterface(g_pRenderContext, RENDER_CONTEXT_INTERFACE_VERSION); g_pKotUI->Init(); diff --git a/public/iaudio.h b/public/iaudio.h index 9356fbf..ac3cac3 100644 --- a/public/iaudio.h +++ b/public/iaudio.h @@ -12,9 +12,14 @@ public: virtual double GetPlayTime() = 0; virtual double Stop() = 0; virtual void Continue() = 0; + virtual bool BIsPlaying() = 0; + virtual void SetIs3D( bool b ) = 0; + virtual void SetIsLooping( bool b ) = 0; virtual void SetDirection( Vector v ) = 0; + virtual void SetTimeScale( float fValue ) = 0; virtual void SetVolume( float fValue ) = 0; + virtual void SetPitch( float fValue ) = 0; }; abstract_class IAudio