satdump/plugins/sdr_sources/remote_sdr_support/server/actions.cpp

48 lines
1.1 KiB
C++

#include "actions.h"
#include "main.h"
#include "streaming.h"
void action_sourceStop()
{
source_mtx.lock();
if (source_is_started)
{
source_should_stream = false;
source_stream_mtx.lock();
current_sample_source->stop();
current_sample_source->output_stream->stopReader();
current_sample_source->output_stream->stopWriter();
source_stream_mtx.unlock();
logger->info("Source stopped!");
source_is_started = false;
}
source_mtx.unlock();
}
void action_sourceStart()
{
source_mtx.lock();
source_stream_mtx.lock();
if (!source_is_started && current_sample_source)
{
current_sample_source->start();
source_should_stream = true;
source_is_started = true;
logger->info("Source started!");
}
source_stream_mtx.unlock();
source_mtx.unlock();
}
void action_sourceClose()
{
source_mtx.lock();
if (source_is_open && current_sample_source)
{
current_sample_source->close();
current_sample_source.reset();
source_is_open = false;
logger->info("Source closed!");
}
source_mtx.unlock();
}