diff options
Diffstat (limited to 'daemon/src/routing.cpp')
-rw-r--r-- | daemon/src/routing.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/daemon/src/routing.cpp b/daemon/src/routing.cpp index 709d815..15ae555 100644 --- a/daemon/src/routing.cpp +++ b/daemon/src/routing.cpp @@ -1,14 +1,27 @@ #include "routing.h" +#include <chrono> #include <iostream> namespace midi_router { void -Router::route(Route_Map const & config) const +Router::route(Route_Map const & config) { + Message m; + if (m_queue.wait_dequeue_timed(m, std::chrono::milliseconds(500))) + { + if (!config.contains(*m.source_id) || !config.at(*m.source_id).contains(m.type())) + { + return; + } + for (auto const & target: config.at(*m.source_id).at(m.type())) + { + target(m.bytes); + } + } } void |