diff --git a/native/CMakeLists.txt b/native/CMakeLists.txt index 73d17e0..77c5719 100644 --- a/native/CMakeLists.txt +++ b/native/CMakeLists.txt @@ -1,9 +1,10 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.16) project(TeaClient-Natives VERSION 1.0.0) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded) # set(CMAKE_VERBOSE_MAKEFILE ON) if (CMAKE_INCLUDE_FILE AND NOT CMAKE_INCLUDE_FILE STREQUAL "") @@ -102,24 +103,11 @@ endfunction() #Setup the compiler (Cant be done within a function!) if (MSVC) - set(CompilerFlags - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_MINSIZEREL - CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_MINSIZEREL - CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - foreach(CompilerFlag ${CompilerFlags}) - string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") - string(REGEX REPLACE "/O\\S+($| )" "/02" ${CompilerFlag} "${${CompilerFlag}}") - endforeach() - #add_compile_options("/MTd") - add_compile_options("/EHsc") #We require exception handling + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) + add_compile_options(/EHsc) #We require exception handling add_compile_options(/wd4275) # needs to have dll-interface to be used by clients of class add_compile_options(/wd4251) # needs to have dll-interface to be used by clients of class + add_compile_options(/std:c++17) else() #This is a bad thing here! function(resolve_library VARIABLE FALLBACK PATHS) diff --git a/native/serverconnection/src/audio/AudioInput.cpp b/native/serverconnection/src/audio/AudioInput.cpp index ecf5126..8f5e11f 100644 --- a/native/serverconnection/src/audio/AudioInput.cpp +++ b/native/serverconnection/src/audio/AudioInput.cpp @@ -10,41 +10,13 @@ #include "./AudioOutput.h" #include "./AudioLevelMeter.h" #include "./processing/AudioProcessor.h" +#include "./AudioEventLoop.h" #include "../logger.h" -#include "AudioEventLoop.h" using namespace std; using namespace tc; using namespace tc::audio; -AudioConsumer::AudioConsumer(size_t channel_count, size_t sample_rate, size_t frame_size) : - channel_count{channel_count}, - sample_rate{sample_rate}, - frame_size{frame_size} { - if(this->frame_size > 0) { - this->reframer = std::make_unique(channel_count, frame_size); - this->reframer->on_frame = [&](const void* buffer) { this->handle_framed_data(buffer, this->frame_size); }; - } -} - -void AudioConsumer::handle_framed_data(const void *buffer, size_t samples) { - std::unique_lock read_callback_lock(this->on_read_lock); - auto function = this->on_read; /* copy */ - read_callback_lock.unlock(); - if(!function) - return; - - function(buffer, samples); -} - -void AudioConsumer::process_data(const void *buffer, size_t samples) { - if(this->reframer) { - this->reframer->process(buffer, samples); - } else { - this->handle_framed_data(buffer, samples); - } -} - extern tc::audio::AudioOutput* global_audio_output; AudioInput::AudioInput(size_t channels, size_t sample_rate) : channel_count_{channels}, diff --git a/native/serverconnection/src/audio/AudioInput.h b/native/serverconnection/src/audio/AudioInput.h index 7059ba0..5168f0c 100644 --- a/native/serverconnection/src/audio/AudioInput.h +++ b/native/serverconnection/src/audio/AudioInput.h @@ -18,25 +18,6 @@ namespace tc::audio { class AudioProcessor; class AudioInputAudioLevelMeter; - class AudioConsumer { - friend class AudioInput; - public: - size_t const channel_count; - size_t const sample_rate; - - size_t const frame_size; - - std::mutex on_read_lock{}; /* locked to access the function */ - std::function on_read; - private: - AudioConsumer(size_t channel_count, size_t sample_rate, size_t frame_size); - - std::unique_ptr reframer; - - void process_data(const void* /* buffer */, size_t /* samples */); - void handle_framed_data(const void* /* buffer */, size_t /* samples */); - }; - struct AudioInputBufferInfo { size_t sample_count{0}; std::optional vad_detected{}; diff --git a/native/serverconnection/src/audio/codec/Converter.h b/native/serverconnection/src/audio/codec/Converter.h index f4af235..44c1ce6 100644 --- a/native/serverconnection/src/audio/codec/Converter.h +++ b/native/serverconnection/src/audio/codec/Converter.h @@ -101,9 +101,6 @@ namespace tc::audio::codec { case AudioCodec::OpusMusic: return "opus music"; - case AudioCodec::Flac: - return "flac"; - case AudioCodec::Unknown: return "unknown"; diff --git a/native/serverconnection/src/audio/js/AudioConsumer.h b/native/serverconnection/src/audio/js/AudioConsumer.h index 7a6eb98..8eb8834 100644 --- a/native/serverconnection/src/audio/js/AudioConsumer.h +++ b/native/serverconnection/src/audio/js/AudioConsumer.h @@ -9,7 +9,6 @@ namespace tc::audio { class AudioInput; - class AudioConsumer; namespace filter { class Filter;