obs/signal-handler: Update to new classes

This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2022-05-28 20:01:12 +02:00
parent b108362ee1
commit 3667426f49

View file

@ -19,6 +19,7 @@
#pragma once #pragma once
#include "common.hpp" #include "common.hpp"
#include "obs/obs-source.hpp"
#include "util/util-event.hpp" #include "util/util-event.hpp"
namespace streamfx::obs { namespace streamfx::obs {
@ -68,7 +69,7 @@ namespace streamfx::obs {
// Audio Capture is also here, as it could be considered a signal. // Audio Capture is also here, as it could be considered a signal.
class audio_signal_handler { class audio_signal_handler {
std::shared_ptr<obs_source_t> _keepalive; ::streamfx::obs::source _keepalive;
static void handle_audio(void* ptr, obs_source_t*, const struct audio_data* audio_data, bool muted) noexcept static void handle_audio(void* ptr, obs_source_t*, const struct audio_data* audio_data, bool muted) noexcept
try { try {
@ -78,17 +79,17 @@ namespace streamfx::obs {
} }
public: public:
audio_signal_handler(std::shared_ptr<obs_source_t> keepalive) : _keepalive(keepalive), event() audio_signal_handler(::streamfx::obs::source const& keepalive) : _keepalive(keepalive), event()
{ {
obs_source_add_audio_capture_callback(_keepalive.get(), handle_audio, this); obs_source_add_audio_capture_callback(_keepalive, handle_audio, this);
} }
virtual ~audio_signal_handler() virtual ~audio_signal_handler()
{ {
event.clear(); event.clear();
obs_source_remove_audio_capture_callback(_keepalive.get(), handle_audio, this); obs_source_remove_audio_capture_callback(_keepalive, handle_audio, this);
} }
streamfx::util::event<std::shared_ptr<obs_source_t>, const struct audio_data*, bool> event; streamfx::util::event<::streamfx::obs::source, const struct audio_data*, bool> event;
}; };
} // namespace streamfx::obs } // namespace streamfx::obs