From dd3483bc3b11dce64a38106275d1eb5642d92b46 Mon Sep 17 00:00:00 2001 From: B. Watson Date: Thu, 22 Jun 2017 13:06:49 -0400 Subject: audio/sooperlooper: Fix build for -current. Signed-off-by: B. Watson --- audio/sooperlooper/04-build_with_wx_30.patch | 177 ------ audio/sooperlooper/libsigc.patch | 96 --- .../sooperlooper/patches/04-build_with_wx_30.patch | 177 ++++++ audio/sooperlooper/patches/06-use_sigc_bind.patch | 655 +++++++++++++++++++++ audio/sooperlooper/patches/libsigc.patch | 96 +++ audio/sooperlooper/sooperlooper.SlackBuild | 12 +- 6 files changed, 937 insertions(+), 276 deletions(-) delete mode 100644 audio/sooperlooper/04-build_with_wx_30.patch delete mode 100644 audio/sooperlooper/libsigc.patch create mode 100644 audio/sooperlooper/patches/04-build_with_wx_30.patch create mode 100644 audio/sooperlooper/patches/06-use_sigc_bind.patch create mode 100644 audio/sooperlooper/patches/libsigc.patch (limited to 'audio/sooperlooper') diff --git a/audio/sooperlooper/04-build_with_wx_30.patch b/audio/sooperlooper/04-build_with_wx_30.patch deleted file mode 100644 index fee40e8f98..0000000000 --- a/audio/sooperlooper/04-build_with_wx_30.patch +++ /dev/null @@ -1,177 +0,0 @@ -Author: Jaromír Mikeš , Olly Betts -Description: build against wx 3.0. -Forwarded: yes - -Index: sooperlooper/src/gui/main_panel.cpp -=================================================================== ---- sooperlooper.orig/src/gui/main_panel.cpp -+++ sooperlooper/src/gui/main_panel.cpp -@@ -448,7 +448,7 @@ MainPanel::init_loopers (int count) - while (count < (int)_looper_panels.size()) { - looperpan = _looper_panels.back(); - _looper_panels.pop_back(); -- _main_sizer->Remove(looperpan); -+ _main_sizer->Detach(looperpan); - looperpan->Destroy(); - } - } -@@ -1277,7 +1277,7 @@ void MainPanel::misc_action (bool releas - } - - -- wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); -+ wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); - - if ( !filename.empty() ) - { -@@ -1296,7 +1296,7 @@ void MainPanel::misc_action (bool releas - index = 0; - } - -- wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); - - if ( !filename.empty() ) - { -@@ -1408,7 +1408,7 @@ void MainPanel::set_curr_loop (int index - - void MainPanel::do_load_session () - { -- wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); - - if ( !filename.empty() ) - { -@@ -1419,7 +1419,7 @@ void MainPanel::do_load_session () - - void MainPanel::do_save_session (bool write_audio) - { -- wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); -+ wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); - - if ( !filename.empty() ) - { -Index: sooperlooper/src/gui/pix_button.cpp -=================================================================== ---- sooperlooper.orig/src/gui/pix_button.cpp -+++ sooperlooper/src/gui/pix_button.cpp -@@ -250,7 +250,7 @@ PixButton::OnMouseEvents (wxMouseEvent & - pt.x += bounds.x; - pt.y += bounds.y; - -- if (bounds.Inside(pt)) { -+ if (bounds.Contains(pt)) { - clicked (get_mouse_button(ev)); // emit - - if (ev.MiddleUp() && ev.ControlDown()) { -Index: sooperlooper/src/gui/looper_panel.cpp -=================================================================== ---- sooperlooper.orig/src/gui/looper_panel.cpp -+++ sooperlooper/src/gui/looper_panel.cpp -@@ -1428,7 +1428,7 @@ LooperPanel::clicked_events (int button, - if (cmd == wxT("save")) - { - wxString filename = _mainpanel->do_file_selector (wxT("Choose file to save loop"), -- wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); -+ wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); - - if ( !filename.empty() ) - { -@@ -1442,7 +1442,7 @@ LooperPanel::clicked_events (int button, - } - else if (cmd == wxT("load")) - { -- wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxFD_OPEN|wxFD_CHANGE_DIR); - - if ( !filename.empty() ) - { -Index: sooperlooper/src/gui/keyboard_target.cpp -=================================================================== ---- sooperlooper.orig/src/gui/keyboard_target.cpp -+++ sooperlooper/src/gui/keyboard_target.cpp -@@ -553,10 +553,10 @@ KeyboardTarget::keycode_from_name (const - keycode = WXK_RETURN; - } - else if ( keyname == wxT("PGUP") ) { -- keycode = WXK_PRIOR; -+ keycode = WXK_PAGEUP; - } - else if ( keyname == wxT("PGDN") ) { -- keycode = WXK_NEXT; -+ keycode = WXK_PAGEDOWN; - } - else if ( keyname == wxT("LEFT") ) { - keycode = WXK_LEFT; -@@ -630,10 +630,10 @@ wxString KeyboardTarget::name_from_keyco - case WXK_RETURN: - text += wxT("return"); - break; -- case WXK_PRIOR: -+ case WXK_PAGEUP: - text += wxT("pageup"); - break; -- case WXK_NEXT: -+ case WXK_PAGEDOWN: - text += wxT("pagedown"); - break; - case WXK_LEFT: -Index: sooperlooper/src/gui/check_box.cpp -=================================================================== ---- sooperlooper.orig/src/gui/check_box.cpp -+++ sooperlooper/src/gui/check_box.cpp -@@ -237,7 +237,7 @@ CheckBox::OnMouseEvents (wxMouseEvent &e - } - else if (ev.LeftUp()) - { -- if (bounds.Inside(ev.GetPosition())) { -+ if (bounds.Contains(ev.GetPosition())) { - // toggle value - _value = !_value; - -Index: sooperlooper/src/gui/midi_bind_panel.cpp -=================================================================== ---- sooperlooper.orig/src/gui/midi_bind_panel.cpp -+++ sooperlooper/src/gui/midi_bind_panel.cpp -@@ -880,7 +880,7 @@ void MidiBindPanel::on_button (wxCommand - } - else if (ev.GetId() == ID_LoadButton) - { -- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR); - if ( !filename.empty() ) - { - _parent->get_loop_control().load_midi_bindings(filename, _append_check->GetValue()); -@@ -888,7 +888,7 @@ void MidiBindPanel::on_button (wxCommand - } - else if (ev.GetId() == ID_SaveButton) - { -- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); -+ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); - - if ( !filename.empty() ) - { -Index: sooperlooper/src/gui/config_panel.cpp -=================================================================== ---- sooperlooper.orig/src/gui/config_panel.cpp -+++ sooperlooper/src/gui/config_panel.cpp -@@ -378,7 +378,7 @@ void ConfigPanel::on_button (wxCommandEv - else if (ev.GetId() == ID_MidiBrowseButton) { - - _parent->get_keyboard().set_enabled(false); -- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR); - _parent->get_keyboard().set_enabled(true); - - if ( !filename.empty() ) -@@ -389,8 +389,8 @@ void ConfigPanel::on_button (wxCommandEv - else if (ev.GetId() == ID_SessionBrowseButton) { - - _parent->get_keyboard().set_enabled(false); -- wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); -- //wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); -+ wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); -+ //wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); - _parent->get_keyboard().set_enabled(true); - - if ( !filename.empty() ) diff --git a/audio/sooperlooper/libsigc.patch b/audio/sooperlooper/libsigc.patch deleted file mode 100644 index 6072b02d5f..0000000000 --- a/audio/sooperlooper/libsigc.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -ur a/sooperlooper-1.7.3/src/control_osc.hpp b/sooperlooper-1.7.3/src/control_osc.hpp ---- a/sooperlooper-1.7.3/src/control_osc.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/control_osc.hpp 2015-12-05 01:40:01.848107565 +0200 -@@ -27,7 +27,7 @@ - #include - #include - --#include -+#include - - #include "event.hpp" - #include "event_nonrt.hpp" -diff -ur a/sooperlooper-1.7.3/src/gui/app_frame.hpp b/sooperlooper-1.7.3/src/gui/app_frame.hpp ---- a/sooperlooper-1.7.3/src/gui/app_frame.hpp 2014-02-03 18:52:15.000000000 +0200 -+++ b/sooperlooper-1.7.3/src/gui/app_frame.hpp 2015-12-05 01:40:01.844774250 +0200 -@@ -26,7 +26,7 @@ - #include - #include - --#include -+#include - #include - #include - -diff -ur a/sooperlooper-1.7.3/src/gui/config_panel.hpp b/sooperlooper-1.7.3/src/gui/config_panel.hpp ---- a/sooperlooper-1.7.3/src/gui/config_panel.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/gui/config_panel.hpp 2015-12-05 01:40:01.841440935 +0200 -@@ -26,7 +26,7 @@ - - #include - #include --#include -+#include - - class wxListCtrl; - class wxSpinCtrl; -diff -ur a/sooperlooper-1.7.3/src/gui/keys_panel.hpp b/sooperlooper-1.7.3/src/gui/keys_panel.hpp ---- a/sooperlooper-1.7.3/src/gui/keys_panel.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/gui/keys_panel.hpp 2015-12-05 01:40:01.838107619 +0200 -@@ -26,7 +26,7 @@ - - #include - #include --#include -+#include - - class wxListCtrl; - -diff -ur a/sooperlooper-1.7.3/src/gui/latency_panel.hpp b/sooperlooper-1.7.3/src/gui/latency_panel.hpp ---- a/sooperlooper-1.7.3/src/gui/latency_panel.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/gui/latency_panel.hpp 2015-12-05 01:40:01.834774304 +0200 -@@ -26,7 +26,7 @@ - - #include - #include --#include -+#include - - class wxListCtrl; - -diff -ur a/sooperlooper-1.7.3/src/gui/main_panel.hpp b/sooperlooper-1.7.3/src/gui/main_panel.hpp ---- a/sooperlooper-1.7.3/src/gui/main_panel.hpp 2014-02-04 18:39:55.000000000 +0200 -+++ b/sooperlooper-1.7.3/src/gui/main_panel.hpp 2015-12-05 01:40:01.831440989 +0200 -@@ -26,7 +26,7 @@ - #include - #include - --#include -+#include - #include - #include - -diff -ur a/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp b/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp ---- a/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp 2015-12-05 01:40:01.828107674 +0200 -@@ -26,7 +26,7 @@ - - #include - #include --#include -+#include - #include - - #include -diff -ur a/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp b/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp ---- a/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp 2013-10-18 18:37:39.000000000 +0300 -+++ b/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp 2015-12-05 01:40:01.824774358 +0200 -@@ -26,7 +26,7 @@ - - #include - #include --#include -+#include - - class wxListCtrl; - class wxSpinCtrl; diff --git a/audio/sooperlooper/patches/04-build_with_wx_30.patch b/audio/sooperlooper/patches/04-build_with_wx_30.patch new file mode 100644 index 0000000000..fee40e8f98 --- /dev/null +++ b/audio/sooperlooper/patches/04-build_with_wx_30.patch @@ -0,0 +1,177 @@ +Author: Jaromír Mikeš , Olly Betts +Description: build against wx 3.0. +Forwarded: yes + +Index: sooperlooper/src/gui/main_panel.cpp +=================================================================== +--- sooperlooper.orig/src/gui/main_panel.cpp ++++ sooperlooper/src/gui/main_panel.cpp +@@ -448,7 +448,7 @@ MainPanel::init_loopers (int count) + while (count < (int)_looper_panels.size()) { + looperpan = _looper_panels.back(); + _looper_panels.pop_back(); +- _main_sizer->Remove(looperpan); ++ _main_sizer->Detach(looperpan); + looperpan->Destroy(); + } + } +@@ -1277,7 +1277,7 @@ void MainPanel::misc_action (bool releas + } + + +- wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); ++ wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); + + if ( !filename.empty() ) + { +@@ -1296,7 +1296,7 @@ void MainPanel::misc_action (bool releas + index = 0; + } + +- wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); + + if ( !filename.empty() ) + { +@@ -1408,7 +1408,7 @@ void MainPanel::set_curr_loop (int index + + void MainPanel::do_load_session () + { +- wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); + + if ( !filename.empty() ) + { +@@ -1419,7 +1419,7 @@ void MainPanel::do_load_session () + + void MainPanel::do_save_session (bool write_audio) + { +- wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); ++ wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); + + if ( !filename.empty() ) + { +Index: sooperlooper/src/gui/pix_button.cpp +=================================================================== +--- sooperlooper.orig/src/gui/pix_button.cpp ++++ sooperlooper/src/gui/pix_button.cpp +@@ -250,7 +250,7 @@ PixButton::OnMouseEvents (wxMouseEvent & + pt.x += bounds.x; + pt.y += bounds.y; + +- if (bounds.Inside(pt)) { ++ if (bounds.Contains(pt)) { + clicked (get_mouse_button(ev)); // emit + + if (ev.MiddleUp() && ev.ControlDown()) { +Index: sooperlooper/src/gui/looper_panel.cpp +=================================================================== +--- sooperlooper.orig/src/gui/looper_panel.cpp ++++ sooperlooper/src/gui/looper_panel.cpp +@@ -1428,7 +1428,7 @@ LooperPanel::clicked_events (int button, + if (cmd == wxT("save")) + { + wxString filename = _mainpanel->do_file_selector (wxT("Choose file to save loop"), +- wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); ++ wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); + + if ( !filename.empty() ) + { +@@ -1442,7 +1442,7 @@ LooperPanel::clicked_events (int button, + } + else if (cmd == wxT("load")) + { +- wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxFD_OPEN|wxFD_CHANGE_DIR); + + if ( !filename.empty() ) + { +Index: sooperlooper/src/gui/keyboard_target.cpp +=================================================================== +--- sooperlooper.orig/src/gui/keyboard_target.cpp ++++ sooperlooper/src/gui/keyboard_target.cpp +@@ -553,10 +553,10 @@ KeyboardTarget::keycode_from_name (const + keycode = WXK_RETURN; + } + else if ( keyname == wxT("PGUP") ) { +- keycode = WXK_PRIOR; ++ keycode = WXK_PAGEUP; + } + else if ( keyname == wxT("PGDN") ) { +- keycode = WXK_NEXT; ++ keycode = WXK_PAGEDOWN; + } + else if ( keyname == wxT("LEFT") ) { + keycode = WXK_LEFT; +@@ -630,10 +630,10 @@ wxString KeyboardTarget::name_from_keyco + case WXK_RETURN: + text += wxT("return"); + break; +- case WXK_PRIOR: ++ case WXK_PAGEUP: + text += wxT("pageup"); + break; +- case WXK_NEXT: ++ case WXK_PAGEDOWN: + text += wxT("pagedown"); + break; + case WXK_LEFT: +Index: sooperlooper/src/gui/check_box.cpp +=================================================================== +--- sooperlooper.orig/src/gui/check_box.cpp ++++ sooperlooper/src/gui/check_box.cpp +@@ -237,7 +237,7 @@ CheckBox::OnMouseEvents (wxMouseEvent &e + } + else if (ev.LeftUp()) + { +- if (bounds.Inside(ev.GetPosition())) { ++ if (bounds.Contains(ev.GetPosition())) { + // toggle value + _value = !_value; + +Index: sooperlooper/src/gui/midi_bind_panel.cpp +=================================================================== +--- sooperlooper.orig/src/gui/midi_bind_panel.cpp ++++ sooperlooper/src/gui/midi_bind_panel.cpp +@@ -880,7 +880,7 @@ void MidiBindPanel::on_button (wxCommand + } + else if (ev.GetId() == ID_LoadButton) + { +- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR); + if ( !filename.empty() ) + { + _parent->get_loop_control().load_midi_bindings(filename, _append_check->GetValue()); +@@ -888,7 +888,7 @@ void MidiBindPanel::on_button (wxCommand + } + else if (ev.GetId() == ID_SaveButton) + { +- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT); ++ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT); + + if ( !filename.empty() ) + { +Index: sooperlooper/src/gui/config_panel.cpp +=================================================================== +--- sooperlooper.orig/src/gui/config_panel.cpp ++++ sooperlooper/src/gui/config_panel.cpp +@@ -378,7 +378,7 @@ void ConfigPanel::on_button (wxCommandEv + else if (ev.GetId() == ID_MidiBrowseButton) { + + _parent->get_keyboard().set_enabled(false); +- wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR); + _parent->get_keyboard().set_enabled(true); + + if ( !filename.empty() ) +@@ -389,8 +389,8 @@ void ConfigPanel::on_button (wxCommandEv + else if (ev.GetId() == ID_SessionBrowseButton) { + + _parent->get_keyboard().set_enabled(false); +- wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); +- //wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR); ++ wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); ++ //wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR); + _parent->get_keyboard().set_enabled(true); + + if ( !filename.empty() ) diff --git a/audio/sooperlooper/patches/06-use_sigc_bind.patch b/audio/sooperlooper/patches/06-use_sigc_bind.patch new file mode 100644 index 0000000000..995dcf048f --- /dev/null +++ b/audio/sooperlooper/patches/06-use_sigc_bind.patch @@ -0,0 +1,655 @@ +commit 0cb1e65166c777250cf3737c418fcfc12ffac815 +Author: vixus0 +Date: Tue Jun 7 22:10:39 2016 +0100 + + Use sigc::bind due to clash with std::bind + +diff --git a/src/engine.cpp b/src/engine.cpp +index a7a6395..3175c20 100644 +--- a/src/engine.cpp ++++ b/src/engine.cpp +@@ -313,7 +313,7 @@ void Engine::set_midi_bridge (MidiBridge * bridge) + _midi_bridge->MidiControlEvent.connect (mem_fun(*this, &Engine::push_midi_control_event)); + _midi_bridge->MidiSyncEvent.connect (mem_fun(*this, &Engine::push_sync_event)); + +- ParamChanged.connect(bind (mem_fun(*_midi_bridge, &MidiBridge::parameter_changed), this)); ++ ParamChanged.connect(sigc::bind(mem_fun(*_midi_bridge, &MidiBridge::parameter_changed), this)); + + _midi_bridge->set_output_midi_clock(_output_midi_clock); + } +diff --git a/src/gui/latency_panel.cpp b/src/gui/latency_panel.cpp +index 10e16e8..cb28723 100644 +--- a/src/gui/latency_panel.cpp ++++ b/src/gui/latency_panel.cpp +@@ -150,7 +150,7 @@ void LatencyPanel::init() + _input_spin->set_allow_outside_bounds(false); + //_input_spin->SetFont (sliderFont); + _input_spin->set_decimal_digits(0); +- _input_spin->value_changed.connect (bind (mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_InputLatency)); ++ _input_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_InputLatency)); + rowsizer->Add (_input_spin, 1, wxLEFT|wxEXPAND, 10); + + _output_spin = new SpinBox(this, ID_OutputLatency, 0.0f, 100000.0f, 512.0f, false, wxDefaultPosition, wxSize(200, 35)); +@@ -160,7 +160,7 @@ void LatencyPanel::init() + _output_spin->set_allow_outside_bounds(false); + _output_spin->set_decimal_digits(0); + //_output_spin->SetFont (sliderFont); +- _output_spin->value_changed.connect (bind (mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_OutputLatency)); ++ _output_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_OutputLatency)); + rowsizer->Add (_output_spin, 1, wxLEFT|wxRIGHT|wxEXPAND, 10); + + +diff --git a/src/gui/looper_panel.cpp b/src/gui/looper_panel.cpp +index 4c5650d..34f7a84 100644 +--- a/src/gui/looper_panel.cpp ++++ b/src/gui/looper_panel.cpp +@@ -212,8 +212,8 @@ LooperPanel::init() + slider->set_show_indicator_bar (false); + slider->set_scale_mode(SliderBar::ZeroGainMode); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + inthresh_sizer->Add (slider, 1, wxALL|wxEXPAND, 0); + + _thresh_control = slider = new SliderBar(this, ID_ThreshControl, 0.0f, 1.0f, 0.0f); +@@ -222,8 +222,8 @@ LooperPanel::init() + slider->set_show_indicator_bar (true); + slider->set_scale_mode(SliderBar::ZeroGainMode); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + inthresh_sizer->Add (slider, 1, wxLEFT|wxEXPAND, 3); + + colsizer->Add (inthresh_sizer, 1, wxEXPAND|wxLEFT, 5); +@@ -232,8 +232,8 @@ LooperPanel::init() + slider->set_units(wxT("%")); + slider->set_label(wxT("feedback")); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + + _maininsizer->Add (slider, 1, wxEXPAND|wxTOP, 5); + +@@ -281,8 +281,8 @@ LooperPanel::init() + // slider->set_label(wxT("dry")); + // slider->set_scale_mode(SliderBar::ZeroGainMode); + // slider->SetFont(sliderFont); +-// slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +-// slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++// slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++// slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + // _toppansizer->Add (slider, 1, wxEXPAND, 0); + + // panners are added later +@@ -297,8 +297,8 @@ LooperPanel::init() + slider->set_show_indicator_bar (true); + slider->set_scale_mode(SliderBar::ZeroGainMode); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + _botpansizer->Add (slider, 1, wxEXPAND, 0); + + /* +@@ -307,7 +307,7 @@ LooperPanel::init() + _outlatency_spin->set_label(wxT("o.lat")); + _outlatency_spin->set_snap_mode (SpinBox::IntegerSnap); + _outlatency_spin->set_allow_outside_bounds(true); +- _outlatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _outlatency_spin->GetId())); ++ _outlatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _outlatency_spin->GetId())); + _outlatency_spin->SetFont(sliderFont); + _botpansizer->Add (_outlatency_spin, 0, wxALL, 0); + +@@ -316,7 +316,7 @@ LooperPanel::init() + _inlatency_spin->set_label(wxT("i.lat")); + _inlatency_spin->set_snap_mode (SpinBox::IntegerSnap); + _inlatency_spin->set_allow_outside_bounds(true); +- _inlatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _inlatency_spin->GetId())); ++ _inlatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _inlatency_spin->GetId())); + _inlatency_spin->SetFont(sliderFont); + _botpansizer->Add (_inlatency_spin, 0, wxALL, 0); + */ +@@ -361,8 +361,8 @@ LooperPanel::init() + _sync_check = new CheckBox(this, ID_SyncCheck, wxT("sync"), true, wxDefaultPosition, wxSize(55, 18)); + _sync_check->SetFont(sliderFont); + _sync_check->SetToolTip(wxT("sync operations to quantize source")); +- _sync_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("sync"))); +- _sync_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _sync_check->GetId())); ++ _sync_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("sync"))); ++ _sync_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _sync_check->GetId())); + lilrowsizer->Add (_sync_check, 1, wxLEFT, 3); + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0); + +@@ -370,8 +370,8 @@ LooperPanel::init() + _play_sync_check = new CheckBox(this, ID_PlaySyncCheck, wxT("play sync"), true, wxDefaultPosition, wxSize(55, 18)); + _play_sync_check->SetFont(sliderFont); + _play_sync_check->SetToolTip(wxT("sync playback auto-triggering to quantized sync source")); +- _play_sync_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("playback_sync"))); +- _play_sync_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_sync_check->GetId())); ++ _play_sync_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("playback_sync"))); ++ _play_sync_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_sync_check->GetId())); + lilrowsizer->Add (_play_sync_check, 1, wxLEFT, 3); + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0); + +@@ -379,15 +379,15 @@ LooperPanel::init() + _play_feed_check = new CheckBox(this, ID_UseFeedbackPlayCheck, wxT("p. feedb"), true, wxDefaultPosition, wxSize(55, 18)); + _play_feed_check->SetFont(sliderFont); + _play_feed_check->SetToolTip(wxT("enable feedback during playback")); +- _play_feed_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("use_feedback_play"))); +- _play_feed_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_feed_check->GetId())); ++ _play_feed_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("use_feedback_play"))); ++ _play_feed_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_feed_check->GetId())); + lilrowsizer->Add (_play_feed_check, 1, wxLEFT, 3); + + _tempo_stretch_check = new CheckBox(this, ID_TempoStretchCheck, wxT("t. stretch"), true, wxDefaultPosition, wxSize(55, 18)); + _tempo_stretch_check->SetFont(sliderFont); + _tempo_stretch_check->SetToolTip(wxT("enable automatic timestretch when tempo changes")); +- _tempo_stretch_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("tempo_stretch"))); +- _tempo_stretch_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _tempo_stretch_check->GetId())); ++ _tempo_stretch_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("tempo_stretch"))); ++ _tempo_stretch_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _tempo_stretch_check->GetId())); + lilrowsizer->Add (_tempo_stretch_check, 1, wxLEFT, 3); + + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0); +@@ -440,8 +440,8 @@ LooperPanel::init() + slider->set_show_value(false); + slider->set_show_indicator_bar (true); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3); + + // pitch control +@@ -452,8 +452,8 @@ LooperPanel::init() + slider->set_decimal_digits (1); + slider->set_snap_mode(SliderBar::IntegerSnap); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3); + + // pause +@@ -476,8 +476,8 @@ LooperPanel::init() + slider->set_style (SliderBar::CenterStyle); + slider->set_decimal_digits (3); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3); + + // stretch control +@@ -487,8 +487,8 @@ LooperPanel::init() + slider->set_style (SliderBar::CenterStyle); + slider->set_decimal_digits (2); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3); + + +@@ -498,7 +498,7 @@ LooperPanel::init() + _triglatency_spin->set_label(wxT("t.lat")); + _triglatency_spin->set_snap_mode (SpinBox::IntegerSnap); + _triglatency_spin->set_allow_outside_bounds(true); +- _triglatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _triglatency_spin->GetId())); ++ _triglatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _triglatency_spin->GetId())); + _triglatency_spin->SetFont(sliderFont); + rowsizer->Add (_triglatency_spin, 0, wxALL, 0); + */ +@@ -555,15 +555,15 @@ LooperPanel::post_init() + slider->set_label(wxT("in mon")); + slider->set_scale_mode(SliderBar::ZeroGainMode); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId())); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId())); + _toppansizer->Add (slider, 1, wxEXPAND, 0); + + _use_main_in_check = new CheckBox(this, ID_UseMainInCheck, wxT("main in"), true, wxDefaultPosition, wxSize(65, 18)); + _use_main_in_check->SetFont(sliderFont); + _use_main_in_check->SetToolTip(wxT("mix input from Main inputs")); +- _use_main_in_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("use_common_ins"))); +- _use_main_in_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _use_main_in_check->GetId())); ++ _use_main_in_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("use_common_ins"))); ++ _use_main_in_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _use_main_in_check->GetId())); + _maininsizer->Add (_use_main_in_check, 0, wxALL|wxEXPAND|wxALIGN_CENTRE_VERTICAL ,0); + _maininsizer->Layout(); + +@@ -595,8 +595,8 @@ LooperPanel::post_init() + slider->set_decimal_digits (3); + slider->set_show_value (false); + slider->SetFont(sliderFont); +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::pan_events), (int) i)); +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::pan_bind_events), (int) i)); ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pan_events), (int) i)); ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::pan_bind_events), (int) i)); + + if (!_has_discrete_io) { + _toppansizer->Add (slider, 1, (i==0) ? wxEXPAND : wxEXPAND|wxLEFT, 2); +@@ -652,83 +652,83 @@ LooperPanel::set_index(int ind) + void + LooperPanel::bind_events() + { +- _undo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("undo")))); +- _undo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("undo")))); +- _undo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("undo")))); ++ _undo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("undo")))); ++ _undo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("undo")))); ++ _undo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("undo")))); + +- _redo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("redo")))); +- _redo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("redo")))); +- _redo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("redo")))); ++ _redo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("redo")))); ++ _redo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("redo")))); ++ _redo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("redo")))); + +- _record_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("record")))); +- _record_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("record")))); +- _record_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("record")))); ++ _record_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("record")))); ++ _record_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("record")))); ++ _record_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("record")))); + +- _overdub_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("overdub")))); +- _overdub_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("overdub")))); +- _overdub_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("overdub")))); ++ _overdub_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("overdub")))); ++ _overdub_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("overdub")))); ++ _overdub_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("overdub")))); + +- _multiply_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("multiply")))); +- _multiply_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("multiply")))); +- _multiply_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("multiply")))); ++ _multiply_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("multiply")))); ++ _multiply_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("multiply")))); ++ _multiply_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("multiply")))); + +- _replace_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("replace")))); +- _replace_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("replace")))); +- _replace_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("replace")))); ++ _replace_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("replace")))); ++ _replace_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("replace")))); ++ _replace_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("replace")))); + +- _insert_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("insert")))); +- _insert_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("insert")))); +- _insert_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("insert")))); ++ _insert_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("insert")))); ++ _insert_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("insert")))); ++ _insert_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("insert")))); + +- _once_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("oneshot")))); +- _once_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("oneshot")))); +- _once_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("oneshot")))); ++ _once_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("oneshot")))); ++ _once_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("oneshot")))); ++ _once_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("oneshot")))); + +- _trig_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("trigger")))); +- _trig_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("trigger")))); +- _trig_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("trigger")))); ++ _trig_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("trigger")))); ++ _trig_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("trigger")))); ++ _trig_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("trigger")))); + + _delay_button->pressed.connect (mem_fun (*this, &LooperPanel::delay_button_press_event)); + _delay_button->released.connect (mem_fun (*this, &LooperPanel::delay_button_release_event)); +- _delay_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("delay_trigger")))); ++ _delay_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("delay_trigger")))); + +- _reverse_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("reverse")))); +- _reverse_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("reverse")))); +- _reverse_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("reverse")))); ++ _reverse_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("reverse")))); ++ _reverse_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("reverse")))); ++ _reverse_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("reverse")))); + +- _substitute_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("substitute")))); +- _substitute_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("substitute")))); +- _substitute_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("substitute")))); ++ _substitute_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("substitute")))); ++ _substitute_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("substitute")))); ++ _substitute_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("substitute")))); + +- _mute_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("mute")))); +- _mute_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("mute")))); +- _mute_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("mute")))); ++ _mute_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("mute")))); ++ _mute_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("mute")))); ++ _mute_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("mute")))); + +- _pause_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("pause")))); +- _pause_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("pause")))); +- _pause_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("pause")))); ++ _pause_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("pause")))); ++ _pause_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("pause")))); ++ _pause_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("pause")))); + +- _solo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("solo")))); +- _solo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("solo")))); +- _solo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("solo")))); ++ _solo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("solo")))); ++ _solo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("solo")))); ++ _solo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("solo")))); + +- _halfx_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 0.5f)); +- _halfx_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 0.5f)); +- _1x_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 1.0f)); +- _1x_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 1.0f)); +- _2x_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 2.0f)); +- _2x_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 2.0f)); ++ _halfx_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 0.5f)); ++ _halfx_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 0.5f)); ++ _1x_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 1.0f)); ++ _1x_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 1.0f)); ++ _2x_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 2.0f)); ++ _2x_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 2.0f)); + +- _scratch_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("scratch")))); +- _scratch_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("scratch")))); +- _scratch_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("scratch")))); ++ _scratch_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("scratch")))); ++ _scratch_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("scratch")))); ++ _scratch_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("scratch")))); + +- _save_button->clicked.connect (bind (mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("save")))); +- _load_button->clicked.connect (bind (mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("load")))); ++ _save_button->clicked.connect (sigc::bind(mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("save")))); ++ _load_button->clicked.connect (sigc::bind(mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("load")))); + + +- _scratch_control->pressed.connect (bind (mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_press")))); +- _scratch_control->released.connect (bind (mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_release")))); ++ _scratch_control->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_press")))); ++ _scratch_control->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_release")))); + + + _loop_control->MidiBindingChanged.connect (mem_fun (*this, &LooperPanel::got_binding_changed)); +diff --git a/src/gui/main_panel.cpp b/src/gui/main_panel.cpp +index 1734eb6..b0c1bac 100644 +--- a/src/gui/main_panel.cpp ++++ b/src/gui/main_panel.cpp +@@ -217,7 +217,7 @@ MainPanel::init() + _sync_choice->set_label (wxT("sync to")); + _sync_choice->SetFont (sliderFont); + _sync_choice->value_changed.connect (mem_fun (*this, &MainPanel::on_syncto_change)); +- _sync_choice->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("sync"))); ++ _sync_choice->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("sync"))); + + rowsizer->Add (_sync_choice, 0, wxALL|wxEXPAND, 2); + +@@ -228,7 +228,7 @@ MainPanel::init() + _tempo_bar->set_allow_outside_bounds(true); + _tempo_bar->SetFont (sliderFont); + _tempo_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_tempo_change)); +- _tempo_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("tempo"))); ++ _tempo_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("tempo"))); + rowsizer->Add (_tempo_bar, 0, wxALL|wxEXPAND, 2); + + _taptempo_button = new PixButton(_top_panel, ID_TapTempoButton, true); +@@ -239,7 +239,7 @@ MainPanel::init() + _taptempo_button->set_active_bitmap (wxBitmap(tap_tempo_active)); + _taptempo_button->pressed.connect (mem_fun (*this, &MainPanel::on_taptempo_press)); + _taptempo_button->released.connect (mem_fun (*this, &MainPanel::on_taptempo_release)); +- _taptempo_button->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("taptempo"))); ++ _taptempo_button->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("taptempo"))); + rowsizer->Add (_taptempo_button, 0, wxALL|wxEXPAND, 2); + + +@@ -250,7 +250,7 @@ MainPanel::init() + _eighth_cycle_bar->set_allow_outside_bounds(true); + _eighth_cycle_bar->SetFont (sliderFont); + _eighth_cycle_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_eighth_change)); +- _eighth_cycle_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("eighth"))); ++ _eighth_cycle_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("eighth"))); + rowsizer->Add (_eighth_cycle_bar, 0, wxALL|wxEXPAND, 2); + + +@@ -258,7 +258,7 @@ MainPanel::init() + _quantize_choice->SetFont (sliderFont); + _quantize_choice->set_label (wxT("quantize")); + _quantize_choice->value_changed.connect (mem_fun (*this, &MainPanel::on_quantize_change)); +- _quantize_choice->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("quantize"))); ++ _quantize_choice->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("quantize"))); + _quantize_choice->append_choice (wxT("off"), 0); + _quantize_choice->append_choice (wxT("cycle"), 1); + _quantize_choice->append_choice (wxT("8th"), 2); +@@ -269,21 +269,21 @@ MainPanel::init() + _mute_quant_check->SetFont(sliderFont); + _mute_quant_check->SetToolTip(wxT("quantize mute operations")); + _mute_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_mute_quant_check)); +- _mute_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("mute_quantized"))); ++ _mute_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("mute_quantized"))); + rowsizer->Add (_mute_quant_check, 0, wxALL|wxEXPAND, 2); + + _odub_quant_check = new CheckBox(_top_panel, ID_OdubQuantCheck, wxT("odub quant"), true, wxDefaultPosition, wxSize(90, 18)); + _odub_quant_check->SetFont(sliderFont); + _odub_quant_check->SetToolTip(wxT("quantize overdub operations")); + _odub_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_odub_quant_check)); +- _odub_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("overdub_quantized"))); ++ _odub_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("overdub_quantized"))); + rowsizer->Add (_odub_quant_check, 0, wxALL|wxEXPAND, 2); + + _repl_quant_check = new CheckBox(_top_panel, ID_ReplQuantCheck, wxT("repl quant"), true, wxDefaultPosition, wxSize(90, 18)); + _repl_quant_check->SetFont(sliderFont); + _repl_quant_check->SetToolTip(wxT("quantize replace and substitute operations")); + _repl_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_repl_quant_check)); +- _repl_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("replace_quantized"))); ++ _repl_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("replace_quantized"))); + rowsizer->Add (_repl_quant_check, 0, wxALL|wxEXPAND, 2); + + +@@ -305,7 +305,7 @@ MainPanel::init() + _xfade_bar->set_decimal_digits (0); + _xfade_bar->SetFont (sliderFont); + _xfade_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_xfade_change)); +- _xfade_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("fade_samples"))); ++ _xfade_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("fade_samples"))); + rowsizer->Add (_xfade_bar, 0, wxALL|wxEXPAND, 2); + + _common_ingain_bar = new SliderBar(_top_panel, ID_InGainControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20)); +@@ -315,7 +315,7 @@ MainPanel::init() + _common_ingain_bar->set_show_indicator_bar(true); + _common_ingain_bar->SetFont(sliderFont); + _common_ingain_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_ingain_change)); +- _common_ingain_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("input_gain"))); ++ _common_ingain_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("input_gain"))); + rowsizer->Add (_common_ingain_bar, 0, wxALL|wxEXPAND, 2); + + _common_dry_bar = new SliderBar(_top_panel, ID_DryControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20)); +@@ -325,7 +325,7 @@ MainPanel::init() + _common_dry_bar->set_show_indicator_bar(true); + _common_dry_bar->SetFont(sliderFont); + _common_dry_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_dry_change)); +- _common_dry_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("dry"))); ++ _common_dry_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("dry"))); + rowsizer->Add (_common_dry_bar, 0, wxALL|wxEXPAND, 2); + + _common_wet_bar = new SliderBar(_top_panel, ID_WetControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20)); +@@ -335,7 +335,7 @@ MainPanel::init() + _common_wet_bar->set_show_indicator_bar(true); + _common_wet_bar->SetFont(sliderFont); + _common_wet_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_wet_change)); +- _common_wet_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("wet"))); ++ _common_wet_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("wet"))); + rowsizer->Add (_common_wet_bar, 0, wxALL|wxEXPAND, 2); + + +@@ -343,13 +343,13 @@ MainPanel::init() + _round_check = new CheckBox (_top_panel, ID_RoundCheck, wxT("round"), true, wxDefaultPosition, wxSize(60, 20)); + _round_check->SetFont (sliderFont); + _round_check->value_changed.connect (mem_fun (*this, &MainPanel::on_round_check)); +- _round_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("round"))); ++ _round_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("round"))); + rowsizer->Add (_round_check, 0, wxALL|wxEXPAND, 2); + + _relsync_check = new CheckBox (_top_panel, ID_RelSyncCheck, wxT("rel sync"), true, wxDefaultPosition, wxSize(75, 20)); + _relsync_check->SetFont (sliderFont); + _relsync_check->value_changed.connect (mem_fun (*this, &MainPanel::on_relsync_check)); +- _relsync_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("relative_sync"))); ++ _relsync_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("relative_sync"))); + rowsizer->Add (_relsync_check, 0, wxALL|wxEXPAND, 2); + + +@@ -357,7 +357,7 @@ MainPanel::init() + _smart_eighths_check->SetFont(sliderFont); + _smart_eighths_check->SetToolTip(wxT("auto adjust 8ths per cycle with tempo")); + _smart_eighths_check->value_changed.connect (mem_fun (*this, &MainPanel::on_smart_eighths_check)); +- _smart_eighths_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("smart_eighths"))); ++ _smart_eighths_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("smart_eighths"))); + rowsizer->Add (_smart_eighths_check, 0, wxALL|wxEXPAND, 2); + + +@@ -379,7 +379,7 @@ MainPanel::init() + + // todo request how many loopers to construct based on connection + _loop_connect_connection = _loop_control->LooperConnected.connect (mem_fun (*this, &MainPanel::init_loopers)); +- _loop_disconnect_connection = _loop_control->Disconnected.connect (bind (mem_fun (*this, &MainPanel::init_loopers), 0)); ++ _loop_disconnect_connection = _loop_control->Disconnected.connect (sigc::bind(mem_fun (*this, &MainPanel::init_loopers), 0)); + _loop_update_connection = _loop_control->NewDataReady.connect (mem_fun (*this, &MainPanel::osc_data_ready)); + + +@@ -1112,67 +1112,67 @@ MainPanel::process_key_event (wxKeyEvent &ev) + void MainPanel::intialize_keybindings () + { + +- _keyboard->add_action ("record", bind (mem_fun (*this, &MainPanel::command_action), wxT("record"))); +- _keyboard->add_action ("overdub", bind (mem_fun (*this, &MainPanel::command_action), wxT("overdub"))); +- _keyboard->add_action ("multiply", bind (mem_fun (*this, &MainPanel::command_action), wxT("multiply"))); +- _keyboard->add_action ("insert", bind (mem_fun (*this, &MainPanel::command_action), wxT("insert"))); +- _keyboard->add_action ("replace", bind (mem_fun (*this, &MainPanel::command_action), wxT("replace"))); +- _keyboard->add_action ("reverse", bind (mem_fun (*this, &MainPanel::command_action), wxT("reverse"))); +- _keyboard->add_action ("scratch", bind (mem_fun (*this, &MainPanel::command_action), wxT("scratch"))); +- _keyboard->add_action ("substitute", bind (mem_fun (*this, &MainPanel::command_action), wxT("substitute"))); +- _keyboard->add_action ("mute", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute"))); +- _keyboard->add_action ("mute_on", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_on"))); +- _keyboard->add_action ("mute_off", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_off"))); +- _keyboard->add_action ("mute_trigger", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_trigger"))); +- _keyboard->add_action ("undo", bind (mem_fun (*this, &MainPanel::command_action), wxT("undo"))); +- _keyboard->add_action ("redo", bind (mem_fun (*this, &MainPanel::command_action), wxT("redo"))); +- _keyboard->add_action ("undo_all", bind (mem_fun (*this, &MainPanel::command_action), wxT("undo_all"))); +- _keyboard->add_action ("redo_all", bind (mem_fun (*this, &MainPanel::command_action), wxT("redo_all"))); +- _keyboard->add_action ("oneshot", bind (mem_fun (*this, &MainPanel::command_action), wxT("oneshot"))); +- _keyboard->add_action ("trigger", bind (mem_fun (*this, &MainPanel::command_action), wxT("trigger"))); +- _keyboard->add_action ("pause", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause"))); +- _keyboard->add_action ("pause_on", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause_on"))); +- _keyboard->add_action ("pause_off", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause_off"))); +- _keyboard->add_action ("solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo"))); +- _keyboard->add_action ("solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo_prev"))); +- _keyboard->add_action ("solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo_next"))); +- _keyboard->add_action ("record_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo"))); +- _keyboard->add_action ("record_solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo_prev"))); +- _keyboard->add_action ("record_solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo_next"))); +- _keyboard->add_action ("set_sync_pos", bind (mem_fun (*this, &MainPanel::command_action), wxT("set_sync_pos"))); +- _keyboard->add_action ("reset_sync_pos", bind (mem_fun (*this, &MainPanel::command_action), wxT("reset_sync_pos"))); +- _keyboard->add_action ("record_or_overdub", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub"))); +- _keyboard->add_action ("record_exclusive", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive"))); +- _keyboard->add_action ("record_exclusive_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_next"))); +- _keyboard->add_action ("record_exclusive_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_prev"))); +- _keyboard->add_action ("record_or_overdub_excl", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl"))); +- _keyboard->add_action ("record_or_overdub_excl_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_next"))); +- _keyboard->add_action ("record_or_overdub_excl_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_prev"))); +- _keyboard->add_action ("record_or_overdub_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo"))); +- _keyboard->add_action ("record_or_overdub_solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_next"))); +- _keyboard->add_action ("record_or_overdub_solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_prev"))); +- _keyboard->add_action ("record_overdub_end_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo"))); +- _keyboard->add_action ("record_overdub_end_solo_trig", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo_trig"))); ++ _keyboard->add_action ("record", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record"))); ++ _keyboard->add_action ("overdub", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("overdub"))); ++ _keyboard->add_action ("multiply", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("multiply"))); ++ _keyboard->add_action ("insert", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("insert"))); ++ _keyboard->add_action ("replace", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("replace"))); ++ _keyboard->add_action ("reverse", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("reverse"))); ++ _keyboard->add_action ("scratch", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("scratch"))); ++ _keyboard->add_action ("substitute", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("substitute"))); ++ _keyboard->add_action ("mute", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute"))); ++ _keyboard->add_action ("mute_on", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_on"))); ++ _keyboard->add_action ("mute_off", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_off"))); ++ _keyboard->add_action ("mute_trigger", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_trigger"))); ++ _keyboard->add_action ("undo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("undo"))); ++ _keyboard->add_action ("redo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("redo"))); ++ _keyboard->add_action ("undo_all", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("undo_all"))); ++ _keyboard->add_action ("redo_all", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("redo_all"))); ++ _keyboard->add_action ("oneshot", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("oneshot"))); ++ _keyboard->add_action ("trigger", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("trigger"))); ++ _keyboard->add_action ("pause", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause"))); ++ _keyboard->add_action ("pause_on", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause_on"))); ++ _keyboard->add_action ("pause_off", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause_off"))); ++ _keyboard->add_action ("solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo"))); ++ _keyboard->add_action ("solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo_prev"))); ++ _keyboard->add_action ("solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo_next"))); ++ _keyboard->add_action ("record_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo"))); ++ _keyboard->add_action ("record_solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo_prev"))); ++ _keyboard->add_action ("record_solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo_next"))); ++ _keyboard->add_action ("set_sync_pos", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("set_sync_pos"))); ++ _keyboard->add_action ("reset_sync_pos", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("reset_sync_pos"))); ++ _keyboard->add_action ("record_or_overdub", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub"))); ++ _keyboard->add_action ("record_exclusive", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive"))); ++ _keyboard->add_action ("record_exclusive_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_next"))); ++ _keyboard->add_action ("record_exclusive_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_prev"))); ++ _keyboard->add_action ("record_or_overdub_excl", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl"))); ++ _keyboard->add_action ("record_or_overdub_excl_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_next"))); ++ _keyboard->add_action ("record_or_overdub_excl_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_prev"))); ++ _keyboard->add_action ("record_or_overdub_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo"))); ++ _keyboard->add_action ("record_or_overdub_solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_next"))); ++ _keyboard->add_action ("record_or_overdub_solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_prev"))); ++ _keyboard->add_action ("record_overdub_end_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo"))); ++ _keyboard->add_action ("record_overdub_end_solo_trig", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo_trig"))); + + +- _keyboard->add_action ("delay", bind (mem_fun (*this, &MainPanel::misc_action), wxT("delay"))); +- _keyboard->add_action ("taptempo", bind (mem_fun (*this, &MainPanel::misc_action), wxT("taptempo"))); +- _keyboard->add_action ("load", bind (mem_fun (*this, &MainPanel::misc_action), wxT("load"))); +- _keyboard->add_action ("save", bind (mem_fun (*this, &MainPanel::misc_action), wxT("save"))); +- _keyboard->add_action ("cancel_midi_learn", bind (mem_fun (*this, &MainPanel::misc_action), wxT("cancel_learn"))); +- +- _keyboard->add_action ("select_prev_loop", bind (mem_fun (*this, &MainPanel::select_loop_action), -2)); +- _keyboard->add_action ("select_next_loop", bind (mem_fun (*this, &MainPanel::select_loop_action), -1)); +- _keyboard->add_action ("select_loop_1", bind (mem_fun (*this, &MainPanel::select_loop_action), 1)); +- _keyboard->add_action ("select_loop_2", bind (mem_fun (*this, &MainPanel::select_loop_action), 2)); +- _keyboard->add_action ("select_loop_3", bind (mem_fun (*this, &MainPanel::select_loop_action), 3)); +- _keyboard->add_action ("select_loop_4", bind (mem_fun (*this, &MainPanel::select_loop_action), 4)); +- _keyboard->add_action ("select_loop_5", bind (mem_fun (*this, &MainPanel::select_loop_action), 5)); +- _keyboard->add_action ("select_loop_6", bind (mem_fun (*this, &MainPanel::select_loop_action), 6)); +- _keyboard->add_action ("select_loop_7", bind (mem_fun (*this, &MainPanel::select_loop_action), 7)); +- _keyboard->add_action ("select_loop_8", bind (mem_fun (*this, &MainPanel::select_loop_action), 8)); +- _keyboard->add_action ("select_loop_9", bind (mem_fun (*this, &MainPanel::select_loop_action), 9)); +- _keyboard->add_action ("select_loop_all", bind (mem_fun (*this, &MainPanel::select_loop_action), 0)); ++ _keyboard->add_action ("delay", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("delay"))); ++ _keyboard->add_action ("taptempo", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("taptempo"))); ++ _keyboard->add_action ("load", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("load"))); ++ _keyboard->add_action ("save", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("save"))); ++ _keyboard->add_action ("cancel_midi_learn", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("cancel_learn"))); ++ ++ _keyboard->add_action ("select_prev_loop", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), -2)); ++ _keyboard->add_action ("select_next_loop", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), -1)); ++ _keyboard->add_action ("select_loop_1", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 1)); ++ _keyboard->add_action ("select_loop_2", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 2)); ++ _keyboard->add_action ("select_loop_3", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 3)); ++ _keyboard->add_action ("select_loop_4", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 4)); ++ _keyboard->add_action ("select_loop_5", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 5)); ++ _keyboard->add_action ("select_loop_6", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 6)); ++ _keyboard->add_action ("select_loop_7", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 7)); ++ _keyboard->add_action ("select_loop_8", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 8)); ++ _keyboard->add_action ("select_loop_9", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 9)); ++ _keyboard->add_action ("select_loop_all", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 0)); + + + // these are the defaults... they get overridden by rc file diff --git a/audio/sooperlooper/patches/libsigc.patch b/audio/sooperlooper/patches/libsigc.patch new file mode 100644 index 0000000000..6072b02d5f --- /dev/null +++ b/audio/sooperlooper/patches/libsigc.patch @@ -0,0 +1,96 @@ +diff -ur a/sooperlooper-1.7.3/src/control_osc.hpp b/sooperlooper-1.7.3/src/control_osc.hpp +--- a/sooperlooper-1.7.3/src/control_osc.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/control_osc.hpp 2015-12-05 01:40:01.848107565 +0200 +@@ -27,7 +27,7 @@ + #include + #include + +-#include ++#include + + #include "event.hpp" + #include "event_nonrt.hpp" +diff -ur a/sooperlooper-1.7.3/src/gui/app_frame.hpp b/sooperlooper-1.7.3/src/gui/app_frame.hpp +--- a/sooperlooper-1.7.3/src/gui/app_frame.hpp 2014-02-03 18:52:15.000000000 +0200 ++++ b/sooperlooper-1.7.3/src/gui/app_frame.hpp 2015-12-05 01:40:01.844774250 +0200 +@@ -26,7 +26,7 @@ + #include + #include + +-#include ++#include + #include + #include + +diff -ur a/sooperlooper-1.7.3/src/gui/config_panel.hpp b/sooperlooper-1.7.3/src/gui/config_panel.hpp +--- a/sooperlooper-1.7.3/src/gui/config_panel.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/gui/config_panel.hpp 2015-12-05 01:40:01.841440935 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + + class wxListCtrl; + class wxSpinCtrl; +diff -ur a/sooperlooper-1.7.3/src/gui/keys_panel.hpp b/sooperlooper-1.7.3/src/gui/keys_panel.hpp +--- a/sooperlooper-1.7.3/src/gui/keys_panel.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/gui/keys_panel.hpp 2015-12-05 01:40:01.838107619 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + + class wxListCtrl; + +diff -ur a/sooperlooper-1.7.3/src/gui/latency_panel.hpp b/sooperlooper-1.7.3/src/gui/latency_panel.hpp +--- a/sooperlooper-1.7.3/src/gui/latency_panel.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/gui/latency_panel.hpp 2015-12-05 01:40:01.834774304 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + + class wxListCtrl; + +diff -ur a/sooperlooper-1.7.3/src/gui/main_panel.hpp b/sooperlooper-1.7.3/src/gui/main_panel.hpp +--- a/sooperlooper-1.7.3/src/gui/main_panel.hpp 2014-02-04 18:39:55.000000000 +0200 ++++ b/sooperlooper-1.7.3/src/gui/main_panel.hpp 2015-12-05 01:40:01.831440989 +0200 +@@ -26,7 +26,7 @@ + #include + #include + +-#include ++#include + #include + #include + +diff -ur a/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp b/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp +--- a/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/gui/midi_bind_panel.hpp 2015-12-05 01:40:01.828107674 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + #include + + #include +diff -ur a/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp b/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp +--- a/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp 2013-10-18 18:37:39.000000000 +0300 ++++ b/sooperlooper-1.7.3/src/gui/prefs_dialog.hpp 2015-12-05 01:40:01.824774358 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + + class wxListCtrl; + class wxSpinCtrl; diff --git a/audio/sooperlooper/sooperlooper.SlackBuild b/audio/sooperlooper/sooperlooper.SlackBuild index 84a531b746..43f361f97e 100644 --- a/audio/sooperlooper/sooperlooper.SlackBuild +++ b/audio/sooperlooper/sooperlooper.SlackBuild @@ -6,6 +6,8 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# 20170622 bkw: fix build on -current, BUILD=3 + # 20150514 bkw: # - update for v1.7.3 @@ -17,7 +19,7 @@ PRGNAM=sooperlooper VERSION=${VERSION:-1.7.3} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -71,9 +73,13 @@ find -L . \ -exec chmod 644 {} \; # allow building with wx 3.0, using a patch from Debian -[ "$WXVER" = "3.0" ] && patch -p1 < $CWD/04-build_with_wx_30.patch +[ "$WXVER" = "3.0" ] && patch -p1 < $CWD/patches/04-build_with_wx_30.patch + +# build against libsigc++ 2.x. can't remember where I found this patch. +patch -p2 < $CWD/patches/libsigc.patch -patch -p2 < $CWD/libsigc.patch +# another Deb patch, need for -current's newer sigc++ (does no harm on 14.2) +patch -p1 < $CWD/patches/06-use_sigc_bind.patch # Note: the CFLAGS are actually ignored here. Oh well. CFLAGS="$SLKCFLAGS" \ -- cgit v1.2.3