diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-17 18:24:23 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-17 18:24:23 +0000 |
commit | f6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe (patch) | |
tree | 5214c580b9e6c17a499fa587660dbf949e892bf2 /libs/ardour/midi_patch_manager.cc | |
parent | da762129f19c28aff64f833b6ec09fba946faef6 (diff) |
switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_patch_manager.cc')
-rw-r--r-- | libs/ardour/midi_patch_manager.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libs/ardour/midi_patch_manager.cc b/libs/ardour/midi_patch_manager.cc index 307655bff8..a2522fe997 100644 --- a/libs/ardour/midi_patch_manager.cc +++ b/libs/ardour/midi_patch_manager.cc @@ -18,7 +18,6 @@ $Id$ */ -#include <sigc++/sigc++.h> #include <boost/shared_ptr.hpp> #include "pbd/compose.h" @@ -41,11 +40,9 @@ using namespace PBD::sys; MidiPatchManager* MidiPatchManager::_manager = 0; void -MidiPatchManager::set_session (Session& s) +MidiPatchManager::set_session (Session* s) { - _session = &s; - _session->GoingAway.connect (sigc::mem_fun (*this, &MidiPatchManager::drop_session)); - + SessionHandlePtr::set_session (s); refresh(); } @@ -56,6 +53,10 @@ MidiPatchManager::refresh() _master_devices_by_model.clear(); _all_models.clear(); + if (!_session) { + return; + } + path path_to_patches = _session->session_directory().midi_patch_path(); if (!exists(path_to_patches)) { @@ -93,10 +94,8 @@ MidiPatchManager::refresh() } void -MidiPatchManager::drop_session () +MidiPatchManager::session_going_away () { - _session = 0; - _documents.clear(); - _master_devices_by_model.clear(); - _all_models.clear(); + SessionHandlePtr::session_going_away (); + refresh (); } |