diff options
author | John Anderson <ardour@semiosix.com> | 2007-07-17 06:30:26 +0000 |
---|---|---|
committer | John Anderson <ardour@semiosix.com> | 2007-07-17 06:30:26 +0000 |
commit | a1a859b1e8a4624da280cdf1715db117e0be74fc (patch) | |
tree | 07fb5f4a7094057987746c1680cbe648bcd5982e | |
parent | c0529df1a354d51911921b15acdb771707c44287 (diff) |
fix for overlapping control ids (jog wheel with F7 and external with left)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2136 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | libs/surfaces/mackie/bcf_surface.cc | 134 | ||||
-rw-r--r-- | libs/surfaces/mackie/controls.h | 17 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_midi_builder.cc | 6 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_midi_builder.h | 7 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_surface.cc | 128 | ||||
-rw-r--r-- | libs/surfaces/mackie/scripts/controls.rb | 1 | ||||
-rw-r--r-- | libs/surfaces/mackie/scripts/surface-cc-template.erb | 2 | ||||
-rw-r--r-- | libs/surfaces/mackie/surface.cc | 6 | ||||
-rw-r--r-- | libs/surfaces/mackie/surface.h | 2 |
9 files changed, 161 insertions, 142 deletions
diff --git a/libs/surfaces/mackie/bcf_surface.cc b/libs/surfaces/mackie/bcf_surface.cc index 45b5ad85fa..b84226c7f5 100644 --- a/libs/surfaces/mackie/bcf_surface.cc +++ b/libs/surfaces/mackie/bcf_surface.cc @@ -7,6 +7,11 @@ #include "controls.h" #include "mackie_button_handler.h" +#ifdef DEBUG +#include <iostream> +using namespace std; +#endif + using namespace Mackie; void Mackie::BcfSurface::init_controls() @@ -931,10 +936,13 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } LedState ls; +#ifdef DEBUG + cout << button << " switching on " << hex << button.id() << endl; +#endif switch ( button.id() ) { - case 0x28: // io + case 0x9028: // io switch ( bs ) { case press: ls = mbh.io_press( button ); break; case release: ls = mbh.io_release( button ); break; @@ -942,7 +950,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x5a: // sends + case 0x905a: // sends switch ( bs ) { case press: ls = mbh.sends_press( button ); break; case release: ls = mbh.sends_release( button ); break; @@ -950,7 +958,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x59: // pan + case 0x9059: // pan switch ( bs ) { case press: ls = mbh.pan_press( button ); break; case release: ls = mbh.pan_release( button ); break; @@ -958,7 +966,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x57: // plugin + case 0x9057: // plugin switch ( bs ) { case press: ls = mbh.plugin_press( button ); break; case release: ls = mbh.plugin_release( button ); break; @@ -966,7 +974,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x58: // eq + case 0x9058: // eq switch ( bs ) { case press: ls = mbh.eq_press( button ); break; case release: ls = mbh.eq_release( button ); break; @@ -974,7 +982,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2d: // dyn + case 0x902d: // dyn switch ( bs ) { case press: ls = mbh.dyn_press( button ); break; case release: ls = mbh.dyn_release( button ); break; @@ -982,7 +990,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2e: // left + case 0x902e: // left switch ( bs ) { case press: ls = mbh.left_press( button ); break; case release: ls = mbh.left_release( button ); break; @@ -990,7 +998,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2f: // right + case 0x902f: // right switch ( bs ) { case press: ls = mbh.right_press( button ); break; case release: ls = mbh.right_release( button ); break; @@ -998,7 +1006,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x30: // channel_left + case 0x9030: // channel_left switch ( bs ) { case press: ls = mbh.channel_left_press( button ); break; case release: ls = mbh.channel_left_release( button ); break; @@ -1006,7 +1014,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x31: // channel_right + case 0x9031: // channel_right switch ( bs ) { case press: ls = mbh.channel_right_press( button ); break; case release: ls = mbh.channel_right_release( button ); break; @@ -1014,7 +1022,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x32: // flip + case 0x9032: // flip switch ( bs ) { case press: ls = mbh.flip_press( button ); break; case release: ls = mbh.flip_release( button ); break; @@ -1022,7 +1030,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x56: // edit + case 0x9056: // edit switch ( bs ) { case press: ls = mbh.edit_press( button ); break; case release: ls = mbh.edit_release( button ); break; @@ -1030,7 +1038,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x34: // name_value + case 0x9034: // name_value switch ( bs ) { case press: ls = mbh.name_value_press( button ); break; case release: ls = mbh.name_value_release( button ); break; @@ -1038,7 +1046,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x35: // smpte_beats + case 0x9035: // smpte_beats switch ( bs ) { case press: ls = mbh.smpte_beats_press( button ); break; case release: ls = mbh.smpte_beats_release( button ); break; @@ -1046,7 +1054,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x36: // F1 + case 0x9036: // F1 switch ( bs ) { case press: ls = mbh.F1_press( button ); break; case release: ls = mbh.F1_release( button ); break; @@ -1054,7 +1062,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x37: // F2 + case 0x9037: // F2 switch ( bs ) { case press: ls = mbh.F2_press( button ); break; case release: ls = mbh.F2_release( button ); break; @@ -1062,7 +1070,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x38: // F3 + case 0x9038: // F3 switch ( bs ) { case press: ls = mbh.F3_press( button ); break; case release: ls = mbh.F3_release( button ); break; @@ -1070,7 +1078,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x39: // F4 + case 0x9039: // F4 switch ( bs ) { case press: ls = mbh.F4_press( button ); break; case release: ls = mbh.F4_release( button ); break; @@ -1078,7 +1086,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3a: // F5 + case 0x903a: // F5 switch ( bs ) { case press: ls = mbh.F5_press( button ); break; case release: ls = mbh.F5_release( button ); break; @@ -1086,7 +1094,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3b: // F6 + case 0x903b: // F6 switch ( bs ) { case press: ls = mbh.F6_press( button ); break; case release: ls = mbh.F6_release( button ); break; @@ -1094,7 +1102,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3c: // F7 + case 0x903c: // F7 switch ( bs ) { case press: ls = mbh.F7_press( button ); break; case release: ls = mbh.F7_release( button ); break; @@ -1102,7 +1110,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3d: // F8 + case 0x903d: // F8 switch ( bs ) { case press: ls = mbh.F8_press( button ); break; case release: ls = mbh.F8_release( button ); break; @@ -1110,7 +1118,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3e: // F9 + case 0x903e: // F9 switch ( bs ) { case press: ls = mbh.F9_press( button ); break; case release: ls = mbh.F9_release( button ); break; @@ -1118,7 +1126,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x3f: // F10 + case 0x903f: // F10 switch ( bs ) { case press: ls = mbh.F10_press( button ); break; case release: ls = mbh.F10_release( button ); break; @@ -1126,7 +1134,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x40: // F11 + case 0x9040: // F11 switch ( bs ) { case press: ls = mbh.F11_press( button ); break; case release: ls = mbh.F11_release( button ); break; @@ -1134,7 +1142,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x41: // F12 + case 0x9041: // F12 switch ( bs ) { case press: ls = mbh.F12_press( button ); break; case release: ls = mbh.F12_release( button ); break; @@ -1142,7 +1150,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x42: // F13 + case 0x9042: // F13 switch ( bs ) { case press: ls = mbh.F13_press( button ); break; case release: ls = mbh.F13_release( button ); break; @@ -1150,7 +1158,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x43: // F14 + case 0x9043: // F14 switch ( bs ) { case press: ls = mbh.F14_press( button ); break; case release: ls = mbh.F14_release( button ); break; @@ -1158,7 +1166,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x44: // F15 + case 0x9044: // F15 switch ( bs ) { case press: ls = mbh.F15_press( button ); break; case release: ls = mbh.F15_release( button ); break; @@ -1166,7 +1174,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x45: // F16 + case 0x9045: // F16 switch ( bs ) { case press: ls = mbh.F16_press( button ); break; case release: ls = mbh.F16_release( button ); break; @@ -1174,7 +1182,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x27: // global_solo + case 0x9027: // global_solo switch ( bs ) { case press: ls = mbh.global_solo_press( button ); break; case release: ls = mbh.global_solo_release( button ); break; @@ -1182,7 +1190,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x50: // option + case 0x9050: // option switch ( bs ) { case press: ls = mbh.option_press( button ); break; case release: ls = mbh.option_release( button ); break; @@ -1190,7 +1198,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x49: // cmd_alt + case 0x9049: // cmd_alt switch ( bs ) { case press: ls = mbh.cmd_alt_press( button ); break; case release: ls = mbh.cmd_alt_release( button ); break; @@ -1198,7 +1206,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4a: // on + case 0x904a: // on switch ( bs ) { case press: ls = mbh.on_press( button ); break; case release: ls = mbh.on_release( button ); break; @@ -1206,7 +1214,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4b: // rec_ready + case 0x904b: // rec_ready switch ( bs ) { case press: ls = mbh.rec_ready_press( button ); break; case release: ls = mbh.rec_ready_release( button ); break; @@ -1214,7 +1222,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4c: // undo + case 0x904c: // undo switch ( bs ) { case press: ls = mbh.undo_press( button ); break; case release: ls = mbh.undo_release( button ); break; @@ -1222,7 +1230,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4d: // snapshot + case 0x904d: // snapshot switch ( bs ) { case press: ls = mbh.snapshot_press( button ); break; case release: ls = mbh.snapshot_release( button ); break; @@ -1230,7 +1238,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4f: // redo + case 0x904f: // redo switch ( bs ) { case press: ls = mbh.redo_press( button ); break; case release: ls = mbh.redo_release( button ); break; @@ -1238,7 +1246,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x47: // marker + case 0x9047: // marker switch ( bs ) { case press: ls = mbh.marker_press( button ); break; case release: ls = mbh.marker_release( button ); break; @@ -1246,7 +1254,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x51: // enter + case 0x9051: // enter switch ( bs ) { case press: ls = mbh.enter_press( button ); break; case release: ls = mbh.enter_release( button ); break; @@ -1254,7 +1262,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x52: // cancel + case 0x9052: // cancel switch ( bs ) { case press: ls = mbh.cancel_press( button ); break; case release: ls = mbh.cancel_release( button ); break; @@ -1262,7 +1270,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x53: // mixer + case 0x9053: // mixer switch ( bs ) { case press: ls = mbh.mixer_press( button ); break; case release: ls = mbh.mixer_release( button ); break; @@ -1270,7 +1278,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x5b: // frm_left + case 0x905b: // frm_left switch ( bs ) { case press: ls = mbh.frm_left_press( button ); break; case release: ls = mbh.frm_left_release( button ); break; @@ -1278,7 +1286,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x5c: // frm_right + case 0x905c: // frm_right switch ( bs ) { case press: ls = mbh.frm_right_press( button ); break; case release: ls = mbh.frm_right_release( button ); break; @@ -1286,7 +1294,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x46: // loop + case 0x9046: // loop switch ( bs ) { case press: ls = mbh.loop_press( button ); break; case release: ls = mbh.loop_release( button ); break; @@ -1294,7 +1302,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x48: // punch_in + case 0x9048: // punch_in switch ( bs ) { case press: ls = mbh.punch_in_press( button ); break; case release: ls = mbh.punch_in_release( button ); break; @@ -1302,7 +1310,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x4e: // punch_out + case 0x904e: // punch_out switch ( bs ) { case press: ls = mbh.punch_out_press( button ); break; case release: ls = mbh.punch_out_release( button ); break; @@ -1310,7 +1318,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2a: // home + case 0x902a: // home switch ( bs ) { case press: ls = mbh.home_press( button ); break; case release: ls = mbh.home_release( button ); break; @@ -1318,7 +1326,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x29: // end + case 0x9029: // end switch ( bs ) { case press: ls = mbh.end_press( button ); break; case release: ls = mbh.end_release( button ); break; @@ -1326,7 +1334,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2c: // rewind + case 0x902c: // rewind switch ( bs ) { case press: ls = mbh.rewind_press( button ); break; case release: ls = mbh.rewind_release( button ); break; @@ -1334,7 +1342,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x2b: // ffwd + case 0x902b: // ffwd switch ( bs ) { case press: ls = mbh.ffwd_press( button ); break; case release: ls = mbh.ffwd_release( button ); break; @@ -1342,7 +1350,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x5d: // stop + case 0x905d: // stop switch ( bs ) { case press: ls = mbh.stop_press( button ); break; case release: ls = mbh.stop_release( button ); break; @@ -1350,7 +1358,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x5e: // play + case 0x905e: // play switch ( bs ) { case press: ls = mbh.play_press( button ); break; case release: ls = mbh.play_release( button ); break; @@ -1358,7 +1366,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x1f: // record + case 0x901f: // record switch ( bs ) { case press: ls = mbh.record_press( button ); break; case release: ls = mbh.record_release( button ); break; @@ -1366,7 +1374,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x60: // cursor_up + case 0x9060: // cursor_up switch ( bs ) { case press: ls = mbh.cursor_up_press( button ); break; case release: ls = mbh.cursor_up_release( button ); break; @@ -1374,7 +1382,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x61: // cursor_down + case 0x9061: // cursor_down switch ( bs ) { case press: ls = mbh.cursor_down_press( button ); break; case release: ls = mbh.cursor_down_release( button ); break; @@ -1382,7 +1390,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x62: // cursor_left + case 0x9062: // cursor_left switch ( bs ) { case press: ls = mbh.cursor_left_press( button ); break; case release: ls = mbh.cursor_left_release( button ); break; @@ -1390,7 +1398,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x63: // cursor_right + case 0x9063: // cursor_right switch ( bs ) { case press: ls = mbh.cursor_right_press( button ); break; case release: ls = mbh.cursor_right_release( button ); break; @@ -1398,7 +1406,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x64: // zoom + case 0x9064: // zoom switch ( bs ) { case press: ls = mbh.zoom_press( button ); break; case release: ls = mbh.zoom_release( button ); break; @@ -1406,7 +1414,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x65: // scrub + case 0x9065: // scrub switch ( bs ) { case press: ls = mbh.scrub_press( button ); break; case release: ls = mbh.scrub_release( button ); break; @@ -1414,7 +1422,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x66: // user_a + case 0x9066: // user_a switch ( bs ) { case press: ls = mbh.user_a_press( button ); break; case release: ls = mbh.user_a_release( button ); break; @@ -1422,7 +1430,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x67: // user_b + case 0x9067: // user_b switch ( bs ) { case press: ls = mbh.user_b_press( button ); break; case release: ls = mbh.user_b_release( button ); break; @@ -1430,7 +1438,7 @@ void Mackie::BcfSurface::handle_button( MackieButtonHandler & mbh, ButtonState b } break; - case 0x33: // clicking + case 0x9033: // clicking switch ( bs ) { case press: ls = mbh.clicking_press( button ); break; case release: ls = mbh.clicking_release( button ); break; diff --git a/libs/surfaces/mackie/controls.h b/libs/surfaces/mackie/controls.h index 1092c40453..129fe070c6 100644 --- a/libs/surfaces/mackie/controls.h +++ b/libs/surfaces/mackie/controls.h @@ -151,7 +151,7 @@ class Led; class Control { public: - enum type_t { type_fader, type_button, type_pot, type_led, type_led_ring }; + enum type_t { type_led, type_led_ring, type_fader = 0xe0, type_button = 0x90, type_pot = 0xb0 }; Control( int id, int ordinal, std::string name, Group & group ) : _id( id ), _ordinal( ordinal ), _name( name ), _group( group ) @@ -165,17 +165,20 @@ public: throw MackieControlException( "no led available" ); } - /// The midi id of the control + /// type() << 8 + midi id of the control. This + /// provides a unique id of any control on the surface. int id() const { - return _id; + return ( type() << 8 ) + _id; } + /// the value of the second bytes of the message. It's + /// the id of the control, but only guaranteed to be + /// unique within the control type. + int raw_id() const { return _id; } + /// The 1-based number of the control - int ordinal() const - { - return _ordinal; - } + int ordinal() const { return _ordinal; } const std::string & name() const { diff --git a/libs/surfaces/mackie/mackie_midi_builder.cc b/libs/surfaces/mackie/mackie_midi_builder.cc index 8ed98a5720..8ca4c2e3ed 100644 --- a/libs/surfaces/mackie/mackie_midi_builder.cc +++ b/libs/surfaces/mackie/mackie_midi_builder.cc @@ -58,7 +58,7 @@ MidiByteArray MackieMidiBuilder::build_led_ring( const LedRing & led_ring, const // the control type , midi_pot_id // the id - , 0x20 + led_ring.id() + , 0x20 + led_ring.raw_id() // the value , calculate_pot_value( midi_pot_mode_dot, state ) ); @@ -82,7 +82,7 @@ MidiByteArray MackieMidiBuilder::build_led( const Led & led, LedState ls ) return MidiByteArray ( 3 , midi_button_id - , led.id() + , led.raw_id() , state ); } @@ -92,7 +92,7 @@ MidiByteArray MackieMidiBuilder::build_fader( const Fader & fader, float pos ) int posi = int( 0x3fff * pos ); return MidiByteArray ( 3 - , midi_fader_id | fader.id() + , midi_fader_id | fader.raw_id() // lower-order bits , posi & 0x7f // higher-order bits diff --git a/libs/surfaces/mackie/mackie_midi_builder.h b/libs/surfaces/mackie/mackie_midi_builder.h index f0c3d51a54..4f8e2c1140 100644 --- a/libs/surfaces/mackie/mackie_midi_builder.h +++ b/libs/surfaces/mackie/mackie_midi_builder.h @@ -20,6 +20,7 @@ #include "midi_byte_array.h" #include "types.h" +#include "controls.h" namespace Mackie { @@ -37,9 +38,9 @@ public: with the control id */ enum midi_types { - midi_fader_id = 0xe0 - , midi_button_id = 0x90 - , midi_pot_id = 0xb0 + midi_fader_id = Control::type_fader + , midi_button_id = Control::type_button + , midi_pot_id = Control::type_pot }; /** diff --git a/libs/surfaces/mackie/mackie_surface.cc b/libs/surfaces/mackie/mackie_surface.cc index b527f710cc..8d10814b55 100644 --- a/libs/surfaces/mackie/mackie_surface.cc +++ b/libs/surfaces/mackie/mackie_surface.cc @@ -987,7 +987,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat switch ( button.id() ) { - case 0x28: // io + case 0x9028: // io switch ( bs ) { case press: ls = mbh.io_press( button ); break; case release: ls = mbh.io_release( button ); break; @@ -995,7 +995,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x29: // sends + case 0x9029: // sends switch ( bs ) { case press: ls = mbh.sends_press( button ); break; case release: ls = mbh.sends_release( button ); break; @@ -1003,7 +1003,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2a: // pan + case 0x902a: // pan switch ( bs ) { case press: ls = mbh.pan_press( button ); break; case release: ls = mbh.pan_release( button ); break; @@ -1011,7 +1011,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2b: // plugin + case 0x902b: // plugin switch ( bs ) { case press: ls = mbh.plugin_press( button ); break; case release: ls = mbh.plugin_release( button ); break; @@ -1019,7 +1019,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2c: // eq + case 0x902c: // eq switch ( bs ) { case press: ls = mbh.eq_press( button ); break; case release: ls = mbh.eq_release( button ); break; @@ -1027,7 +1027,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2d: // dyn + case 0x902d: // dyn switch ( bs ) { case press: ls = mbh.dyn_press( button ); break; case release: ls = mbh.dyn_release( button ); break; @@ -1035,7 +1035,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2e: // left + case 0x902e: // left switch ( bs ) { case press: ls = mbh.left_press( button ); break; case release: ls = mbh.left_release( button ); break; @@ -1043,7 +1043,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x2f: // right + case 0x902f: // right switch ( bs ) { case press: ls = mbh.right_press( button ); break; case release: ls = mbh.right_release( button ); break; @@ -1051,7 +1051,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x30: // channel_left + case 0x9030: // channel_left switch ( bs ) { case press: ls = mbh.channel_left_press( button ); break; case release: ls = mbh.channel_left_release( button ); break; @@ -1059,7 +1059,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x31: // channel_right + case 0x9031: // channel_right switch ( bs ) { case press: ls = mbh.channel_right_press( button ); break; case release: ls = mbh.channel_right_release( button ); break; @@ -1067,7 +1067,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x32: // flip + case 0x9032: // flip switch ( bs ) { case press: ls = mbh.flip_press( button ); break; case release: ls = mbh.flip_release( button ); break; @@ -1075,7 +1075,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x33: // edit + case 0x9033: // edit switch ( bs ) { case press: ls = mbh.edit_press( button ); break; case release: ls = mbh.edit_release( button ); break; @@ -1083,7 +1083,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x34: // name_value + case 0x9034: // name_value switch ( bs ) { case press: ls = mbh.name_value_press( button ); break; case release: ls = mbh.name_value_release( button ); break; @@ -1091,7 +1091,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x35: // smpte_beats + case 0x9035: // smpte_beats switch ( bs ) { case press: ls = mbh.smpte_beats_press( button ); break; case release: ls = mbh.smpte_beats_release( button ); break; @@ -1099,7 +1099,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x36: // F1 + case 0x9036: // F1 switch ( bs ) { case press: ls = mbh.F1_press( button ); break; case release: ls = mbh.F1_release( button ); break; @@ -1107,7 +1107,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x37: // F2 + case 0x9037: // F2 switch ( bs ) { case press: ls = mbh.F2_press( button ); break; case release: ls = mbh.F2_release( button ); break; @@ -1115,7 +1115,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x38: // F3 + case 0x9038: // F3 switch ( bs ) { case press: ls = mbh.F3_press( button ); break; case release: ls = mbh.F3_release( button ); break; @@ -1123,7 +1123,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x39: // F4 + case 0x9039: // F4 switch ( bs ) { case press: ls = mbh.F4_press( button ); break; case release: ls = mbh.F4_release( button ); break; @@ -1131,7 +1131,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3a: // F5 + case 0x903a: // F5 switch ( bs ) { case press: ls = mbh.F5_press( button ); break; case release: ls = mbh.F5_release( button ); break; @@ -1139,7 +1139,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3b: // F6 + case 0x903b: // F6 switch ( bs ) { case press: ls = mbh.F6_press( button ); break; case release: ls = mbh.F6_release( button ); break; @@ -1147,7 +1147,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3c: // F7 + case 0x903c: // F7 switch ( bs ) { case press: ls = mbh.F7_press( button ); break; case release: ls = mbh.F7_release( button ); break; @@ -1155,7 +1155,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3d: // F8 + case 0x903d: // F8 switch ( bs ) { case press: ls = mbh.F8_press( button ); break; case release: ls = mbh.F8_release( button ); break; @@ -1163,7 +1163,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3e: // F9 + case 0x903e: // F9 switch ( bs ) { case press: ls = mbh.F9_press( button ); break; case release: ls = mbh.F9_release( button ); break; @@ -1171,7 +1171,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x3f: // F10 + case 0x903f: // F10 switch ( bs ) { case press: ls = mbh.F10_press( button ); break; case release: ls = mbh.F10_release( button ); break; @@ -1179,7 +1179,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x40: // F11 + case 0x9040: // F11 switch ( bs ) { case press: ls = mbh.F11_press( button ); break; case release: ls = mbh.F11_release( button ); break; @@ -1187,7 +1187,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x41: // F12 + case 0x9041: // F12 switch ( bs ) { case press: ls = mbh.F12_press( button ); break; case release: ls = mbh.F12_release( button ); break; @@ -1195,7 +1195,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x42: // F13 + case 0x9042: // F13 switch ( bs ) { case press: ls = mbh.F13_press( button ); break; case release: ls = mbh.F13_release( button ); break; @@ -1203,7 +1203,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x43: // F14 + case 0x9043: // F14 switch ( bs ) { case press: ls = mbh.F14_press( button ); break; case release: ls = mbh.F14_release( button ); break; @@ -1211,7 +1211,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x44: // F15 + case 0x9044: // F15 switch ( bs ) { case press: ls = mbh.F15_press( button ); break; case release: ls = mbh.F15_release( button ); break; @@ -1219,7 +1219,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x45: // F16 + case 0x9045: // F16 switch ( bs ) { case press: ls = mbh.F16_press( button ); break; case release: ls = mbh.F16_release( button ); break; @@ -1227,7 +1227,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x46: // shift + case 0x9046: // shift switch ( bs ) { case press: ls = mbh.shift_press( button ); break; case release: ls = mbh.shift_release( button ); break; @@ -1235,7 +1235,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x47: // option + case 0x9047: // option switch ( bs ) { case press: ls = mbh.option_press( button ); break; case release: ls = mbh.option_release( button ); break; @@ -1243,7 +1243,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x48: // control + case 0x9048: // control switch ( bs ) { case press: ls = mbh.control_press( button ); break; case release: ls = mbh.control_release( button ); break; @@ -1251,7 +1251,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x49: // cmd_alt + case 0x9049: // cmd_alt switch ( bs ) { case press: ls = mbh.cmd_alt_press( button ); break; case release: ls = mbh.cmd_alt_release( button ); break; @@ -1259,7 +1259,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4a: // on + case 0x904a: // on switch ( bs ) { case press: ls = mbh.on_press( button ); break; case release: ls = mbh.on_release( button ); break; @@ -1267,7 +1267,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4b: // rec_ready + case 0x904b: // rec_ready switch ( bs ) { case press: ls = mbh.rec_ready_press( button ); break; case release: ls = mbh.rec_ready_release( button ); break; @@ -1275,7 +1275,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4c: // undo + case 0x904c: // undo switch ( bs ) { case press: ls = mbh.undo_press( button ); break; case release: ls = mbh.undo_release( button ); break; @@ -1283,7 +1283,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4d: // snapshot + case 0x904d: // snapshot switch ( bs ) { case press: ls = mbh.snapshot_press( button ); break; case release: ls = mbh.snapshot_release( button ); break; @@ -1291,7 +1291,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4e: // touch + case 0x904e: // touch switch ( bs ) { case press: ls = mbh.touch_press( button ); break; case release: ls = mbh.touch_release( button ); break; @@ -1299,7 +1299,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x4f: // redo + case 0x904f: // redo switch ( bs ) { case press: ls = mbh.redo_press( button ); break; case release: ls = mbh.redo_release( button ); break; @@ -1307,7 +1307,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x50: // marker + case 0x9050: // marker switch ( bs ) { case press: ls = mbh.marker_press( button ); break; case release: ls = mbh.marker_release( button ); break; @@ -1315,7 +1315,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x51: // enter + case 0x9051: // enter switch ( bs ) { case press: ls = mbh.enter_press( button ); break; case release: ls = mbh.enter_release( button ); break; @@ -1323,7 +1323,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x52: // cancel + case 0x9052: // cancel switch ( bs ) { case press: ls = mbh.cancel_press( button ); break; case release: ls = mbh.cancel_release( button ); break; @@ -1331,7 +1331,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x53: // mixer + case 0x9053: // mixer switch ( bs ) { case press: ls = mbh.mixer_press( button ); break; case release: ls = mbh.mixer_release( button ); break; @@ -1339,7 +1339,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x54: // frm_left + case 0x9054: // frm_left switch ( bs ) { case press: ls = mbh.frm_left_press( button ); break; case release: ls = mbh.frm_left_release( button ); break; @@ -1347,7 +1347,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x55: // frm_right + case 0x9055: // frm_right switch ( bs ) { case press: ls = mbh.frm_right_press( button ); break; case release: ls = mbh.frm_right_release( button ); break; @@ -1355,7 +1355,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x56: // loop + case 0x9056: // loop switch ( bs ) { case press: ls = mbh.loop_press( button ); break; case release: ls = mbh.loop_release( button ); break; @@ -1363,7 +1363,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x57: // punch_in + case 0x9057: // punch_in switch ( bs ) { case press: ls = mbh.punch_in_press( button ); break; case release: ls = mbh.punch_in_release( button ); break; @@ -1371,7 +1371,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x58: // punch_out + case 0x9058: // punch_out switch ( bs ) { case press: ls = mbh.punch_out_press( button ); break; case release: ls = mbh.punch_out_release( button ); break; @@ -1379,7 +1379,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x59: // home + case 0x9059: // home switch ( bs ) { case press: ls = mbh.home_press( button ); break; case release: ls = mbh.home_release( button ); break; @@ -1387,7 +1387,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5a: // end + case 0x905a: // end switch ( bs ) { case press: ls = mbh.end_press( button ); break; case release: ls = mbh.end_release( button ); break; @@ -1395,7 +1395,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5b: // rewind + case 0x905b: // rewind switch ( bs ) { case press: ls = mbh.rewind_press( button ); break; case release: ls = mbh.rewind_release( button ); break; @@ -1403,7 +1403,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5c: // ffwd + case 0x905c: // ffwd switch ( bs ) { case press: ls = mbh.ffwd_press( button ); break; case release: ls = mbh.ffwd_release( button ); break; @@ -1411,7 +1411,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5d: // stop + case 0x905d: // stop switch ( bs ) { case press: ls = mbh.stop_press( button ); break; case release: ls = mbh.stop_release( button ); break; @@ -1419,7 +1419,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5e: // play + case 0x905e: // play switch ( bs ) { case press: ls = mbh.play_press( button ); break; case release: ls = mbh.play_release( button ); break; @@ -1427,7 +1427,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x5f: // record + case 0x905f: // record switch ( bs ) { case press: ls = mbh.record_press( button ); break; case release: ls = mbh.record_release( button ); break; @@ -1435,7 +1435,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x60: // cursor_up + case 0x9060: // cursor_up switch ( bs ) { case press: ls = mbh.cursor_up_press( button ); break; case release: ls = mbh.cursor_up_release( button ); break; @@ -1443,7 +1443,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x61: // cursor_down + case 0x9061: // cursor_down switch ( bs ) { case press: ls = mbh.cursor_down_press( button ); break; case release: ls = mbh.cursor_down_release( button ); break; @@ -1451,7 +1451,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x62: // cursor_left + case 0x9062: // cursor_left switch ( bs ) { case press: ls = mbh.cursor_left_press( button ); break; case release: ls = mbh.cursor_left_release( button ); break; @@ -1459,7 +1459,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x63: // cursor_right + case 0x9063: // cursor_right switch ( bs ) { case press: ls = mbh.cursor_right_press( button ); break; case release: ls = mbh.cursor_right_release( button ); break; @@ -1467,7 +1467,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x64: // zoom + case 0x9064: // zoom switch ( bs ) { case press: ls = mbh.zoom_press( button ); break; case release: ls = mbh.zoom_release( button ); break; @@ -1475,7 +1475,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x65: // scrub + case 0x9065: // scrub switch ( bs ) { case press: ls = mbh.scrub_press( button ); break; case release: ls = mbh.scrub_release( button ); break; @@ -1483,7 +1483,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x66: // user_a + case 0x9066: // user_a switch ( bs ) { case press: ls = mbh.user_a_press( button ); break; case release: ls = mbh.user_a_release( button ); break; @@ -1491,7 +1491,7 @@ void Mackie::MackieSurface::handle_button( MackieButtonHandler & mbh, ButtonStat } break; - case 0x67: // user_b + case 0x9067: // user_b switch ( bs ) { case press: ls = mbh.user_b_press( button ); break; case release: ls = mbh.user_b_release( button ); break; diff --git a/libs/surfaces/mackie/scripts/controls.rb b/libs/surfaces/mackie/scripts/controls.rb index 1644672077..7d414cf966 100644 --- a/libs/surfaces/mackie/scripts/controls.rb +++ b/libs/surfaces/mackie/scripts/controls.rb @@ -191,6 +191,7 @@ class Surface end # add the new control to the various lookups + # but first print a warning if the id is duplicated if @controls_by_id.has_key?( row.id ) && control.group.class != Strip duplicated = @controls_by_id[row.id] puts "duplicate id #{control.id}:#{control.name} of #{duplicated.id}:#{duplicated.name}" diff --git a/libs/surfaces/mackie/scripts/surface-cc-template.erb b/libs/surfaces/mackie/scripts/surface-cc-template.erb index 3b29be3249..a04d5addd7 100644 --- a/libs/surfaces/mackie/scripts/surface-cc-template.erb +++ b/libs/surfaces/mackie/scripts/surface-cc-template.erb @@ -82,7 +82,7 @@ void Mackie::<%= sf.name %>Surface::handle_button( MackieButtonHandler & mbh, Bu buttons = sf.controls.find_all{|x| x.class == Button && x.group.class != Strip} buttons.each do |button| %> - case 0x<%= button.id.to_hex %>: // <%= button.name %> + case 0x<%= ( button.class.midi_zero_byte << 8 | button.id ).to_hex %>: // <%= button.name %> switch ( bs ) { case press: ls = mbh.<%= button.name %>_press( button ); break; case release: ls = mbh.<%= button.name %>_release( button ); break; diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc index 01be2c60c2..3981e8ef80 100644 --- a/libs/surfaces/mackie/surface.cc +++ b/libs/surfaces/mackie/surface.cc @@ -70,7 +70,11 @@ ostream & Mackie::operator << ( ostream & os, const Mackie::Control & control ) os << " { "; os << "name: " << control.name(); os << ", "; - os << "id: " << "0x" << setw(2) << setfill('0') << hex << control.id() << setfill(' '); + os << "id: " << "0x" << setw(4) << setfill('0') << hex << control.id() << setfill(' '); + os << ", "; + os << "type: " << "0x" << setw(2) << setfill('0') << hex << control.type() << setfill(' '); + os << ", "; + os << "raw_id: " << "0x" << setw(2) << setfill('0') << hex << control.raw_id() << setfill(' '); os << ", "; os << "ordinal: " << dec << control.ordinal(); os << ", "; diff --git a/libs/surfaces/mackie/surface.h b/libs/surfaces/mackie/surface.h index 0ccde75537..9b04e5decb 100644 --- a/libs/surfaces/mackie/surface.h +++ b/libs/surfaces/mackie/surface.h @@ -53,6 +53,8 @@ public: These are alternative addressing schemes They use maps because the indices aren't always 0-based. + + Indexed by raw_id not by id. @see Control for the distinction. */ std::map<int,Control*> faders; std::map<int,Control*> pots; |