mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2025-06-26 20:37:50 +02:00
Added module management system
This commit is contained in:
@ -108,6 +108,14 @@ void SinkManager::registerStream(std::string name, SinkManager::Stream* stream)
|
||||
|
||||
streams[name] = stream;
|
||||
streamNames.push_back(name);
|
||||
|
||||
// Load config
|
||||
core::configManager.aquire();
|
||||
bool available = core::configManager.conf["streams"].contains(name);
|
||||
core::configManager.release();
|
||||
if (available) { loadStreamConfig(name); }
|
||||
|
||||
streamRegisteredEvnt.emit(name);
|
||||
}
|
||||
|
||||
void SinkManager::unregisterStream(std::string name) {
|
||||
@ -115,10 +123,12 @@ void SinkManager::unregisterStream(std::string name) {
|
||||
spdlog::error("Cannot unregister stream '{0}', this stream doesn't exist", name);
|
||||
return;
|
||||
}
|
||||
spdlog::error("unregisterStream NOT IMPLEMENTED!!!!!!!");
|
||||
streamUnregisteredEvnt.emit(name);
|
||||
SinkManager::Stream* stream = streams[name];
|
||||
stream->stop();
|
||||
delete stream->sink;
|
||||
delete stream;
|
||||
streams.erase(name);
|
||||
streamNames.erase(std::remove(streamNames.begin(), streamNames.end(), name), streamNames.end());
|
||||
}
|
||||
|
||||
void SinkManager::startStream(std::string name) {
|
||||
|
@ -110,6 +110,9 @@ public:
|
||||
|
||||
std::vector<std::string> getStreamNames();
|
||||
|
||||
Event<std::string> streamRegisteredEvnt;
|
||||
Event<std::string> streamUnregisteredEvnt;
|
||||
|
||||
private:
|
||||
void loadStreamConfig(std::string name);
|
||||
void saveStreamConfig(std::string name);
|
||||
|
Reference in New Issue
Block a user