diff options
Diffstat (limited to 'src/JackDriver.h')
-rw-r--r-- | src/JackDriver.h | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/JackDriver.h b/src/JackDriver.h index 6b69900..db74f77 100644 --- a/src/JackDriver.h +++ b/src/JackDriver.h @@ -1,11 +1,11 @@ /* This file is part of Patchage. Copyright (C) 2005 Dave Robillard. * - * Om is free software; you can redistribute it and/or modify it under the + * Patchage is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * - * Om is distributed in the hope that it will be useful, but WITHOUT ANY + * Patchage is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. * @@ -18,12 +18,15 @@ #define JACKDRIVER_H #include <iostream> -#include <jack/jack.h> #include <string> +#include <boost/shared_ptr.hpp> +#include <jack/jack.h> +#include "Mutex.h" #include "Driver.h" class Patchage; class PatchageFlowCanvas; class PatchagePort; +class PatchageModule; using std::string; @@ -45,13 +48,11 @@ public: bool is_attached() const { return (m_client != NULL); } void refresh(); - bool connect(const PatchagePort* const src_port, const PatchagePort* const dst_port); - bool disconnect(const PatchagePort* const src_port, const PatchagePort* const dst_port); - /*bool connect(const string& src_module_name, const string& src_port_name, - const string& dst_module_name, const string& dest_port_name); - - bool disconnect(const string& src_module_name, const string& src_port_name, - const string& dst_module_name, const string& dest_port_name);*/ + bool connect(boost::shared_ptr<PatchagePort> src, + boost::shared_ptr<PatchagePort> dst); + + bool disconnect(boost::shared_ptr<PatchagePort> src, + boost::shared_ptr<PatchagePort> dst); private: Patchage* m_app; @@ -59,6 +60,16 @@ private: jack_client_t* m_client; + Mutex m_mutex; + + list<string> m_added_ports; + list<string> m_removed_ports; + + boost::shared_ptr<PatchagePort> create_port(boost::shared_ptr<PatchageModule> parent, + jack_port_t* port); + + void destroy_all_ports(); + static void jack_port_registration_cb(jack_port_id_t port_id, int registered, void* controller); static int jack_graph_order_cb(void* controller); static void jack_shutdown_cb(void* controller); |