public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/
@ 2015-10-25 12:45 Pacho Ramos
  0 siblings, 0 replies; 4+ messages in thread
From: Pacho Ramos @ 2015-10-25 12:45 UTC (permalink / raw
  To: gentoo-commits

commit:     075676d66fb8c17de1758e8eb801547e6fa23c75
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 25 12:45:00 2015 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Oct 25 12:45:00 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=075676d6

media-sound/sooperlooper: Version bump and support wxGTK:3.0 (#563432)

Package-Manager: portage-2.2.23

 media-sound/sooperlooper/Manifest                  |   1 +
 .../files/sooperlooper-1.7.3-sigc++-2.5.patch      | 166 +++++++++++++++++++
 .../files/sooperlooper-1.7.3-wx3.0.patch           | 177 +++++++++++++++++++++
 media-sound/sooperlooper/sooperlooper-1.7.3.ebuild |  59 +++++++
 4 files changed, 403 insertions(+)

diff --git a/media-sound/sooperlooper/Manifest b/media-sound/sooperlooper/Manifest
index ff07492..d612e4c 100644
--- a/media-sound/sooperlooper/Manifest
+++ b/media-sound/sooperlooper/Manifest
@@ -1,3 +1,4 @@
 DIST sooperlooper-1.6.17.tar.gz 704953 SHA256 f35b1ffb977499f649cd22ed19441ca55618db4e0d4e0805973f228135b3dbdf SHA512 e7e8494b1ec00ad54ab1a5e42fe295ffe397e98225c81e1d69dd88f696b2e08502fef16f723536ffcc09d7b537a762f43a139c9c08be28f9ae7e41057fc58db5 WHIRLPOOL d194b2fa1015d253059a31014421e7d443f3620ac68e403c4f27d498a8d90f54b3334b9f60f10af0612a5b99c9523aa2b8ec6f7399738237656dde6187589a43
 DIST sooperlooper-1.6.18.tar.gz 705462 SHA256 087a52186fefb138ac16deebc1ed4b9ff4945ffb4fe3e2170f60fcf97a3a8c38 SHA512 cccfc6ced0e2441bdc004b892b67141b476a89c19187fa249a30613f3cd1b77b5e6767262249ad42ee50007ea538ae3eff5dce47a529937d7d32e81ed73a5a31 WHIRLPOOL 69f8a1d421a3fe6ad07ae7721fdff760219cbfedf6a4ffdf23217476b56bcbc4bc0f58e00505cfaca05e47c69e13ee17eaa3de9baf01bc2ac3b8dde6a9131db4
 DIST sooperlooper-1.6.5-m4.tar.bz2 1463 SHA256 ee8e3084c3d3d4db29f3d7b4dde0d260b9dfb72be8c9362c7fd711fb7784e0bb SHA512 01b4405dcd91e617c8dafb9fcfab99507d0a9637d9b0eec84276c348968e31159b68ce5c8b7f900ab8a830f2b5c91b798146d5272d006a2b866f149e485f228d WHIRLPOOL 8faddc39687193c643265c52ab2930f98094f4d2544e7d1e1005d5acffa00d6577d95484b51919aea4d810320ebef362ce9a9ab98ac3bc41aa0441a9666a4abc
+DIST sooperlooper-1.7.3.tar.gz 732406 SHA256 7a7dbdedb5dab28fb1f98ba5827d88df4c7327909ab87f6def167517786f4f58 SHA512 cbc9f6b3e4cafc6f18ddb2e2415d2bac274c8cc578b5dadc6ad878b1bed34e514208bc990c3a7dab0106cbf34ad16be12846851e446d724d77386e70d975e14b WHIRLPOOL 97df9fa8a8a57f4a1cf6929dd68628f72c12e755e9676f69062613456e7c01af0f83a11b01af8e14cd81740e09b26c23943af37f37c164fc61dd2adf4d167e08

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
new file mode 100644
index 0000000..d105e82
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
@@ -0,0 +1,166 @@
+Description: support for sigc++>=2.5.2
+ since sigc++-2.5.2, the sigc++/object.h has been removed
+ (and replaced by sigc++/trackable.h>
+Author: IOhannes m zmölnig
+Last-Update: 2015-10-21
+Forwarded: Jesse Chappell <jesse@essej.net>
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- sooperlooper.orig/configure.ac
++++ sooperlooper/configure.ac
+@@ -220,7 +220,15 @@
+     AC_SUBST(NCURSES_LIBS)
+ 
+     dnl sigc++
+-    PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
++    have_sigcpp=no
++    PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
++    if test "x${have_sigcpp}" = "xyes"
++    then
++      presigcpp_CFLAGS=$CFLAGS
++      CFLAGS=$CFLAGS $SIGCPP_CFLAGS
++      AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS -DUSE_SIGCPP_OBJECT_H"])
++      CFLAGS=$presigcpp_CFLAGS
++    fi
+ 
+     AC_SUBST(SIGCPP_LIBS)
+     AC_SUBST(SIGCPP_CFLAGS)
+--- sooperlooper.orig/libs/pbd/configure.ac
++++ sooperlooper/libs/pbd/configure.ac
+@@ -193,7 +193,15 @@
+ PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.5)
+ 
+ dnl sigc++
+-PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
++have_sigcpp=no
++PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
++if test "x${have_sigcpp}" = "xyes"
++then
++  presigcpp_CFLAGS=$CFLAGS
++  CFLAGS=$CFLAGS $SIGCPP_CFLAGS
++  AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS -DUSE_SIGCPP_OBJECT_H"])
++  CFLAGS=$presigcpp_CFLAGS
++fi
+ 
+ 
+ AM_BUILD_ENVIRONMENT
+--- sooperlooper.orig/src/control_osc.hpp
++++ sooperlooper/src/control_osc.hpp
+@@ -27,7 +27,11 @@
+ #include <list>
+ #include <utility>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ #include "event.hpp"
+ #include "event_nonrt.hpp"
+--- sooperlooper.orig/src/gui/app_frame.hpp
++++ sooperlooper/src/gui/app_frame.hpp
+@@ -26,7 +26,11 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+--- sooperlooper.orig/src/gui/config_panel.hpp
++++ sooperlooper/src/gui/config_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;
+--- sooperlooper.orig/src/gui/keys_panel.hpp
++++ sooperlooper/src/gui/keys_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ 
+--- sooperlooper.orig/src/gui/latency_panel.hpp
++++ sooperlooper/src/gui/latency_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ 
+--- sooperlooper.orig/src/gui/main_panel.hpp
++++ sooperlooper/src/gui/main_panel.hpp
+@@ -26,7 +26,11 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+--- sooperlooper.orig/src/gui/midi_bind_panel.hpp
++++ sooperlooper/src/gui/midi_bind_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <list>
+ 
+ #include <midi_bind.hpp>
+--- sooperlooper.orig/src/gui/prefs_dialog.hpp
++++ sooperlooper/src/gui/prefs_dialog.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch
new file mode 100644
index 0000000..fee40e8
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch
@@ -0,0 +1,177 @@
+Author: Jaromír Mikeš <mira.mikes@seznam.cz>, Olly Betts <olly@survex.com>
+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/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild b/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
new file mode 100644
index 0000000..ff1ac18
--- /dev/null
+++ b/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+WX_GTK_VER=3.0
+
+inherit autotools eutils wxwidgets toolchain-funcs
+
+DESCRIPTION="Live looping sampler with immediate loop recording"
+HOMEPAGE="http://essej.net/sooperlooper/index.html"
+SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
+	mirror://gentoo/${PN}-1.6.5-m4.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="wxwidgets"
+
+RDEPEND="
+	media-sound/jack-audio-connection-kit
+	>=media-libs/liblo-0.10
+	>=dev-libs/libsigc++-2.2.10:2
+	>=media-libs/libsndfile-1.0.2
+	>=media-libs/libsamplerate-0.0.13
+	dev-libs/libxml2
+	>=media-libs/rubberband-0.0.13
+	sci-libs/fftw:3.0
+	wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
+"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+"
+
+S=${WORKDIR}/${P/_p*}
+
+DOCS=( OSC README )
+
+src_prepare() {
+	epatch "${FILESDIR}"/${P}-sigc++-2.5.patch
+	epatch "${FILESDIR}"/${P}-wx3.0.patch
+
+	cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
+
+	AT_M4DIR="${S}"/aclocal eautoreconf
+}
+
+src_compile() {
+	emake AR="$(tc-getAR)"
+}
+
+src_configure() {
+	use wxwidgets && need-wxwidgets unicode
+
+	econf \
+		$(use_with wxwidgets gui) \
+		--disable-optimize \
+		--with-wxconfig-path="${WX_CONFIG}"
+}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/
@ 2016-11-25 18:57 Pacho Ramos
  0 siblings, 0 replies; 4+ messages in thread
From: Pacho Ramos @ 2016-11-25 18:57 UTC (permalink / raw
  To: gentoo-commits

commit:     d6368eca10e53bff490a1af26eaa7cd1bc8d0312
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 25 18:47:58 2016 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Fri Nov 25 18:56:19 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6368eca

media-sound/sooperlooper: Drop old

Package-Manager: portage-2.3.2

 media-sound/sooperlooper/Manifest                  |   2 -
 .../files/sooperlooper-1.6.5-cxxflags.patch        |  13 --
 .../files/sooperlooper-1.7.3-sigc++-2.5.patch      | 166 ---------------------
 .../sooperlooper/sooperlooper-1.6.17.ebuild        |  56 -------
 .../sooperlooper/sooperlooper-1.6.18.ebuild        |  56 -------
 media-sound/sooperlooper/sooperlooper-1.7.3.ebuild |  59 --------
 6 files changed, 352 deletions(-)

diff --git a/media-sound/sooperlooper/Manifest b/media-sound/sooperlooper/Manifest
index d612e4c..17c265c 100644
--- a/media-sound/sooperlooper/Manifest
+++ b/media-sound/sooperlooper/Manifest
@@ -1,4 +1,2 @@
-DIST sooperlooper-1.6.17.tar.gz 704953 SHA256 f35b1ffb977499f649cd22ed19441ca55618db4e0d4e0805973f228135b3dbdf SHA512 e7e8494b1ec00ad54ab1a5e42fe295ffe397e98225c81e1d69dd88f696b2e08502fef16f723536ffcc09d7b537a762f43a139c9c08be28f9ae7e41057fc58db5 WHIRLPOOL d194b2fa1015d253059a31014421e7d443f3620ac68e403c4f27d498a8d90f54b3334b9f60f10af0612a5b99c9523aa2b8ec6f7399738237656dde6187589a43
-DIST sooperlooper-1.6.18.tar.gz 705462 SHA256 087a52186fefb138ac16deebc1ed4b9ff4945ffb4fe3e2170f60fcf97a3a8c38 SHA512 cccfc6ced0e2441bdc004b892b67141b476a89c19187fa249a30613f3cd1b77b5e6767262249ad42ee50007ea538ae3eff5dce47a529937d7d32e81ed73a5a31 WHIRLPOOL 69f8a1d421a3fe6ad07ae7721fdff760219cbfedf6a4ffdf23217476b56bcbc4bc0f58e00505cfaca05e47c69e13ee17eaa3de9baf01bc2ac3b8dde6a9131db4
 DIST sooperlooper-1.6.5-m4.tar.bz2 1463 SHA256 ee8e3084c3d3d4db29f3d7b4dde0d260b9dfb72be8c9362c7fd711fb7784e0bb SHA512 01b4405dcd91e617c8dafb9fcfab99507d0a9637d9b0eec84276c348968e31159b68ce5c8b7f900ab8a830f2b5c91b798146d5272d006a2b866f149e485f228d WHIRLPOOL 8faddc39687193c643265c52ab2930f98094f4d2544e7d1e1005d5acffa00d6577d95484b51919aea4d810320ebef362ce9a9ab98ac3bc41aa0441a9666a4abc
 DIST sooperlooper-1.7.3.tar.gz 732406 SHA256 7a7dbdedb5dab28fb1f98ba5827d88df4c7327909ab87f6def167517786f4f58 SHA512 cbc9f6b3e4cafc6f18ddb2e2415d2bac274c8cc578b5dadc6ad878b1bed34e514208bc990c3a7dab0106cbf34ad16be12846851e446d724d77386e70d975e14b WHIRLPOOL 97df9fa8a8a57f4a1cf6929dd68628f72c12e755e9676f69062613456e7c01af0f83a11b01af8e14cd81740e09b26c23943af37f37c164fc61dd2adf4d167e08

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.6.5-cxxflags.patch b/media-sound/sooperlooper/files/sooperlooper-1.6.5-cxxflags.patch
deleted file mode 100644
index 48997a6..00000000
--- a/media-sound/sooperlooper/files/sooperlooper-1.6.5-cxxflags.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: work/aclocal/optflags.m4
-===================================================================
---- work.orig/aclocal/optflags.m4
-+++ work/aclocal/optflags.m4
-@@ -61,7 +61,7 @@ OPT_FLAGS="$OPT_FLAGS -pipe"
- # LARGEFILE_FLAGS="`getconf LFS_CFLAGS`"
- LARGEFILE_FLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
- 
--CXXFLAGS="-g -D_REENTRANT $LARGEFILE_FLAGS"
-+CXXFLAGS="$CXXFLAGS -D_REENTRANT $LARGEFILE_FLAGS"
- if test x"$GXX" = xyes ; then
-    CXXFLAGS="$CXXFLAGS -Wall"
- fi

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
deleted file mode 100644
index d105e82..00000000
--- a/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-Description: support for sigc++>=2.5.2
- since sigc++-2.5.2, the sigc++/object.h has been removed
- (and replaced by sigc++/trackable.h>
-Author: IOhannes m zmölnig
-Last-Update: 2015-10-21
-Forwarded: Jesse Chappell <jesse@essej.net>
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
---- sooperlooper.orig/configure.ac
-+++ sooperlooper/configure.ac
-@@ -220,7 +220,15 @@
-     AC_SUBST(NCURSES_LIBS)
- 
-     dnl sigc++
--    PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
-+    have_sigcpp=no
-+    PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
-+    if test "x${have_sigcpp}" = "xyes"
-+    then
-+      presigcpp_CFLAGS=$CFLAGS
-+      CFLAGS=$CFLAGS $SIGCPP_CFLAGS
-+      AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS -DUSE_SIGCPP_OBJECT_H"])
-+      CFLAGS=$presigcpp_CFLAGS
-+    fi
- 
-     AC_SUBST(SIGCPP_LIBS)
-     AC_SUBST(SIGCPP_CFLAGS)
---- sooperlooper.orig/libs/pbd/configure.ac
-+++ sooperlooper/libs/pbd/configure.ac
-@@ -193,7 +193,15 @@
- PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.5)
- 
- dnl sigc++
--PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
-+have_sigcpp=no
-+PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
-+if test "x${have_sigcpp}" = "xyes"
-+then
-+  presigcpp_CFLAGS=$CFLAGS
-+  CFLAGS=$CFLAGS $SIGCPP_CFLAGS
-+  AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS -DUSE_SIGCPP_OBJECT_H"])
-+  CFLAGS=$presigcpp_CFLAGS
-+fi
- 
- 
- AM_BUILD_ENVIRONMENT
---- sooperlooper.orig/src/control_osc.hpp
-+++ sooperlooper/src/control_osc.hpp
-@@ -27,7 +27,11 @@
- #include <list>
- #include <utility>
- 
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- 
- #include "event.hpp"
- #include "event_nonrt.hpp"
---- sooperlooper.orig/src/gui/app_frame.hpp
-+++ sooperlooper/src/gui/app_frame.hpp
-@@ -26,7 +26,11 @@
- #include <string>
- #include <vector>
- 
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- #include <sigc++/signal.h>
- #include <sigc++/connection.h>
- 
---- sooperlooper.orig/src/gui/config_panel.hpp
-+++ sooperlooper/src/gui/config_panel.hpp
-@@ -26,7 +26,11 @@
- 
- #include <string>
- #include <vector>
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- 
- class wxListCtrl;
- class wxSpinCtrl;
---- sooperlooper.orig/src/gui/keys_panel.hpp
-+++ sooperlooper/src/gui/keys_panel.hpp
-@@ -26,7 +26,11 @@
- 
- #include <string>
- #include <vector>
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- 
- class wxListCtrl;
- 
---- sooperlooper.orig/src/gui/latency_panel.hpp
-+++ sooperlooper/src/gui/latency_panel.hpp
-@@ -26,7 +26,11 @@
- 
- #include <string>
- #include <vector>
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- 
- class wxListCtrl;
- 
---- sooperlooper.orig/src/gui/main_panel.hpp
-+++ sooperlooper/src/gui/main_panel.hpp
-@@ -26,7 +26,11 @@
- #include <string>
- #include <vector>
- 
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- #include <sigc++/signal.h>
- #include <sigc++/connection.h>
- 
---- sooperlooper.orig/src/gui/midi_bind_panel.hpp
-+++ sooperlooper/src/gui/midi_bind_panel.hpp
-@@ -26,7 +26,11 @@
- 
- #include <string>
- #include <vector>
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- #include <list>
- 
- #include <midi_bind.hpp>
---- sooperlooper.orig/src/gui/prefs_dialog.hpp
-+++ sooperlooper/src/gui/prefs_dialog.hpp
-@@ -26,7 +26,11 @@
- 
- #include <string>
- #include <vector>
--#include <sigc++/object.h>
-+#ifdef USE_SIGCPP_OBJECT_H
-+# include <sigc++/object.h>
-+#else
-+# include <sigc++/trackable.h>
-+#endif
- 
- class wxListCtrl;
- class wxSpinCtrl;

diff --git a/media-sound/sooperlooper/sooperlooper-1.6.17.ebuild b/media-sound/sooperlooper/sooperlooper-1.6.17.ebuild
deleted file mode 100644
index 7205382..00000000
--- a/media-sound/sooperlooper/sooperlooper-1.6.17.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-inherit autotools eutils wxwidgets toolchain-funcs
-
-DESCRIPTION="Live looping sampler with immediate loop recording"
-HOMEPAGE="http://essej.net/sooperlooper/index.html"
-SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
-	mirror://gentoo/${PN}-1.6.5-m4.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE=""
-
-RDEPEND="media-sound/jack-audio-connection-kit
-	x11-libs/wxGTK:2.8
-	media-libs/liblo
-	dev-libs/libsigc++:1.2
-	media-libs/libsndfile
-	media-libs/libsamplerate
-	dev-libs/libxml2
-	media-libs/rubberband
-	sci-libs/fftw:3.0"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig"
-
-S=${WORKDIR}/${P/_p*}
-
-DOCS=( OSC README )
-
-src_prepare() {
-	cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
-	epatch "${FILESDIR}"/${PN}-1.6.5-cxxflags.patch
-
-	AT_M4DIR="${S}"/aclocal eautoreconf
-	cd "${S}"/libs/midi++
-	AT_M4DIR="${S}"/aclocal eautoreconf
-	cd "${S}"/libs/pbd
-	AT_M4DIR="${S}"/aclocal eautoreconf
-}
-
-src_compile() {
-	emake AR=$(tc-getAR)
-}
-
-src_configure() {
-	WX_GTK_VER="2.8"
-	need-wxwidgets unicode
-
-	econf \
-		--disable-optimize \
-		--with-wxconfig-path="${WX_CONFIG}"
-}

diff --git a/media-sound/sooperlooper/sooperlooper-1.6.18.ebuild b/media-sound/sooperlooper/sooperlooper-1.6.18.ebuild
deleted file mode 100644
index 159f758..00000000
--- a/media-sound/sooperlooper/sooperlooper-1.6.18.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-inherit autotools eutils wxwidgets toolchain-funcs
-
-DESCRIPTION="Live looping sampler with immediate loop recording"
-HOMEPAGE="http://essej.net/sooperlooper/index.html"
-SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
-	mirror://gentoo/${PN}-1.6.5-m4.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE=""
-
-RDEPEND="media-sound/jack-audio-connection-kit
-	x11-libs/wxGTK:2.8
-	media-libs/liblo
-	dev-libs/libsigc++:1.2
-	media-libs/libsndfile
-	media-libs/libsamplerate
-	dev-libs/libxml2
-	media-libs/rubberband
-	sci-libs/fftw:3.0"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig"
-
-S=${WORKDIR}/${P/_p*}
-
-DOCS=( OSC README )
-
-src_prepare() {
-	cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
-	epatch "${FILESDIR}"/${PN}-1.6.5-cxxflags.patch
-
-	AT_M4DIR="${S}"/aclocal eautoreconf
-	cd "${S}"/libs/midi++
-	AT_M4DIR="${S}"/aclocal eautoreconf
-	cd "${S}"/libs/pbd
-	AT_M4DIR="${S}"/aclocal eautoreconf
-}
-
-src_compile() {
-	emake AR="$(tc-getAR)"
-}
-
-src_configure() {
-	WX_GTK_VER="2.8"
-	need-wxwidgets unicode
-
-	econf \
-		--disable-optimize \
-		--with-wxconfig-path="${WX_CONFIG}"
-}

diff --git a/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild b/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
deleted file mode 100644
index ff1ac18..00000000
--- a/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-WX_GTK_VER=3.0
-
-inherit autotools eutils wxwidgets toolchain-funcs
-
-DESCRIPTION="Live looping sampler with immediate loop recording"
-HOMEPAGE="http://essej.net/sooperlooper/index.html"
-SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
-	mirror://gentoo/${PN}-1.6.5-m4.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="wxwidgets"
-
-RDEPEND="
-	media-sound/jack-audio-connection-kit
-	>=media-libs/liblo-0.10
-	>=dev-libs/libsigc++-2.2.10:2
-	>=media-libs/libsndfile-1.0.2
-	>=media-libs/libsamplerate-0.0.13
-	dev-libs/libxml2
-	>=media-libs/rubberband-0.0.13
-	sci-libs/fftw:3.0
-	wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
-"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig
-"
-
-S=${WORKDIR}/${P/_p*}
-
-DOCS=( OSC README )
-
-src_prepare() {
-	epatch "${FILESDIR}"/${P}-sigc++-2.5.patch
-	epatch "${FILESDIR}"/${P}-wx3.0.patch
-
-	cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
-
-	AT_M4DIR="${S}"/aclocal eautoreconf
-}
-
-src_compile() {
-	emake AR="$(tc-getAR)"
-}
-
-src_configure() {
-	use wxwidgets && need-wxwidgets unicode
-
-	econf \
-		$(use_with wxwidgets gui) \
-		--disable-optimize \
-		--with-wxconfig-path="${WX_CONFIG}"
-}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/
@ 2018-03-01 17:57 Pacho Ramos
  0 siblings, 0 replies; 4+ messages in thread
From: Pacho Ramos @ 2018-03-01 17:57 UTC (permalink / raw
  To: gentoo-commits

commit:     723e860e8814e6dbdd431ecb012bc652785c63f1
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  1 17:42:30 2018 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Mar  1 17:55:34 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=723e860e

media-sound/sooperlooper: Fix building with current libsigc++ (#587174)

Package-Manager: Portage-2.3.24, Repoman-2.3.6

 .../files/sooperlooper-1.7.3-clash.patch           | 661 +++++++++++++++++++++
 .../files/sooperlooper-1.7.3-libsigc28.patch       | 124 ++++
 .../sooperlooper/sooperlooper-1.7.3-r2.ebuild      |  62 ++
 3 files changed, 847 insertions(+)

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch
new file mode 100644
index 00000000000..a5df2e2c225
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch
@@ -0,0 +1,661 @@
+From 0cb1e65166c777250cf3737c418fcfc12ffac815 Mon Sep 17 00:00:00 2001
+From: vixus0 <vixus0@gmail.com>
+Date: Tue, 7 Jun 2016 22:10:39 +0100
+Subject: [PATCH] Use sigc::bind due to clash with std::bind
+
+---
+ src/engine.cpp            |   2 +-
+ src/gui/latency_panel.cpp |   4 +-
+ src/gui/looper_panel.cpp  | 182 +++++++++++++++++++++++-----------------------
+ src/gui/main_panel.cpp    | 150 +++++++++++++++++++-------------------
+ 4 files changed, 169 insertions(+), 169 deletions(-)
+
+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/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch
new file mode 100644
index 00000000000..653303cfb55
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch
@@ -0,0 +1,124 @@
+From 920443d3f7afb26f735f4002f3beed8766530d9b Mon Sep 17 00:00:00 2001
+From: vixus0 <vixus0@gmail.com>
+Date: Tue, 7 Jun 2016 22:06:02 +0100
+Subject: [PATCH] Update libsigc++ trackable header import
+
+The `object.h` header was removed in libsigc++ 2.5.2 and `sigc::trackable` is now provided
+in `trackable.h`.
+
+Original fix for Arch provided by AUR user sahquievaedoajie.
+---
+ src/control_osc.hpp         | 2 +-
+ src/gui/app_frame.hpp       | 2 +-
+ src/gui/config_panel.hpp    | 2 +-
+ src/gui/keys_panel.hpp      | 2 +-
+ src/gui/latency_panel.hpp   | 2 +-
+ src/gui/main_panel.hpp      | 2 +-
+ src/gui/midi_bind_panel.hpp | 2 +-
+ src/gui/prefs_dialog.hpp    | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/control_osc.hpp b/src/control_osc.hpp
+index 11b4e78..d83564f 100644
+--- a/src/control_osc.hpp
++++ b/src/control_osc.hpp
+@@ -27,7 +27,7 @@
+ #include <list>
+ #include <utility>
+ 
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ 
+ #include "event.hpp"
+ #include "event_nonrt.hpp"
+diff --git a/src/gui/app_frame.hpp b/src/gui/app_frame.hpp
+index e24ff92..36cc18f 100644
+--- a/src/gui/app_frame.hpp
++++ b/src/gui/app_frame.hpp
+@@ -26,7 +26,7 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+diff --git a/src/gui/config_panel.hpp b/src/gui/config_panel.hpp
+index 2b413e9..46c849f 100644
+--- a/src/gui/config_panel.hpp
++++ b/src/gui/config_panel.hpp
+@@ -26,7 +26,7 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;
+diff --git a/src/gui/keys_panel.hpp b/src/gui/keys_panel.hpp
+index b2c5955..c028c8f 100644
+--- a/src/gui/keys_panel.hpp
++++ b/src/gui/keys_panel.hpp
+@@ -26,7 +26,7 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ 
+ class wxListCtrl;
+ 
+diff --git a/src/gui/latency_panel.hpp b/src/gui/latency_panel.hpp
+index 07dc30f..847da2b 100644
+--- a/src/gui/latency_panel.hpp
++++ b/src/gui/latency_panel.hpp
+@@ -26,7 +26,7 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ 
+ class wxListCtrl;
+ 
+diff --git a/src/gui/main_panel.hpp b/src/gui/main_panel.hpp
+index 0b4ac7d..64cba4c 100644
+--- a/src/gui/main_panel.hpp
++++ b/src/gui/main_panel.hpp
+@@ -26,7 +26,7 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+diff --git a/src/gui/midi_bind_panel.hpp b/src/gui/midi_bind_panel.hpp
+index e919cf2..0d05003 100644
+--- a/src/gui/midi_bind_panel.hpp
++++ b/src/gui/midi_bind_panel.hpp
+@@ -26,7 +26,7 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ #include <list>
+ 
+ #include <midi_bind.hpp>
+diff --git a/src/gui/prefs_dialog.hpp b/src/gui/prefs_dialog.hpp
+index ea59db1..29fee16 100644
+--- a/src/gui/prefs_dialog.hpp
++++ b/src/gui/prefs_dialog.hpp
+@@ -26,7 +26,7 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;

diff --git a/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
new file mode 100644
index 00000000000..5d2301bfa9d
--- /dev/null
+++ b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+WX_GTK_VER=3.0
+
+inherit autotools flag-o-matic wxwidgets toolchain-funcs
+
+DESCRIPTION="Live looping sampler with immediate loop recording"
+HOMEPAGE="http://essej.net/sooperlooper/index.html"
+SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
+	mirror://gentoo/${PN}-1.6.5-m4.tar.bz2
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="wxwidgets"
+
+RDEPEND="
+	media-sound/jack-audio-connection-kit
+	>=media-libs/liblo-0.10
+	>=dev-libs/libsigc++-2.8:2
+	>=media-libs/libsndfile-1.0.2
+	>=media-libs/libsamplerate-0.0.13
+	dev-libs/libxml2:2
+	>=media-libs/rubberband-0.0.13
+	sci-libs/fftw:3.0=
+	wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
+"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+"
+
+S="${WORKDIR}/${P/_p*}"
+
+DOCS=( OSC README )
+
+PATCHES=(
+	"${FILESDIR}"/${P}-wx3.0.patch
+	"${FILESDIR}"/${P}-libsigc28.patch
+	"${FILESDIR}"/${P}-clash.patch
+)
+
+src_prepare() {
+	default
+	cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
+	AT_M4DIR="${S}"/aclocal eautoreconf
+}
+
+src_configure() {
+	use wxwidgets && need-wxwidgets unicode
+	append-cppflags -std=c++11 # Its ugly build system honors CPPFLAGS instead of CXXFLAGS for this
+	econf \
+		$(use_with wxwidgets gui) \
+		--disable-optimize \
+		--with-wxconfig-path="${WX_CONFIG}"
+}
+
+src_compile() {
+	emake AR="$(tc-getAR)"
+}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/
@ 2019-07-15 11:12 Lars Wendler
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Wendler @ 2019-07-15 11:12 UTC (permalink / raw
  To: gentoo-commits

commit:     9b344adb823c331166e60d7b7297834ca71157a9
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 15 11:11:53 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon Jul 15 11:12:14 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b344adb

media-sound/sooperlooper: Fixed build with sys-libs/ncurses[tinfo]

Thanks-to: Jeroen Roovers <jer <AT> gentoo.org>
Closes: https://bugs.gentoo.org/683738
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../files/sooperlooper-1.7.3-tinfo.patch           | 22 ++++++++++++++++++++++
 .../sooperlooper/sooperlooper-1.7.3-r2.ebuild      |  3 ++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-tinfo.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-tinfo.patch
new file mode 100644
index 00000000000..82694f46383
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-tinfo.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/683738
+
+Thanks-to: Jeroen Roovers <jer@gentoo.org>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -214,10 +216,11 @@
+     AC_SUBST(LOSC_CFLAGS)
+ 
+     dnl curses
+-    AC_CHECK_LIB(ncurses,initscr,have_ncurses=yes,[AC_MSG_WARN([******** you don't have the ncurses library correctly installed])])
+-
+-    NCURSES_LIBS=-lncurses
+-    AC_SUBST(NCURSES_LIBS)
++    PKG_CHECK_MODULES([NCURSES], [ncurses], [have_ncurses=yes],
++		      AC_CHECK_LIB(ncurses, initscr, have_ncurses=yes,
++		    		   [AC_MSG_WARN([******** you don't have the ncurses library correctly installed])]
++		    		  )
++		     )
+ 
+     dnl sigc++
+     PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)

diff --git a/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
index 5d2301bfa9d..62c837de9ed 100644
--- a/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
+++ b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -40,6 +40,7 @@ PATCHES=(
 	"${FILESDIR}"/${P}-wx3.0.patch
 	"${FILESDIR}"/${P}-libsigc28.patch
 	"${FILESDIR}"/${P}-clash.patch
+	"${FILESDIR}"/${P}-tinfo.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-15 11:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-15 11:12 [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/ Lars Wendler
  -- strict thread matches above, loose matches on Subject: below --
2018-03-01 17:57 Pacho Ramos
2016-11-25 18:57 Pacho Ramos
2015-10-25 12:45 Pacho Ramos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox