Gentoo Archives: gentoo-commits

From: Pacho Ramos <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/sooperlooper/, media-sound/sooperlooper/files/
Date: Thu, 01 Mar 2018 17:58:01
Message-Id: 1519926934.723e860e8814e6dbdd431ecb012bc652785c63f1.pacho@gentoo
1 commit: 723e860e8814e6dbdd431ecb012bc652785c63f1
2 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
3 AuthorDate: Thu Mar 1 17:42:30 2018 +0000
4 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
5 CommitDate: Thu Mar 1 17:55:34 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=723e860e
7
8 media-sound/sooperlooper: Fix building with current libsigc++ (#587174)
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 .../files/sooperlooper-1.7.3-clash.patch | 661 +++++++++++++++++++++
13 .../files/sooperlooper-1.7.3-libsigc28.patch | 124 ++++
14 .../sooperlooper/sooperlooper-1.7.3-r2.ebuild | 62 ++
15 3 files changed, 847 insertions(+)
16
17 diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch
18 new file mode 100644
19 index 00000000000..a5df2e2c225
20 --- /dev/null
21 +++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-clash.patch
22 @@ -0,0 +1,661 @@
23 +From 0cb1e65166c777250cf3737c418fcfc12ffac815 Mon Sep 17 00:00:00 2001
24 +From: vixus0 <vixus0@×××××.com>
25 +Date: Tue, 7 Jun 2016 22:10:39 +0100
26 +Subject: [PATCH] Use sigc::bind due to clash with std::bind
27 +
28 +---
29 + src/engine.cpp | 2 +-
30 + src/gui/latency_panel.cpp | 4 +-
31 + src/gui/looper_panel.cpp | 182 +++++++++++++++++++++++-----------------------
32 + src/gui/main_panel.cpp | 150 +++++++++++++++++++-------------------
33 + 4 files changed, 169 insertions(+), 169 deletions(-)
34 +
35 +diff --git a/src/engine.cpp b/src/engine.cpp
36 +index a7a6395..3175c20 100644
37 +--- a/src/engine.cpp
38 ++++ b/src/engine.cpp
39 +@@ -313,7 +313,7 @@ void Engine::set_midi_bridge (MidiBridge * bridge)
40 + _midi_bridge->MidiControlEvent.connect (mem_fun(*this, &Engine::push_midi_control_event));
41 + _midi_bridge->MidiSyncEvent.connect (mem_fun(*this, &Engine::push_sync_event));
42 +
43 +- ParamChanged.connect(bind (mem_fun(*_midi_bridge, &MidiBridge::parameter_changed), this));
44 ++ ParamChanged.connect(sigc::bind(mem_fun(*_midi_bridge, &MidiBridge::parameter_changed), this));
45 +
46 + _midi_bridge->set_output_midi_clock(_output_midi_clock);
47 + }
48 +diff --git a/src/gui/latency_panel.cpp b/src/gui/latency_panel.cpp
49 +index 10e16e8..cb28723 100644
50 +--- a/src/gui/latency_panel.cpp
51 ++++ b/src/gui/latency_panel.cpp
52 +@@ -150,7 +150,7 @@ void LatencyPanel::init()
53 + _input_spin->set_allow_outside_bounds(false);
54 + //_input_spin->SetFont (sliderFont);
55 + _input_spin->set_decimal_digits(0);
56 +- _input_spin->value_changed.connect (bind (mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_InputLatency));
57 ++ _input_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_InputLatency));
58 + rowsizer->Add (_input_spin, 1, wxLEFT|wxEXPAND, 10);
59 +
60 + _output_spin = new SpinBox(this, ID_OutputLatency, 0.0f, 100000.0f, 512.0f, false, wxDefaultPosition, wxSize(200, 35));
61 +@@ -160,7 +160,7 @@ void LatencyPanel::init()
62 + _output_spin->set_allow_outside_bounds(false);
63 + _output_spin->set_decimal_digits(0);
64 + //_output_spin->SetFont (sliderFont);
65 +- _output_spin->value_changed.connect (bind (mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_OutputLatency));
66 ++ _output_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LatencyPanel::on_spin_change), (int) ID_OutputLatency));
67 + rowsizer->Add (_output_spin, 1, wxLEFT|wxRIGHT|wxEXPAND, 10);
68 +
69 +
70 +diff --git a/src/gui/looper_panel.cpp b/src/gui/looper_panel.cpp
71 +index 4c5650d..34f7a84 100644
72 +--- a/src/gui/looper_panel.cpp
73 ++++ b/src/gui/looper_panel.cpp
74 +@@ -212,8 +212,8 @@ LooperPanel::init()
75 + slider->set_show_indicator_bar (false);
76 + slider->set_scale_mode(SliderBar::ZeroGainMode);
77 + slider->SetFont(sliderFont);
78 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
79 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
80 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
81 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
82 + inthresh_sizer->Add (slider, 1, wxALL|wxEXPAND, 0);
83 +
84 + _thresh_control = slider = new SliderBar(this, ID_ThreshControl, 0.0f, 1.0f, 0.0f);
85 +@@ -222,8 +222,8 @@ LooperPanel::init()
86 + slider->set_show_indicator_bar (true);
87 + slider->set_scale_mode(SliderBar::ZeroGainMode);
88 + slider->SetFont(sliderFont);
89 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
90 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
91 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
92 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
93 + inthresh_sizer->Add (slider, 1, wxLEFT|wxEXPAND, 3);
94 +
95 + colsizer->Add (inthresh_sizer, 1, wxEXPAND|wxLEFT, 5);
96 +@@ -232,8 +232,8 @@ LooperPanel::init()
97 + slider->set_units(wxT("%"));
98 + slider->set_label(wxT("feedback"));
99 + slider->SetFont(sliderFont);
100 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
101 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
102 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
103 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
104 +
105 + _maininsizer->Add (slider, 1, wxEXPAND|wxTOP, 5);
106 +
107 +@@ -281,8 +281,8 @@ LooperPanel::init()
108 + // slider->set_label(wxT("dry"));
109 + // slider->set_scale_mode(SliderBar::ZeroGainMode);
110 + // slider->SetFont(sliderFont);
111 +-// slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
112 +-// slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
113 ++// slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
114 ++// slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
115 + // _toppansizer->Add (slider, 1, wxEXPAND, 0);
116 +
117 + // panners are added later
118 +@@ -297,8 +297,8 @@ LooperPanel::init()
119 + slider->set_show_indicator_bar (true);
120 + slider->set_scale_mode(SliderBar::ZeroGainMode);
121 + slider->SetFont(sliderFont);
122 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
123 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
124 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
125 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
126 + _botpansizer->Add (slider, 1, wxEXPAND, 0);
127 +
128 + /*
129 +@@ -307,7 +307,7 @@ LooperPanel::init()
130 + _outlatency_spin->set_label(wxT("o.lat"));
131 + _outlatency_spin->set_snap_mode (SpinBox::IntegerSnap);
132 + _outlatency_spin->set_allow_outside_bounds(true);
133 +- _outlatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _outlatency_spin->GetId()));
134 ++ _outlatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _outlatency_spin->GetId()));
135 + _outlatency_spin->SetFont(sliderFont);
136 + _botpansizer->Add (_outlatency_spin, 0, wxALL, 0);
137 +
138 +@@ -316,7 +316,7 @@ LooperPanel::init()
139 + _inlatency_spin->set_label(wxT("i.lat"));
140 + _inlatency_spin->set_snap_mode (SpinBox::IntegerSnap);
141 + _inlatency_spin->set_allow_outside_bounds(true);
142 +- _inlatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _inlatency_spin->GetId()));
143 ++ _inlatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _inlatency_spin->GetId()));
144 + _inlatency_spin->SetFont(sliderFont);
145 + _botpansizer->Add (_inlatency_spin, 0, wxALL, 0);
146 + */
147 +@@ -361,8 +361,8 @@ LooperPanel::init()
148 + _sync_check = new CheckBox(this, ID_SyncCheck, wxT("sync"), true, wxDefaultPosition, wxSize(55, 18));
149 + _sync_check->SetFont(sliderFont);
150 + _sync_check->SetToolTip(wxT("sync operations to quantize source"));
151 +- _sync_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("sync")));
152 +- _sync_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _sync_check->GetId()));
153 ++ _sync_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("sync")));
154 ++ _sync_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _sync_check->GetId()));
155 + lilrowsizer->Add (_sync_check, 1, wxLEFT, 3);
156 + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0);
157 +
158 +@@ -370,8 +370,8 @@ LooperPanel::init()
159 + _play_sync_check = new CheckBox(this, ID_PlaySyncCheck, wxT("play sync"), true, wxDefaultPosition, wxSize(55, 18));
160 + _play_sync_check->SetFont(sliderFont);
161 + _play_sync_check->SetToolTip(wxT("sync playback auto-triggering to quantized sync source"));
162 +- _play_sync_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("playback_sync")));
163 +- _play_sync_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_sync_check->GetId()));
164 ++ _play_sync_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("playback_sync")));
165 ++ _play_sync_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_sync_check->GetId()));
166 + lilrowsizer->Add (_play_sync_check, 1, wxLEFT, 3);
167 + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0);
168 +
169 +@@ -379,15 +379,15 @@ LooperPanel::init()
170 + _play_feed_check = new CheckBox(this, ID_UseFeedbackPlayCheck, wxT("p. feedb"), true, wxDefaultPosition, wxSize(55, 18));
171 + _play_feed_check->SetFont(sliderFont);
172 + _play_feed_check->SetToolTip(wxT("enable feedback during playback"));
173 +- _play_feed_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("use_feedback_play")));
174 +- _play_feed_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_feed_check->GetId()));
175 ++ _play_feed_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("use_feedback_play")));
176 ++ _play_feed_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _play_feed_check->GetId()));
177 + lilrowsizer->Add (_play_feed_check, 1, wxLEFT, 3);
178 +
179 + _tempo_stretch_check = new CheckBox(this, ID_TempoStretchCheck, wxT("t. stretch"), true, wxDefaultPosition, wxSize(55, 18));
180 + _tempo_stretch_check->SetFont(sliderFont);
181 + _tempo_stretch_check->SetToolTip(wxT("enable automatic timestretch when tempo changes"));
182 +- _tempo_stretch_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("tempo_stretch")));
183 +- _tempo_stretch_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _tempo_stretch_check->GetId()));
184 ++ _tempo_stretch_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("tempo_stretch")));
185 ++ _tempo_stretch_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _tempo_stretch_check->GetId()));
186 + lilrowsizer->Add (_tempo_stretch_check, 1, wxLEFT, 3);
187 +
188 + lilcolsizer->Add (lilrowsizer, 0, wxTOP|wxEXPAND, 0);
189 +@@ -440,8 +440,8 @@ LooperPanel::init()
190 + slider->set_show_value(false);
191 + slider->set_show_indicator_bar (true);
192 + slider->SetFont(sliderFont);
193 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
194 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
195 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
196 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
197 + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3);
198 +
199 + // pitch control
200 +@@ -452,8 +452,8 @@ LooperPanel::init()
201 + slider->set_decimal_digits (1);
202 + slider->set_snap_mode(SliderBar::IntegerSnap);
203 + slider->SetFont(sliderFont);
204 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
205 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
206 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
207 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
208 + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3);
209 +
210 + // pause
211 +@@ -476,8 +476,8 @@ LooperPanel::init()
212 + slider->set_style (SliderBar::CenterStyle);
213 + slider->set_decimal_digits (3);
214 + slider->SetFont(sliderFont);
215 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
216 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
217 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
218 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
219 + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3);
220 +
221 + // stretch control
222 +@@ -487,8 +487,8 @@ LooperPanel::init()
223 + slider->set_style (SliderBar::CenterStyle);
224 + slider->set_decimal_digits (2);
225 + slider->SetFont(sliderFont);
226 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
227 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
228 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
229 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
230 + rowsizer->Add (slider, 1, wxEXPAND|wxTOP|wxLEFT, 3);
231 +
232 +
233 +@@ -498,7 +498,7 @@ LooperPanel::init()
234 + _triglatency_spin->set_label(wxT("t.lat"));
235 + _triglatency_spin->set_snap_mode (SpinBox::IntegerSnap);
236 + _triglatency_spin->set_allow_outside_bounds(true);
237 +- _triglatency_spin->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) _triglatency_spin->GetId()));
238 ++ _triglatency_spin->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) _triglatency_spin->GetId()));
239 + _triglatency_spin->SetFont(sliderFont);
240 + rowsizer->Add (_triglatency_spin, 0, wxALL, 0);
241 + */
242 +@@ -555,15 +555,15 @@ LooperPanel::post_init()
243 + slider->set_label(wxT("in mon"));
244 + slider->set_scale_mode(SliderBar::ZeroGainMode);
245 + slider->SetFont(sliderFont);
246 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
247 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
248 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::slider_events), (int) slider->GetId()));
249 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) slider->GetId()));
250 + _toppansizer->Add (slider, 1, wxEXPAND, 0);
251 +
252 + _use_main_in_check = new CheckBox(this, ID_UseMainInCheck, wxT("main in"), true, wxDefaultPosition, wxSize(65, 18));
253 + _use_main_in_check->SetFont(sliderFont);
254 + _use_main_in_check->SetToolTip(wxT("mix input from Main inputs"));
255 +- _use_main_in_check->value_changed.connect (bind (mem_fun (*this, &LooperPanel::check_events), wxT("use_common_ins")));
256 +- _use_main_in_check->bind_request.connect (bind (mem_fun (*this, &LooperPanel::control_bind_events), (int) _use_main_in_check->GetId()));
257 ++ _use_main_in_check->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::check_events), wxT("use_common_ins")));
258 ++ _use_main_in_check->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::control_bind_events), (int) _use_main_in_check->GetId()));
259 + _maininsizer->Add (_use_main_in_check, 0, wxALL|wxEXPAND|wxALIGN_CENTRE_VERTICAL ,0);
260 + _maininsizer->Layout();
261 +
262 +@@ -595,8 +595,8 @@ LooperPanel::post_init()
263 + slider->set_decimal_digits (3);
264 + slider->set_show_value (false);
265 + slider->SetFont(sliderFont);
266 +- slider->value_changed.connect (bind (mem_fun (*this, &LooperPanel::pan_events), (int) i));
267 +- slider->bind_request.connect (bind (mem_fun (*this, &LooperPanel::pan_bind_events), (int) i));
268 ++ slider->value_changed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pan_events), (int) i));
269 ++ slider->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::pan_bind_events), (int) i));
270 +
271 + if (!_has_discrete_io) {
272 + _toppansizer->Add (slider, 1, (i==0) ? wxEXPAND : wxEXPAND|wxLEFT, 2);
273 +@@ -652,83 +652,83 @@ LooperPanel::set_index(int ind)
274 + void
275 + LooperPanel::bind_events()
276 + {
277 +- _undo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("undo"))));
278 +- _undo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("undo"))));
279 +- _undo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("undo"))));
280 ++ _undo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("undo"))));
281 ++ _undo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("undo"))));
282 ++ _undo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("undo"))));
283 +
284 +- _redo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("redo"))));
285 +- _redo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("redo"))));
286 +- _redo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("redo"))));
287 ++ _redo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("redo"))));
288 ++ _redo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("redo"))));
289 ++ _redo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("redo"))));
290 +
291 +- _record_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("record"))));
292 +- _record_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("record"))));
293 +- _record_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("record"))));
294 ++ _record_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("record"))));
295 ++ _record_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("record"))));
296 ++ _record_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("record"))));
297 +
298 +- _overdub_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("overdub"))));
299 +- _overdub_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("overdub"))));
300 +- _overdub_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("overdub"))));
301 ++ _overdub_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("overdub"))));
302 ++ _overdub_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("overdub"))));
303 ++ _overdub_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("overdub"))));
304 +
305 +- _multiply_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("multiply"))));
306 +- _multiply_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("multiply"))));
307 +- _multiply_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("multiply"))));
308 ++ _multiply_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("multiply"))));
309 ++ _multiply_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("multiply"))));
310 ++ _multiply_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("multiply"))));
311 +
312 +- _replace_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("replace"))));
313 +- _replace_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("replace"))));
314 +- _replace_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("replace"))));
315 ++ _replace_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("replace"))));
316 ++ _replace_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("replace"))));
317 ++ _replace_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("replace"))));
318 +
319 +- _insert_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("insert"))));
320 +- _insert_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("insert"))));
321 +- _insert_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("insert"))));
322 ++ _insert_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("insert"))));
323 ++ _insert_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("insert"))));
324 ++ _insert_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("insert"))));
325 +
326 +- _once_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("oneshot"))));
327 +- _once_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("oneshot"))));
328 +- _once_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("oneshot"))));
329 ++ _once_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("oneshot"))));
330 ++ _once_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("oneshot"))));
331 ++ _once_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("oneshot"))));
332 +
333 +- _trig_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("trigger"))));
334 +- _trig_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("trigger"))));
335 +- _trig_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("trigger"))));
336 ++ _trig_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("trigger"))));
337 ++ _trig_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("trigger"))));
338 ++ _trig_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("trigger"))));
339 +
340 + _delay_button->pressed.connect (mem_fun (*this, &LooperPanel::delay_button_press_event));
341 + _delay_button->released.connect (mem_fun (*this, &LooperPanel::delay_button_release_event));
342 +- _delay_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("delay_trigger"))));
343 ++ _delay_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("delay_trigger"))));
344 +
345 +- _reverse_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("reverse"))));
346 +- _reverse_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("reverse"))));
347 +- _reverse_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("reverse"))));
348 ++ _reverse_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("reverse"))));
349 ++ _reverse_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("reverse"))));
350 ++ _reverse_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("reverse"))));
351 +
352 +- _substitute_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("substitute"))));
353 +- _substitute_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("substitute"))));
354 +- _substitute_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("substitute"))));
355 ++ _substitute_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("substitute"))));
356 ++ _substitute_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("substitute"))));
357 ++ _substitute_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("substitute"))));
358 +
359 +- _mute_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("mute"))));
360 +- _mute_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("mute"))));
361 +- _mute_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("mute"))));
362 ++ _mute_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("mute"))));
363 ++ _mute_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("mute"))));
364 ++ _mute_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("mute"))));
365 +
366 +- _pause_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("pause"))));
367 +- _pause_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("pause"))));
368 +- _pause_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("pause"))));
369 ++ _pause_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("pause"))));
370 ++ _pause_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("pause"))));
371 ++ _pause_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("pause"))));
372 +
373 +- _solo_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("solo"))));
374 +- _solo_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("solo"))));
375 +- _solo_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("solo"))));
376 ++ _solo_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("solo"))));
377 ++ _solo_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("solo"))));
378 ++ _solo_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("solo"))));
379 +
380 +- _halfx_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 0.5f));
381 +- _halfx_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 0.5f));
382 +- _1x_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 1.0f));
383 +- _1x_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 1.0f));
384 +- _2x_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::rate_button_event), 2.0f));
385 +- _2x_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::rate_bind_events), 2.0f));
386 ++ _halfx_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 0.5f));
387 ++ _halfx_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 0.5f));
388 ++ _1x_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 1.0f));
389 ++ _1x_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 1.0f));
390 ++ _2x_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_button_event), 2.0f));
391 ++ _2x_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::rate_bind_events), 2.0f));
392 +
393 +- _scratch_button->pressed.connect (bind (mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("scratch"))));
394 +- _scratch_button->released.connect (bind (mem_fun (*this, &LooperPanel::released_events), wxString(wxT("scratch"))));
395 +- _scratch_button->bind_request.connect (bind (mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("scratch"))));
396 ++ _scratch_button->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::pressed_events), wxString(wxT("scratch"))));
397 ++ _scratch_button->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::released_events), wxString(wxT("scratch"))));
398 ++ _scratch_button->bind_request.connect (sigc::bind(mem_fun (*this, &LooperPanel::button_bind_events), wxString(wxT("scratch"))));
399 +
400 +- _save_button->clicked.connect (bind (mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("save"))));
401 +- _load_button->clicked.connect (bind (mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("load"))));
402 ++ _save_button->clicked.connect (sigc::bind(mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("save"))));
403 ++ _load_button->clicked.connect (sigc::bind(mem_fun (*this, &LooperPanel::clicked_events), wxString(wxT("load"))));
404 +
405 +
406 +- _scratch_control->pressed.connect (bind (mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_press"))));
407 +- _scratch_control->released.connect (bind (mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_release"))));
408 ++ _scratch_control->pressed.connect (sigc::bind(mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_press"))));
409 ++ _scratch_control->released.connect (sigc::bind(mem_fun (*this, &LooperPanel::scratch_events), wxString(wxT("scratch_release"))));
410 +
411 +
412 + _loop_control->MidiBindingChanged.connect (mem_fun (*this, &LooperPanel::got_binding_changed));
413 +diff --git a/src/gui/main_panel.cpp b/src/gui/main_panel.cpp
414 +index 1734eb6..b0c1bac 100644
415 +--- a/src/gui/main_panel.cpp
416 ++++ b/src/gui/main_panel.cpp
417 +@@ -217,7 +217,7 @@ MainPanel::init()
418 + _sync_choice->set_label (wxT("sync to"));
419 + _sync_choice->SetFont (sliderFont);
420 + _sync_choice->value_changed.connect (mem_fun (*this, &MainPanel::on_syncto_change));
421 +- _sync_choice->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("sync")));
422 ++ _sync_choice->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("sync")));
423 +
424 + rowsizer->Add (_sync_choice, 0, wxALL|wxEXPAND, 2);
425 +
426 +@@ -228,7 +228,7 @@ MainPanel::init()
427 + _tempo_bar->set_allow_outside_bounds(true);
428 + _tempo_bar->SetFont (sliderFont);
429 + _tempo_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_tempo_change));
430 +- _tempo_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("tempo")));
431 ++ _tempo_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("tempo")));
432 + rowsizer->Add (_tempo_bar, 0, wxALL|wxEXPAND, 2);
433 +
434 + _taptempo_button = new PixButton(_top_panel, ID_TapTempoButton, true);
435 +@@ -239,7 +239,7 @@ MainPanel::init()
436 + _taptempo_button->set_active_bitmap (wxBitmap(tap_tempo_active));
437 + _taptempo_button->pressed.connect (mem_fun (*this, &MainPanel::on_taptempo_press));
438 + _taptempo_button->released.connect (mem_fun (*this, &MainPanel::on_taptempo_release));
439 +- _taptempo_button->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("taptempo")));
440 ++ _taptempo_button->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("taptempo")));
441 + rowsizer->Add (_taptempo_button, 0, wxALL|wxEXPAND, 2);
442 +
443 +
444 +@@ -250,7 +250,7 @@ MainPanel::init()
445 + _eighth_cycle_bar->set_allow_outside_bounds(true);
446 + _eighth_cycle_bar->SetFont (sliderFont);
447 + _eighth_cycle_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_eighth_change));
448 +- _eighth_cycle_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("eighth")));
449 ++ _eighth_cycle_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("eighth")));
450 + rowsizer->Add (_eighth_cycle_bar, 0, wxALL|wxEXPAND, 2);
451 +
452 +
453 +@@ -258,7 +258,7 @@ MainPanel::init()
454 + _quantize_choice->SetFont (sliderFont);
455 + _quantize_choice->set_label (wxT("quantize"));
456 + _quantize_choice->value_changed.connect (mem_fun (*this, &MainPanel::on_quantize_change));
457 +- _quantize_choice->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("quantize")));
458 ++ _quantize_choice->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("quantize")));
459 + _quantize_choice->append_choice (wxT("off"), 0);
460 + _quantize_choice->append_choice (wxT("cycle"), 1);
461 + _quantize_choice->append_choice (wxT("8th"), 2);
462 +@@ -269,21 +269,21 @@ MainPanel::init()
463 + _mute_quant_check->SetFont(sliderFont);
464 + _mute_quant_check->SetToolTip(wxT("quantize mute operations"));
465 + _mute_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_mute_quant_check));
466 +- _mute_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("mute_quantized")));
467 ++ _mute_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("mute_quantized")));
468 + rowsizer->Add (_mute_quant_check, 0, wxALL|wxEXPAND, 2);
469 +
470 + _odub_quant_check = new CheckBox(_top_panel, ID_OdubQuantCheck, wxT("odub quant"), true, wxDefaultPosition, wxSize(90, 18));
471 + _odub_quant_check->SetFont(sliderFont);
472 + _odub_quant_check->SetToolTip(wxT("quantize overdub operations"));
473 + _odub_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_odub_quant_check));
474 +- _odub_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("overdub_quantized")));
475 ++ _odub_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("overdub_quantized")));
476 + rowsizer->Add (_odub_quant_check, 0, wxALL|wxEXPAND, 2);
477 +
478 + _repl_quant_check = new CheckBox(_top_panel, ID_ReplQuantCheck, wxT("repl quant"), true, wxDefaultPosition, wxSize(90, 18));
479 + _repl_quant_check->SetFont(sliderFont);
480 + _repl_quant_check->SetToolTip(wxT("quantize replace and substitute operations"));
481 + _repl_quant_check->value_changed.connect (mem_fun (*this, &MainPanel::on_repl_quant_check));
482 +- _repl_quant_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("replace_quantized")));
483 ++ _repl_quant_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("replace_quantized")));
484 + rowsizer->Add (_repl_quant_check, 0, wxALL|wxEXPAND, 2);
485 +
486 +
487 +@@ -305,7 +305,7 @@ MainPanel::init()
488 + _xfade_bar->set_decimal_digits (0);
489 + _xfade_bar->SetFont (sliderFont);
490 + _xfade_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_xfade_change));
491 +- _xfade_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("fade_samples")));
492 ++ _xfade_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("fade_samples")));
493 + rowsizer->Add (_xfade_bar, 0, wxALL|wxEXPAND, 2);
494 +
495 + _common_ingain_bar = new SliderBar(_top_panel, ID_InGainControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20));
496 +@@ -315,7 +315,7 @@ MainPanel::init()
497 + _common_ingain_bar->set_show_indicator_bar(true);
498 + _common_ingain_bar->SetFont(sliderFont);
499 + _common_ingain_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_ingain_change));
500 +- _common_ingain_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("input_gain")));
501 ++ _common_ingain_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("input_gain")));
502 + rowsizer->Add (_common_ingain_bar, 0, wxALL|wxEXPAND, 2);
503 +
504 + _common_dry_bar = new SliderBar(_top_panel, ID_DryControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20));
505 +@@ -325,7 +325,7 @@ MainPanel::init()
506 + _common_dry_bar->set_show_indicator_bar(true);
507 + _common_dry_bar->SetFont(sliderFont);
508 + _common_dry_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_dry_change));
509 +- _common_dry_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("dry")));
510 ++ _common_dry_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("dry")));
511 + rowsizer->Add (_common_dry_bar, 0, wxALL|wxEXPAND, 2);
512 +
513 + _common_wet_bar = new SliderBar(_top_panel, ID_WetControl, 0.0f, 1.0f, 1.0f, true, wxDefaultPosition, wxSize(132,20));
514 +@@ -335,7 +335,7 @@ MainPanel::init()
515 + _common_wet_bar->set_show_indicator_bar(true);
516 + _common_wet_bar->SetFont(sliderFont);
517 + _common_wet_bar->value_changed.connect (mem_fun (*this, &MainPanel::on_wet_change));
518 +- _common_wet_bar->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("wet")));
519 ++ _common_wet_bar->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("wet")));
520 + rowsizer->Add (_common_wet_bar, 0, wxALL|wxEXPAND, 2);
521 +
522 +
523 +@@ -343,13 +343,13 @@ MainPanel::init()
524 + _round_check = new CheckBox (_top_panel, ID_RoundCheck, wxT("round"), true, wxDefaultPosition, wxSize(60, 20));
525 + _round_check->SetFont (sliderFont);
526 + _round_check->value_changed.connect (mem_fun (*this, &MainPanel::on_round_check));
527 +- _round_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("round")));
528 ++ _round_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("round")));
529 + rowsizer->Add (_round_check, 0, wxALL|wxEXPAND, 2);
530 +
531 + _relsync_check = new CheckBox (_top_panel, ID_RelSyncCheck, wxT("rel sync"), true, wxDefaultPosition, wxSize(75, 20));
532 + _relsync_check->SetFont (sliderFont);
533 + _relsync_check->value_changed.connect (mem_fun (*this, &MainPanel::on_relsync_check));
534 +- _relsync_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("relative_sync")));
535 ++ _relsync_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("relative_sync")));
536 + rowsizer->Add (_relsync_check, 0, wxALL|wxEXPAND, 2);
537 +
538 +
539 +@@ -357,7 +357,7 @@ MainPanel::init()
540 + _smart_eighths_check->SetFont(sliderFont);
541 + _smart_eighths_check->SetToolTip(wxT("auto adjust 8ths per cycle with tempo"));
542 + _smart_eighths_check->value_changed.connect (mem_fun (*this, &MainPanel::on_smart_eighths_check));
543 +- _smart_eighths_check->bind_request.connect (bind (mem_fun (*this, &MainPanel::on_bind_request), wxT("smart_eighths")));
544 ++ _smart_eighths_check->bind_request.connect (sigc::bind(mem_fun (*this, &MainPanel::on_bind_request), wxT("smart_eighths")));
545 + rowsizer->Add (_smart_eighths_check, 0, wxALL|wxEXPAND, 2);
546 +
547 +
548 +@@ -379,7 +379,7 @@ MainPanel::init()
549 +
550 + // todo request how many loopers to construct based on connection
551 + _loop_connect_connection = _loop_control->LooperConnected.connect (mem_fun (*this, &MainPanel::init_loopers));
552 +- _loop_disconnect_connection = _loop_control->Disconnected.connect (bind (mem_fun (*this, &MainPanel::init_loopers), 0));
553 ++ _loop_disconnect_connection = _loop_control->Disconnected.connect (sigc::bind(mem_fun (*this, &MainPanel::init_loopers), 0));
554 + _loop_update_connection = _loop_control->NewDataReady.connect (mem_fun (*this, &MainPanel::osc_data_ready));
555 +
556 +
557 +@@ -1112,67 +1112,67 @@ MainPanel::process_key_event (wxKeyEvent &ev)
558 + void MainPanel::intialize_keybindings ()
559 + {
560 +
561 +- _keyboard->add_action ("record", bind (mem_fun (*this, &MainPanel::command_action), wxT("record")));
562 +- _keyboard->add_action ("overdub", bind (mem_fun (*this, &MainPanel::command_action), wxT("overdub")));
563 +- _keyboard->add_action ("multiply", bind (mem_fun (*this, &MainPanel::command_action), wxT("multiply")));
564 +- _keyboard->add_action ("insert", bind (mem_fun (*this, &MainPanel::command_action), wxT("insert")));
565 +- _keyboard->add_action ("replace", bind (mem_fun (*this, &MainPanel::command_action), wxT("replace")));
566 +- _keyboard->add_action ("reverse", bind (mem_fun (*this, &MainPanel::command_action), wxT("reverse")));
567 +- _keyboard->add_action ("scratch", bind (mem_fun (*this, &MainPanel::command_action), wxT("scratch")));
568 +- _keyboard->add_action ("substitute", bind (mem_fun (*this, &MainPanel::command_action), wxT("substitute")));
569 +- _keyboard->add_action ("mute", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute")));
570 +- _keyboard->add_action ("mute_on", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_on")));
571 +- _keyboard->add_action ("mute_off", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_off")));
572 +- _keyboard->add_action ("mute_trigger", bind (mem_fun (*this, &MainPanel::command_action), wxT("mute_trigger")));
573 +- _keyboard->add_action ("undo", bind (mem_fun (*this, &MainPanel::command_action), wxT("undo")));
574 +- _keyboard->add_action ("redo", bind (mem_fun (*this, &MainPanel::command_action), wxT("redo")));
575 +- _keyboard->add_action ("undo_all", bind (mem_fun (*this, &MainPanel::command_action), wxT("undo_all")));
576 +- _keyboard->add_action ("redo_all", bind (mem_fun (*this, &MainPanel::command_action), wxT("redo_all")));
577 +- _keyboard->add_action ("oneshot", bind (mem_fun (*this, &MainPanel::command_action), wxT("oneshot")));
578 +- _keyboard->add_action ("trigger", bind (mem_fun (*this, &MainPanel::command_action), wxT("trigger")));
579 +- _keyboard->add_action ("pause", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause")));
580 +- _keyboard->add_action ("pause_on", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause_on")));
581 +- _keyboard->add_action ("pause_off", bind (mem_fun (*this, &MainPanel::command_action), wxT("pause_off")));
582 +- _keyboard->add_action ("solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo")));
583 +- _keyboard->add_action ("solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo_prev")));
584 +- _keyboard->add_action ("solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("solo_next")));
585 +- _keyboard->add_action ("record_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo")));
586 +- _keyboard->add_action ("record_solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo_prev")));
587 +- _keyboard->add_action ("record_solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_solo_next")));
588 +- _keyboard->add_action ("set_sync_pos", bind (mem_fun (*this, &MainPanel::command_action), wxT("set_sync_pos")));
589 +- _keyboard->add_action ("reset_sync_pos", bind (mem_fun (*this, &MainPanel::command_action), wxT("reset_sync_pos")));
590 +- _keyboard->add_action ("record_or_overdub", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub")));
591 +- _keyboard->add_action ("record_exclusive", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive")));
592 +- _keyboard->add_action ("record_exclusive_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_next")));
593 +- _keyboard->add_action ("record_exclusive_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_prev")));
594 +- _keyboard->add_action ("record_or_overdub_excl", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl")));
595 +- _keyboard->add_action ("record_or_overdub_excl_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_next")));
596 +- _keyboard->add_action ("record_or_overdub_excl_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_prev")));
597 +- _keyboard->add_action ("record_or_overdub_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo")));
598 +- _keyboard->add_action ("record_or_overdub_solo_next", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_next")));
599 +- _keyboard->add_action ("record_or_overdub_solo_prev", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_prev")));
600 +- _keyboard->add_action ("record_overdub_end_solo", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo")));
601 +- _keyboard->add_action ("record_overdub_end_solo_trig", bind (mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo_trig")));
602 ++ _keyboard->add_action ("record", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record")));
603 ++ _keyboard->add_action ("overdub", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("overdub")));
604 ++ _keyboard->add_action ("multiply", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("multiply")));
605 ++ _keyboard->add_action ("insert", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("insert")));
606 ++ _keyboard->add_action ("replace", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("replace")));
607 ++ _keyboard->add_action ("reverse", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("reverse")));
608 ++ _keyboard->add_action ("scratch", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("scratch")));
609 ++ _keyboard->add_action ("substitute", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("substitute")));
610 ++ _keyboard->add_action ("mute", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute")));
611 ++ _keyboard->add_action ("mute_on", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_on")));
612 ++ _keyboard->add_action ("mute_off", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_off")));
613 ++ _keyboard->add_action ("mute_trigger", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("mute_trigger")));
614 ++ _keyboard->add_action ("undo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("undo")));
615 ++ _keyboard->add_action ("redo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("redo")));
616 ++ _keyboard->add_action ("undo_all", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("undo_all")));
617 ++ _keyboard->add_action ("redo_all", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("redo_all")));
618 ++ _keyboard->add_action ("oneshot", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("oneshot")));
619 ++ _keyboard->add_action ("trigger", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("trigger")));
620 ++ _keyboard->add_action ("pause", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause")));
621 ++ _keyboard->add_action ("pause_on", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause_on")));
622 ++ _keyboard->add_action ("pause_off", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("pause_off")));
623 ++ _keyboard->add_action ("solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo")));
624 ++ _keyboard->add_action ("solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo_prev")));
625 ++ _keyboard->add_action ("solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("solo_next")));
626 ++ _keyboard->add_action ("record_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo")));
627 ++ _keyboard->add_action ("record_solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo_prev")));
628 ++ _keyboard->add_action ("record_solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_solo_next")));
629 ++ _keyboard->add_action ("set_sync_pos", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("set_sync_pos")));
630 ++ _keyboard->add_action ("reset_sync_pos", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("reset_sync_pos")));
631 ++ _keyboard->add_action ("record_or_overdub", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub")));
632 ++ _keyboard->add_action ("record_exclusive", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive")));
633 ++ _keyboard->add_action ("record_exclusive_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_next")));
634 ++ _keyboard->add_action ("record_exclusive_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_exclusive_prev")));
635 ++ _keyboard->add_action ("record_or_overdub_excl", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl")));
636 ++ _keyboard->add_action ("record_or_overdub_excl_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_next")));
637 ++ _keyboard->add_action ("record_or_overdub_excl_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_excl_prev")));
638 ++ _keyboard->add_action ("record_or_overdub_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo")));
639 ++ _keyboard->add_action ("record_or_overdub_solo_next", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_next")));
640 ++ _keyboard->add_action ("record_or_overdub_solo_prev", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_or_overdub_solo_prev")));
641 ++ _keyboard->add_action ("record_overdub_end_solo", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo")));
642 ++ _keyboard->add_action ("record_overdub_end_solo_trig", sigc::bind(mem_fun (*this, &MainPanel::command_action), wxT("record_overdub_end_solo_trig")));
643 +
644 +
645 +- _keyboard->add_action ("delay", bind (mem_fun (*this, &MainPanel::misc_action), wxT("delay")));
646 +- _keyboard->add_action ("taptempo", bind (mem_fun (*this, &MainPanel::misc_action), wxT("taptempo")));
647 +- _keyboard->add_action ("load", bind (mem_fun (*this, &MainPanel::misc_action), wxT("load")));
648 +- _keyboard->add_action ("save", bind (mem_fun (*this, &MainPanel::misc_action), wxT("save")));
649 +- _keyboard->add_action ("cancel_midi_learn", bind (mem_fun (*this, &MainPanel::misc_action), wxT("cancel_learn")));
650 +-
651 +- _keyboard->add_action ("select_prev_loop", bind (mem_fun (*this, &MainPanel::select_loop_action), -2));
652 +- _keyboard->add_action ("select_next_loop", bind (mem_fun (*this, &MainPanel::select_loop_action), -1));
653 +- _keyboard->add_action ("select_loop_1", bind (mem_fun (*this, &MainPanel::select_loop_action), 1));
654 +- _keyboard->add_action ("select_loop_2", bind (mem_fun (*this, &MainPanel::select_loop_action), 2));
655 +- _keyboard->add_action ("select_loop_3", bind (mem_fun (*this, &MainPanel::select_loop_action), 3));
656 +- _keyboard->add_action ("select_loop_4", bind (mem_fun (*this, &MainPanel::select_loop_action), 4));
657 +- _keyboard->add_action ("select_loop_5", bind (mem_fun (*this, &MainPanel::select_loop_action), 5));
658 +- _keyboard->add_action ("select_loop_6", bind (mem_fun (*this, &MainPanel::select_loop_action), 6));
659 +- _keyboard->add_action ("select_loop_7", bind (mem_fun (*this, &MainPanel::select_loop_action), 7));
660 +- _keyboard->add_action ("select_loop_8", bind (mem_fun (*this, &MainPanel::select_loop_action), 8));
661 +- _keyboard->add_action ("select_loop_9", bind (mem_fun (*this, &MainPanel::select_loop_action), 9));
662 +- _keyboard->add_action ("select_loop_all", bind (mem_fun (*this, &MainPanel::select_loop_action), 0));
663 ++ _keyboard->add_action ("delay", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("delay")));
664 ++ _keyboard->add_action ("taptempo", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("taptempo")));
665 ++ _keyboard->add_action ("load", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("load")));
666 ++ _keyboard->add_action ("save", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("save")));
667 ++ _keyboard->add_action ("cancel_midi_learn", sigc::bind(mem_fun (*this, &MainPanel::misc_action), wxT("cancel_learn")));
668 ++
669 ++ _keyboard->add_action ("select_prev_loop", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), -2));
670 ++ _keyboard->add_action ("select_next_loop", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), -1));
671 ++ _keyboard->add_action ("select_loop_1", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 1));
672 ++ _keyboard->add_action ("select_loop_2", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 2));
673 ++ _keyboard->add_action ("select_loop_3", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 3));
674 ++ _keyboard->add_action ("select_loop_4", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 4));
675 ++ _keyboard->add_action ("select_loop_5", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 5));
676 ++ _keyboard->add_action ("select_loop_6", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 6));
677 ++ _keyboard->add_action ("select_loop_7", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 7));
678 ++ _keyboard->add_action ("select_loop_8", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 8));
679 ++ _keyboard->add_action ("select_loop_9", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 9));
680 ++ _keyboard->add_action ("select_loop_all", sigc::bind(mem_fun (*this, &MainPanel::select_loop_action), 0));
681 +
682 +
683 + // these are the defaults... they get overridden by rc file
684
685 diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch b/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch
686 new file mode 100644
687 index 00000000000..653303cfb55
688 --- /dev/null
689 +++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-libsigc28.patch
690 @@ -0,0 +1,124 @@
691 +From 920443d3f7afb26f735f4002f3beed8766530d9b Mon Sep 17 00:00:00 2001
692 +From: vixus0 <vixus0@×××××.com>
693 +Date: Tue, 7 Jun 2016 22:06:02 +0100
694 +Subject: [PATCH] Update libsigc++ trackable header import
695 +
696 +The `object.h` header was removed in libsigc++ 2.5.2 and `sigc::trackable` is now provided
697 +in `trackable.h`.
698 +
699 +Original fix for Arch provided by AUR user sahquievaedoajie.
700 +---
701 + src/control_osc.hpp | 2 +-
702 + src/gui/app_frame.hpp | 2 +-
703 + src/gui/config_panel.hpp | 2 +-
704 + src/gui/keys_panel.hpp | 2 +-
705 + src/gui/latency_panel.hpp | 2 +-
706 + src/gui/main_panel.hpp | 2 +-
707 + src/gui/midi_bind_panel.hpp | 2 +-
708 + src/gui/prefs_dialog.hpp | 2 +-
709 + 8 files changed, 8 insertions(+), 8 deletions(-)
710 +
711 +diff --git a/src/control_osc.hpp b/src/control_osc.hpp
712 +index 11b4e78..d83564f 100644
713 +--- a/src/control_osc.hpp
714 ++++ b/src/control_osc.hpp
715 +@@ -27,7 +27,7 @@
716 + #include <list>
717 + #include <utility>
718 +
719 +-#include <sigc++/object.h>
720 ++#include <sigc++/trackable.h>
721 +
722 + #include "event.hpp"
723 + #include "event_nonrt.hpp"
724 +diff --git a/src/gui/app_frame.hpp b/src/gui/app_frame.hpp
725 +index e24ff92..36cc18f 100644
726 +--- a/src/gui/app_frame.hpp
727 ++++ b/src/gui/app_frame.hpp
728 +@@ -26,7 +26,7 @@
729 + #include <string>
730 + #include <vector>
731 +
732 +-#include <sigc++/object.h>
733 ++#include <sigc++/trackable.h>
734 + #include <sigc++/signal.h>
735 + #include <sigc++/connection.h>
736 +
737 +diff --git a/src/gui/config_panel.hpp b/src/gui/config_panel.hpp
738 +index 2b413e9..46c849f 100644
739 +--- a/src/gui/config_panel.hpp
740 ++++ b/src/gui/config_panel.hpp
741 +@@ -26,7 +26,7 @@
742 +
743 + #include <string>
744 + #include <vector>
745 +-#include <sigc++/object.h>
746 ++#include <sigc++/trackable.h>
747 +
748 + class wxListCtrl;
749 + class wxSpinCtrl;
750 +diff --git a/src/gui/keys_panel.hpp b/src/gui/keys_panel.hpp
751 +index b2c5955..c028c8f 100644
752 +--- a/src/gui/keys_panel.hpp
753 ++++ b/src/gui/keys_panel.hpp
754 +@@ -26,7 +26,7 @@
755 +
756 + #include <string>
757 + #include <vector>
758 +-#include <sigc++/object.h>
759 ++#include <sigc++/trackable.h>
760 +
761 + class wxListCtrl;
762 +
763 +diff --git a/src/gui/latency_panel.hpp b/src/gui/latency_panel.hpp
764 +index 07dc30f..847da2b 100644
765 +--- a/src/gui/latency_panel.hpp
766 ++++ b/src/gui/latency_panel.hpp
767 +@@ -26,7 +26,7 @@
768 +
769 + #include <string>
770 + #include <vector>
771 +-#include <sigc++/object.h>
772 ++#include <sigc++/trackable.h>
773 +
774 + class wxListCtrl;
775 +
776 +diff --git a/src/gui/main_panel.hpp b/src/gui/main_panel.hpp
777 +index 0b4ac7d..64cba4c 100644
778 +--- a/src/gui/main_panel.hpp
779 ++++ b/src/gui/main_panel.hpp
780 +@@ -26,7 +26,7 @@
781 + #include <string>
782 + #include <vector>
783 +
784 +-#include <sigc++/object.h>
785 ++#include <sigc++/trackable.h>
786 + #include <sigc++/signal.h>
787 + #include <sigc++/connection.h>
788 +
789 +diff --git a/src/gui/midi_bind_panel.hpp b/src/gui/midi_bind_panel.hpp
790 +index e919cf2..0d05003 100644
791 +--- a/src/gui/midi_bind_panel.hpp
792 ++++ b/src/gui/midi_bind_panel.hpp
793 +@@ -26,7 +26,7 @@
794 +
795 + #include <string>
796 + #include <vector>
797 +-#include <sigc++/object.h>
798 ++#include <sigc++/trackable.h>
799 + #include <list>
800 +
801 + #include <midi_bind.hpp>
802 +diff --git a/src/gui/prefs_dialog.hpp b/src/gui/prefs_dialog.hpp
803 +index ea59db1..29fee16 100644
804 +--- a/src/gui/prefs_dialog.hpp
805 ++++ b/src/gui/prefs_dialog.hpp
806 +@@ -26,7 +26,7 @@
807 +
808 + #include <string>
809 + #include <vector>
810 +-#include <sigc++/object.h>
811 ++#include <sigc++/trackable.h>
812 +
813 + class wxListCtrl;
814 + class wxSpinCtrl;
815
816 diff --git a/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
817 new file mode 100644
818 index 00000000000..5d2301bfa9d
819 --- /dev/null
820 +++ b/media-sound/sooperlooper/sooperlooper-1.7.3-r2.ebuild
821 @@ -0,0 +1,62 @@
822 +# Copyright 1999-2018 Gentoo Foundation
823 +# Distributed under the terms of the GNU General Public License v2
824 +
825 +EAPI=6
826 +WX_GTK_VER=3.0
827 +
828 +inherit autotools flag-o-matic wxwidgets toolchain-funcs
829 +
830 +DESCRIPTION="Live looping sampler with immediate loop recording"
831 +HOMEPAGE="http://essej.net/sooperlooper/index.html"
832 +SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
833 + mirror://gentoo/${PN}-1.6.5-m4.tar.bz2
834 +"
835 +
836 +LICENSE="GPL-2"
837 +SLOT="0"
838 +KEYWORDS="~amd64 ~ppc ~x86"
839 +IUSE="wxwidgets"
840 +
841 +RDEPEND="
842 + media-sound/jack-audio-connection-kit
843 + >=media-libs/liblo-0.10
844 + >=dev-libs/libsigc++-2.8:2
845 + >=media-libs/libsndfile-1.0.2
846 + >=media-libs/libsamplerate-0.0.13
847 + dev-libs/libxml2:2
848 + >=media-libs/rubberband-0.0.13
849 + sci-libs/fftw:3.0=
850 + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
851 +"
852 +DEPEND="${RDEPEND}
853 + virtual/pkgconfig
854 +"
855 +
856 +S="${WORKDIR}/${P/_p*}"
857 +
858 +DOCS=( OSC README )
859 +
860 +PATCHES=(
861 + "${FILESDIR}"/${P}-wx3.0.patch
862 + "${FILESDIR}"/${P}-libsigc28.patch
863 + "${FILESDIR}"/${P}-clash.patch
864 +)
865 +
866 +src_prepare() {
867 + default
868 + cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
869 + AT_M4DIR="${S}"/aclocal eautoreconf
870 +}
871 +
872 +src_configure() {
873 + use wxwidgets && need-wxwidgets unicode
874 + append-cppflags -std=c++11 # Its ugly build system honors CPPFLAGS instead of CXXFLAGS for this
875 + econf \
876 + $(use_with wxwidgets gui) \
877 + --disable-optimize \
878 + --with-wxconfig-path="${WX_CONFIG}"
879 +}
880 +
881 +src_compile() {
882 + emake AR="$(tc-getAR)"
883 +}