mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2025-08-08 00:25:38 +02:00
Merge pull request #290 from Detanup01/voicechat-fix
fix VoiceSystem initialization
This commit is contained in:
commit
1d2e40f29b
2 changed files with 10 additions and 8 deletions
|
@ -82,4 +82,4 @@ public:
|
|||
void QueueIncomingVoice(uint64_t userId, const uint8_t* data, size_t len);
|
||||
};
|
||||
|
||||
#endif // VOICECHAT_INCLUDE_H
|
||||
#endif // VOICECHAT_INCLUDE_H
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
#include "dll/voicechat.h"
|
||||
|
||||
static std::atomic<bool> isInited{ false };
|
||||
|
||||
bool VoiceChat::InitVoiceSystem() {
|
||||
static std::atomic<int> initCount{ 0 };
|
||||
if (initCount++ == 0) {
|
||||
if (!isInited) {
|
||||
if (Pa_Initialize() != paNoError) {
|
||||
PRINT_DEBUG("PortAudio initialization failed");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
isInited = true;
|
||||
}
|
||||
isRecording = false;
|
||||
isPlaying = false;
|
||||
|
@ -17,9 +19,9 @@ bool VoiceChat::InitVoiceSystem() {
|
|||
}
|
||||
|
||||
void VoiceChat::ShutdownVoiceSystem() {
|
||||
static std::atomic<int> initCount{ 1 };
|
||||
if (--initCount == 0) {
|
||||
Pa_Terminate();
|
||||
if (isInited) {
|
||||
Pa_Terminate();
|
||||
isInited = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -250,4 +252,4 @@ void VoiceChat::QueueIncomingVoice(uint64_t userId, const uint8_t* data, size_t
|
|||
if (!data || len == 0) return;
|
||||
std::lock_guard<std::mutex> lock(playbackQueueMutex);
|
||||
playbackQueue.push({ userId, std::vector<uint8_t>(data, data + len) });
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue