From 53695cbc6086fcdeec6b39798d226c8fc08828cd Mon Sep 17 00:00:00 2001 From: Nathan Date: Thu, 8 May 2025 23:50:01 -0500 Subject: [PATCH] clear on pause --- ExampleModules.nix | 34 +++++++++++++++++++ .../ChatClientVoice/src/ChatClientVoice.cpp | 11 ++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/ExampleModules.nix b/ExampleModules.nix index 5285b78..bafbb44 100644 --- a/ExampleModules.nix +++ b/ExampleModules.nix @@ -249,6 +249,40 @@ }; + ChatServerVoice = pkgs.stdenvNoCC.mkDerivation { + + name = "ChatServerVoice"; + + src = ./.; + + nativeBuildInputs = with pkgs; [ + clang + ]; + + buildInputs = with pkgs; [ + gamenetworkingsockets + ]; + + buildPhase = '' + clang++ \ + modules/examples/ChatServerVoice/src/*.cpp \ + modules/ServerModule/src/*.cpp \ + -fpic -shared \ + -I ${pkgs.gamenetworkingsockets}/include/GameNetworkingSockets \ + -I src -I include -I . \ + -lGameNetworkingSockets \ + -DCHATSERVERVOICE_DYNAMIC \ + -Wall \ + -o $name + ''; + + installPhase = '' + mkdir -p $out/bin + cp $name $out/bin + ''; + + }; + ChatClient = pkgs.stdenvNoCC.mkDerivation { name = "ChatClient"; diff --git a/modules/examples/ChatClientVoice/src/ChatClientVoice.cpp b/modules/examples/ChatClientVoice/src/ChatClientVoice.cpp index 80a2be3..6420b47 100644 --- a/modules/examples/ChatClientVoice/src/ChatClientVoice.cpp +++ b/modules/examples/ChatClientVoice/src/ChatClientVoice.cpp @@ -132,6 +132,7 @@ void ChatClientVoice::run() { SDL_SetAudioStreamGain(mic, micVol); } else if(!cm->isConnected()) { SDL_PauseAudioStreamDevice(mic); + SDL_ClearAudioStream(mic); } if(!SDL_AudioStreamDevicePaused(speaker)) { @@ -142,6 +143,8 @@ void ChatClientVoice::run() { SDL_SetAudioStreamGain(speaker, speakerVol); } else if(!cm->isConnected()) { SDL_PauseAudioStreamDevice(speaker); + SDL_ClearAudioStream(speaker); + } static int avail = 0; @@ -157,8 +160,10 @@ void ChatClientVoice::run() { // if not testing, send to server. avail = SDL_min(len, SDL_GetAudioStreamAvailable(mic)); - avail = SDL_GetAudioStreamData(mic, buf, avail); - //cm->sendReliable(buf, avail); + if(avail > 10) { + avail = SDL_GetAudioStreamData(mic, buf, avail); + cm->sendReliable(buf, avail); + } } @@ -212,6 +217,8 @@ bool ChatClientVoice::onEvent(const Archimedes::Event& event) { SDL_PauseAudioStreamDevice(mic); SDL_PauseAudioStreamDevice(speaker); + SDL_ClearAudioStream(mic); + SDL_ClearAudioStream(speaker); break; }