13
0
Commit Graph

82 Commits

Author SHA1 Message Date
99b94fad77 avoid crash when switching devices in mackie control code, add locks to protect surfaces list (hopefully done without adding any deadlocks - can't test this at present)
git-svn-id: svn://localhost/ardour2/branches/3.0@13750 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-31 16:04:46 +00:00
3cd8138a41 convert from Glib:: to Glib::Threads for all thread-related API
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
71427323ec MCP: latest patch from Rodrigo:
* fixes Master Fader Touch button in the Mackie;
    * implements a MasterFaderTouch global button;
    * removes unused MackieControlProtocol::_transport_previously_rolling property;
    * implements DeviceInfo::get_global_button() method;
    * creates GlobalButtonsInfo and StripButtonsInfo types in DeviceInfo;
    * implements Surface::_last_master_gain_written property to help master fader feedback;
    * makes Surface respect _mcp.device_info().strip_cnt() to create master fader and when connecting signals for strips and master fader instead of using hardcoded 8;
    * removed a few unnecessary updates in Surface::turn_it_on();
    * included master_gain_changed() in Surface::periodic();
    * implemented MackieControlProtocol::master_fader_touch_press and
    * MackieControlProtocol::master_fader_touch_release;



git-svn-id: svn://localhost/ardour2/branches/3.0@12631 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09 19:06:52 +00:00
a56ab30261 MCP: latest patch from Rodrigo:
* delays Mackie's led initialization until the Mackie is actually ready to receive messages;
    * at the button X function mapping customization interface in Preferences:
          o show specific device names instead of global ones;
          o mark the buttons that are actually available in the device with a *;
          o included a bottom text explaining what the * means;
    * created a DeviceInfo::get_global_button_name(Button::ID) method;
    * included several DEBUG_TRACE in mackies code;
    * renamed device buttons and groups according to the following logic: Mackie buttons are named exactly like a actual (mine) Mackie names them on the interface itself. Logic Control buttons are named exactly like they appear at Logic Pro 7.2.1 Dedicated Control Surface Support manual;
    * improved timecode display (new format);


git-svn-id: svn://localhost/ardour2/branches/3.0@12582 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06 12:20:57 +00:00
ba5e71b50f MCP: Patch from Rodrigo that:
* implements Metering on/off through Button::Read as per Seablade's suggestion. I choose this button as it's the "Show meters" button in Traktion;
    * removes redundant code from Meter::update_transport_rolling();
    * renames Meter::update_transport_rolling() to Meter::notify_metering_state_changed();
    * renamed Surface::notify_transport_state_changed() to Surface::notify_metering_state_changed();
    * renamed Strip::notify_transport_state_changed() to Strip::notify_metering_state_changed();
    * created MackieControlProtocol::notify_metering_state_changed() and made MackieControlProtocol::notify_transport_state_changed() use it;
    * implemented turning off of timecode display and two char display in Surface::zero_all ();
    * implemented master fader zeroing in Surface::zero_all ();
    * calling Surfaces->zero_all() at MackieControlProtocol destructor;
    * implemented restore of 2nd LCD line content after metering being active.



git-svn-id: svn://localhost/ardour2/branches/3.0@12520 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01 12:56:20 +00:00
5a7a89e068 add a (potentially temporary) discover button for mackie devices
git-svn-id: svn://localhost/ardour2/branches/3.0@12228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 16:44:06 +00:00
edad92a944 control surfaces: make it possible to keep display of current GUI/selection state as we bank through tracks/bussses. note careful use of weak_ptr<Route> to avoid messing with Route lifetimes. this scheme may change
git-svn-id: svn://localhost/ardour2/branches/3.0@12115 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-28 01:43:38 +00:00
ab8ebe97bb MCP: fix handling of vpot presses
git-svn-id: svn://localhost/ardour2/branches/3.0@12100 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 21:22:36 +00:00
834f94c60a fix initialization of control protocols so that brand new sessions get working control protocols if the user's ardour.rc file indicates to do so; fix MCP bank scrolling
git-svn-id: svn://localhost/ardour2/branches/3.0@12096 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 16:18:03 +00:00
3b7e2f7d67 MCP: properly (?) handle bank/channel scrolling with locked strips
git-svn-id: svn://localhost/ardour2/branches/3.0@12095 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 14:28:41 +00:00
2bae75fa0b MCP: dynamic ipMIDI ports, more default key bindings, various minor fixes
git-svn-id: svn://localhost/ardour2/branches/3.0@12092 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 21:21:36 +00:00
ac1b2a6647 MCP: another bevy of changes, including working jog wheel
git-svn-id: svn://localhost/ardour2/branches/3.0@12056 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 17:37:52 +00:00
82c867bf2a MCP: a fistful of improvements. probably best to just try it and see what it broken. KNOWN: pressing vpots without a bank/channel shift will crash ardour
git-svn-id: svn://localhost/ardour2/branches/3.0@12053 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 02:15:24 +00:00
40750ba0bb MCP:maybe functioning button binding stuff, plus save-to-disk-on-change (still needs naming interaction for new profile)
git-svn-id: svn://localhost/ardour2/branches/3.0@12000 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-18 03:24:59 +00:00
b9ff443085 MCP: various work on the button binding GUI
git-svn-id: svn://localhost/ardour2/branches/3.0@11997 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-17 20:41:31 +00:00
bf107f93e1 MCP: no fake touch for anything, actually
git-svn-id: svn://localhost/ardour2/branches/3.0@11989 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 19:08:22 +00:00
02c498a8fa MCP: make v-pot press work; work ongoing on general keybindings
git-svn-id: svn://localhost/ardour2/branches/3.0@11985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 13:06:39 +00:00
d314490797 share buttons IDs where feasible
git-svn-id: svn://localhost/ardour2/branches/3.0@11977 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-15 13:41:20 +00:00
65fe4f9edf new button IDs, one for MCP one for LCP, plus methods associated with them; SSL Nucleus now declares itself to be using Logic Control
git-svn-id: svn://localhost/ardour2/branches/3.0@11976 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-15 13:28:45 +00:00
2ed2b61224 MCP: redesign to allow device-specific button IDs, since we know that at least one device (nucleus) does not honor mackie's specification document
git-svn-id: svn://localhost/ardour2/branches/3.0@11972 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-14 19:02:54 +00:00
e240fb16bd MCP: hack for Nucleus fader touch messages
git-svn-id: svn://localhost/ardour2/branches/3.0@11968 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 22:49:58 +00:00
69830c477e MCP: catch noteOff to see note-on+velocity=zero messages; more GUI tweaks
git-svn-id: svn://localhost/ardour2/branches/3.0@11966 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 21:46:26 +00:00
8f7fa7d93b MCP: timeout display of value when altering with fader or pot; range ops on strip buttons should work; select logic may be broken
git-svn-id: svn://localhost/ardour2/branches/3.0@11959 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 16:11:55 +00:00
f511b7cc6b show gain level as its adjusted from ardour GUI (not reverted back); basic support for select/solo/mute/recenabel range ops, but not functioning yet
git-svn-id: svn://localhost/ardour2/branches/3.0@11958 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 03:46:38 +00:00
939801a8d8 MCP: start generalizing mapping between surface controls and ARDOUR::AutomationControl; simplify flip mode; more good stuff
git-svn-id: svn://localhost/ardour2/branches/3.0@11949 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 21:02:43 +00:00
0c4fe26b41 MCP: switch devices on the fly; name MIDI ports appropriately; fix active state; move sysex parsing into Surface
git-svn-id: svn://localhost/ardour2/branches/3.0@11942 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 16:41:07 +00:00
62620122a9 propagate GUI track selection to control protocols; make MCP update when GUI track selection changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11941 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 14:34:03 +00:00
abf8069d7f MCP: loading device info files basically operational
git-svn-id: svn://localhost/ardour2/branches/3.0@11939 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 12:58:42 +00:00
3a4a45caae MCP: stubbed device info file loading
git-svn-id: svn://localhost/ardour2/branches/3.0@11938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 12:16:55 +00:00
ac284a4ea1 MCP: check on whether we using pan width control
git-svn-id: svn://localhost/ardour2/branches/3.0@11930 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 00:50:18 +00:00
bc52377c3e MCP: reverse operation of cursor up/down in zoom mode; more tracign for vpot
git-svn-id: svn://localhost/ardour2/branches/3.0@11920 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 22:32:02 +00:00
b2cd8b004c MCP: make BasicUI::rewind() behave symmetrically to BasicUI::ffwd(); basics of route locking and an API to put the master/monitor on a strip
git-svn-id: svn://localhost/ardour2/branches/3.0@11915 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 20:10:10 +00:00
f40d6b6440 MCP: more view mode support, use 6 bits for pot information, more mute debug trace
git-svn-id: svn://localhost/ardour2/branches/3.0@11912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 19:16:49 +00:00
5097af6a13 MCP: start adding different view modes and support for Flip
git-svn-id: svn://localhost/ardour2/branches/3.0@11911 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 18:51:01 +00:00
b3db38a34f MCP: provide basic mechanism for configuring function keys
git-svn-id: svn://localhost/ardour2/branches/3.0@11908 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 17:13:20 +00:00
337b420266 MCP: rename raw_id() to id(); add missign modifier_state() function
git-svn-id: svn://localhost/ardour2/branches/3.0@11907 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 16:31:23 +00:00
20d38b1c25 MCP: make vpots control pan width + direction/position
git-svn-id: svn://localhost/ardour2/branches/3.0@11904 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 16:21:23 +00:00
02c8ccf348 move all code to construct MIDI messages into relevant Control/Strip/Surface object; remove MackieMidiBuilder
git-svn-id: svn://localhost/ardour2/branches/3.0@11895 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 13:03:41 +00:00
261738d01e MCP: debug tracing, plus start of a new cleaner handling system for button handling
git-svn-id: svn://localhost/ardour2/branches/3.0@11880 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 02:54:25 +00:00
f387e834fd MCP: tweak operation of most transport buttons, make save button work, start using button enums more widely
git-svn-id: svn://localhost/ardour2/branches/3.0@11879 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 02:30:35 +00:00
01c1eeb279 give MackieControlProtocol its own thread and make it parse incoming MIDI in that thread, as well as doing timeouts there too
git-svn-id: svn://localhost/ardour2/branches/3.0@11872 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 17:13:55 +00:00
fb4816f010 MCP: fix build
git-svn-id: svn://localhost/ardour2/branches/3.0@11862 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 14:32:30 +00:00
5ace191bff drastic, fundamental redesign of MCP code
git-svn-id: svn://localhost/ardour2/branches/3.0@11861 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 14:27:44 +00:00
ac7ade93bd MCP: make rightward bank shift work, and add a flag for scrub mode; more code rearrangement
git-svn-id: svn://localhost/ardour2/branches/3.0@11860 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 19:47:06 +00:00
db5258fea3 MCP: maybe handle multiple MCUs better; add support for modifier keys; rearrange source so that all button handlesr are in mcp_buttons.cc
git-svn-id: svn://localhost/ardour2/branches/3.0@11855 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 17:48:16 +00:00
62afe207d2 MCP: register thread with GUI and create session event pool
git-svn-id: svn://localhost/ardour2/branches/3.0@11853 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 16:26:44 +00:00
57a046804c MCP: different meter debug trace; initial support for track selection
git-svn-id: svn://localhost/ardour2/branches/3.0@11852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 16:15:55 +00:00
e2d62d9af4 allow ControlProtocols to call for undo/redo in GUI; make MCP use this
git-svn-id: svn://localhost/ardour2/branches/3.0@11851 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 15:50:38 +00:00
2b659deaef remove redundant MackieButtonHandler class, implement initial zoom support for cursor left + right buttons
git-svn-id: svn://localhost/ardour2/branches/3.0@11847 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 15:32:25 +00:00
f02edae438 start breaking apart the various controls into their own headers and source code, and making each control know how to generate MIDI; throttle delivery of meter data and get meter ID right
git-svn-id: svn://localhost/ardour2/branches/3.0@11846 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 13:59:35 +00:00