summaryrefslogtreecommitdiff
path: root/libs/surfaces/faderport8/actions.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-04-15 21:20:51 +0200
committerRobin Gareus <robin@gareus.org>2017-04-15 21:20:51 +0200
commit8a3d9317bd1dc259f1e4debb1fb0559cf0466d5b (patch)
tree53518e4dbc6c43d23f4a8fb980bb5b3021ebc290 /libs/surfaces/faderport8/actions.cc
parent18dcd4d7ff2855e87fc78395f2009ebafd24cc7a (diff)
FaderPort8 details:
* make shift buttons equivalent * 2 x stop: move to session-start * RTZ: return to zero (not session-start) * in Pan mode: encoder controls pan-width (w/o shift)
Diffstat (limited to 'libs/surfaces/faderport8/actions.cc')
-rw-r--r--libs/surfaces/faderport8/actions.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/surfaces/faderport8/actions.cc b/libs/surfaces/faderport8/actions.cc
index 0d95b3cdc7..e6ad7fd062 100644
--- a/libs/surfaces/faderport8/actions.cc
+++ b/libs/surfaces/faderport8/actions.cc
@@ -118,7 +118,11 @@ FaderPort8::button_play ()
void
FaderPort8::button_stop ()
{
- transport_stop ();
+ if (session->transport_rolling ()) {
+ transport_stop ();
+ } else {
+ AccessAction ("Transport", "GotoStart");
+ }
}
void
@@ -205,7 +209,7 @@ FaderPort8::button_varispeed (bool ffw)
// stop key-repeat
dynamic_cast<FP8RepeatButton*>(&b_ffw)->stop_repeat();
dynamic_cast<FP8RepeatButton*>(&b_rew)->stop_repeat();
- AccessAction ("Transport", "GotoStart");
+ session->request_locate (0, false);
return;
}
@@ -443,7 +447,7 @@ FaderPort8::button_parameter ()
boost::shared_ptr<Stripable> s = first_selected_stripable();
if (s) {
boost::shared_ptr<AutomationControl> ac;
- if (shift_mod ()) {
+ if (shift_mod () || _ctrls.fader_mode() == ModePan) {
ac = s->pan_width_control ();
} else {
ac = s->pan_azimuth_control ();
@@ -475,7 +479,7 @@ FaderPort8::encoder_parameter (bool neg, int steps)
boost::shared_ptr<Stripable> s = first_selected_stripable();
if (s) {
boost::shared_ptr<AutomationControl> ac;
- if (shift_mod ()) {
+ if (shift_mod () || _ctrls.fader_mode() == ModePan) {
ac = s->pan_width_control ();
} else {
ac = s->pan_azimuth_control ();