AudioEngine::~AudioEngine ()
{
+ config_connection.disconnect ();
+
{
- Glib::Mutex::Lock tm (_process_lock);
+ Glib::Threads::Mutex::Lock tm (_process_lock);
session_removed.signal ();
if (_running) {
AudioEngine::_connect_callback (jack_port_id_t id_a, jack_port_id_t id_b, int conn, void* arg)
{
AudioEngine* ae = static_cast<AudioEngine*> (arg);
+ ae->connect_callback (id_a, id_b, conn);
+}
- if (ae->port_remove_in_progress) {
+void
+AudioEngine::connect_callback (jack_port_id_t id_a, jack_port_id_t id_b, int conn)
+{
+ if (port_remove_in_progress) {
return;
}
- GET_PRIVATE_JACK_POINTER (ae->_jack);
+ GET_PRIVATE_JACK_POINTER (_jack);
jack_port_t* jack_port_a = jack_port_by_id (_priv_jack, id_a);
jack_port_t* jack_port_b = jack_port_by_id (_priv_jack, id_b);
boost::shared_ptr<Port> port_a;
boost::shared_ptr<Port> port_b;
+ Ports::iterator x;
+ boost::shared_ptr<Ports> pr = ports.reader ();
- boost::shared_ptr<Ports> pr = ae->ports.reader ();
- Ports::iterator i = pr->begin ();
- while (i != pr->end() && (port_a == 0 || port_b == 0)) {
- if (jack_port_a == i->second->jack_port()) {
- port_a = i->second;
- } else if (jack_port_b == i->second->jack_port()) {
- port_b = i->second;
- }
- ++i;
+
+ x = pr->find (make_port_name_relative (jack_port_name (jack_port_a)));
+ if (x != pr->end()) {
+ port_a = x->second;
+ }
+
+ x = pr->find (make_port_name_relative (jack_port_name (jack_port_b)));
+ if (x != pr->end()) {
+ port_b = x->second;
}
- ae->PortConnectedOrDisconnected (
+ PortConnectedOrDisconnected (
port_a, jack_port_name (jack_port_a),
port_b, jack_port_name (jack_port_b),
conn == 0 ? false : true
AudioEngine::process_callback (pframes_t nframes)
{
GET_PRIVATE_JACK_POINTER_RET(_jack,0);
- Glib::Mutex::Lock tm (_process_lock, Glib::TRY_LOCK);
+ Glib::Threads::Mutex::Lock tm (_process_lock, Glib::Threads::TRY_LOCK);
PT_TIMING_REF;
PT_TIMING_CHECK (1);
}
{
- Glib::Mutex::Lock lm (_process_lock);
+ Glib::Threads::Mutex::Lock lm (_process_lock);
boost::shared_ptr<Ports> p = ports.reader();
{
if (m_meter_thread == 0) {
g_atomic_int_set (&m_meter_exit, 0);
- m_meter_thread = Glib::Thread::create (boost::bind (&AudioEngine::meter_thread, this),
- 500000, true, true, Glib::THREAD_PRIORITY_NORMAL);
+ m_meter_thread = Glib::Threads::Thread::create (boost::bind (&AudioEngine::meter_thread, this));
}
}
void
AudioEngine::set_session (Session *s)
{
- Glib::Mutex::Lock pl (_process_lock);
+ Glib::Threads::Mutex::Lock pl (_process_lock);
SessionHandlePtr::set_session (s);
void
AudioEngine::remove_session ()
{
- Glib::Mutex::Lock lm (_process_lock);
+ Glib::Threads::Mutex::Lock lm (_process_lock);
if (_running) {
}
{
- Glib::Mutex::Lock lm (_process_lock);
+ Glib::Threads::Mutex::Lock lm (_process_lock);
jack_client_close (_priv_jack);
_jack = 0;
}
delete _instance;
_instance = 0;
}
+