diff --git a/CMakeLists.txt b/CMakeLists.txt index a0c1dcf..0dedac4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,8 +324,6 @@ SET(PROJECT_PRIVATE_SOURCE "${PROJECT_SOURCE_DIR}/source/obs/gs/gs-vertex.cpp" "${PROJECT_SOURCE_DIR}/source/obs/gs/gs-vertexbuffer.hpp" "${PROJECT_SOURCE_DIR}/source/obs/gs/gs-vertexbuffer.cpp" - "${PROJECT_SOURCE_DIR}/source/obs/obs-audio-capture.hpp" - "${PROJECT_SOURCE_DIR}/source/obs/obs-audio-capture.cpp" "${PROJECT_SOURCE_DIR}/source/obs/obs-tools.hpp" "${PROJECT_SOURCE_DIR}/source/obs/obs-tools.cpp" "${PROJECT_SOURCE_DIR}/source/obs/obs-source.hpp" diff --git a/source/obs/obs-audio-capture.cpp b/source/obs/obs-audio-capture.cpp deleted file mode 100644 index fee690e..0000000 --- a/source/obs/obs-audio-capture.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Modern effects for a modern Streamer - * Copyright (C) 2018 Michael Fabian Dirks - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "obs-audio-capture.hpp" - -void obs::audio_capture::audio_capture_cb(void* data, obs_source_t*, const struct audio_data* audio, bool muted) -{ - auto self = reinterpret_cast(data); - if (self->on.data) { - self->on.data(self->m_self, audio, muted); - } -} - -void obs::audio_capture::on_data_listen() -{ - if (this->m_self) { - obs_source_add_audio_capture_callback(this->m_self->get(), audio_capture_cb, this); - } -} - -void obs::audio_capture::on_data_silence() -{ - if (this->m_self) { - obs_source_remove_audio_capture_callback(this->m_self->get(), audio_capture_cb, this); - } -} - -obs::audio_capture::audio_capture(obs_source_t* source) -{ - this->m_self = std::make_shared(source, true, true); - this->on.data.set_listen_callback(std::bind(&obs::audio_capture::on_data_listen, this)); - this->on.data.set_silence_callback(std::bind(&obs::audio_capture::on_data_silence, this)); -} - -obs::audio_capture::audio_capture(std::shared_ptr source) : audio_capture(source->get()) {} - -obs::audio_capture::~audio_capture() -{ - on.data.clear(); - this->m_self.reset(); -} diff --git a/source/obs/obs-audio-capture.hpp b/source/obs/obs-audio-capture.hpp deleted file mode 100644 index 6fc01b3..0000000 --- a/source/obs/obs-audio-capture.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Modern effects for a modern Streamer - * Copyright (C) 2018 Michael Fabian Dirks - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#pragma once -#include -#include -#include "obs-source.hpp" - -// OBS -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4201) -#endif -#include -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -namespace obs { - class audio_capture { - std::shared_ptr m_self; - - static void audio_capture_cb(void*, obs_source_t*, struct audio_data const*, bool); - - void on_data_listen(); - void on_data_silence(); - - public: - audio_capture(obs_source_t* source); - - audio_capture(std::shared_ptr source); - - ~audio_capture(); - - public /*copy*/: - audio_capture(audio_capture const& other) = delete; - audio_capture& operator=(audio_capture const& other) = delete; - - public /*move*/: - audio_capture(audio_capture&& other) = delete; - audio_capture& operator=(audio_capture&& other) = delete; - - public /*events*/: - struct { - //! Called if there is new audio data. - // - // @param std::shared_ptr Source - // @param audio_data const* const Audio Data - // @param bool Muted - util::event, audio_data const* const, bool> data; - } on; - }; -} // namespace obs