diff options
author | David Robillard <d@drobilla.net> | 2013-02-02 02:16:23 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-02-02 02:16:23 +0000 |
commit | d049b582e1db60ee0f6fd02a40202145488c7288 (patch) | |
tree | 4b30ba2522a14863ce76f672f537dcca0c14c34e /src/server/Broadcaster.cpp | |
parent | 73a01c1bd8d6cf92522a433cd2b0bd491f2af99a (diff) | |
download | ingen-d049b582e1db60ee0f6fd02a40202145488c7288.tar.gz ingen-d049b582e1db60ee0f6fd02a40202145488c7288.tar.bz2 ingen-d049b582e1db60ee0f6fd02a40202145488c7288.zip |
Add option to enable/disable canvas animation (fix/avoid #879).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5016 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/Broadcaster.cpp')
-rw-r--r-- | src/server/Broadcaster.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/server/Broadcaster.cpp b/src/server/Broadcaster.cpp index f3bc96f7..8e53164f 100644 --- a/src/server/Broadcaster.cpp +++ b/src/server/Broadcaster.cpp @@ -26,10 +26,16 @@ namespace Ingen { namespace Server { +Broadcaster::Broadcaster() + : _must_broadcast(false) + , _bundle_depth(0) +{} + Broadcaster::~Broadcaster() { Glib::Mutex::Lock lock(_clients_mutex); _clients.clear(); + _broadcastees.clear(); } /** Register a client to receive messages over the notification band. @@ -51,9 +57,21 @@ Broadcaster::unregister_client(const Raul::URI& uri) { Glib::Mutex::Lock lock(_clients_mutex); const size_t erased = _clients.erase(uri); + _broadcastees.erase(uri); return (erased > 0); } +void +Broadcaster::set_broadcast(const Raul::URI& client, bool broadcast) +{ + if (broadcast) { + _broadcastees.insert(client); + } else { + _broadcastees.erase(client); + } + _must_broadcast.store(!_broadcastees.empty()); +} + /** Looks up the client with the given source @a uri (which is used as the * unique identifier for registered clients). */ |