13
0
Commit Graph

90 Commits

Author SHA1 Message Date
80d83fd238 add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages 2014-02-19 23:25:08 -05:00
85cd647226 Mackie Control support now saves & restores port connections for devices not using ipMIDI (not required for ipMIDI anyway) 2013-12-13 16:04:34 -05:00
a17bafa964 remove some unused code from mackie support 2013-12-13 16:04:34 -05:00
79fed95c1b tighten up error handling a little bit during various setup functions for Mackie Control 2013-09-06 10:39:14 -04:00
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
8f091de64b for MCP devices that don't handshake, turn them on as soon as we call ::connectivity_established() so that _active == true, and we will actually write to them
git-svn-id: svn://localhost/ardour2/branches/3.0@14165 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-03-06 20:15:28 +00:00
2eb43c8310 add copyright comments
git-svn-id: svn://localhost/ardour2/branches/3.0@13859 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-16 18:22:15 +00:00
Carl Hetherington
d8f48e6a9d Fix uninitialised variable.
git-svn-id: svn://localhost/ardour2/branches/3.0@12721 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-14 11:32:12 +00:00
Rodrigo Severo
335bf3d21e Prevents a master fader being created without a control at Surface::setup_master_fader;
Several DEBUG_TRACE changes to help identify race conditions;

git-svn-id: svn://localhost/ardour2/branches/3.0@12693 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 03:07:50 +00:00
Carl Hetherington
661a0444f4 Fix crash in tests; not sure about the root cause.
git-svn-id: svn://localhost/ardour2/branches/3.0@12639 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09 22:36:59 +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
6d46299df3 MCP: another patch from rodrigo:
* setting a (arbitraty) limit to zoom out to prevent segfaults because out of memory condition;
    * setting initial update of master fader, and read, play and stop leds on the Mackie;
    * changed the timecode display char selection for update algorithm as chars are sent one by one and not all right most;
    * implemented method of showing timecode at the mackie to better deal with the differences between Ardour's foramts and Mackie's, i.e, use spaces in place of the zeros that had no meaning;
    * preventing timecode display updates when the surface isn't yet active.


git-svn-id: svn://localhost/ardour2/branches/3.0@12541 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-02 14:51:53 +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
28e3bc3ac7 MCP: metering changes from rodrigo, makes metering work correctly on the MC Pro (also checked on the nucleus)
git-svn-id: svn://localhost/ardour2/branches/3.0@12489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-30 14:32:27 +00:00
1491787cfb MCP: fix assigment of outbound sysex messages, and don't drain port->selectable() for ipMIDI devices, since this throws away all incoming data, which arrives on the same fd as port->selectable() (unlike JACK MIDI)
git-svn-id: svn://localhost/ardour2/branches/3.0@12483 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29 23:30:13 +00:00
40ef762db4 fix missing negation from previous MCP commit
git-svn-id: svn://localhost/ardour2/branches/3.0@12482 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29 20:34:19 +00:00
1d5bade8a1 patch from rodrigo severo to make mackie timecode display work
git-svn-id: svn://localhost/ardour2/branches/3.0@12480 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29 20:18:43 +00:00
4d780bdcd0 provide some support for mackie devices like Steinberg's CMCs that do not do the normal Mackie spec handshaking
git-svn-id: svn://localhost/ardour2/branches/3.0@12252 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-11 16:04:09 +00:00
7b903febf9 remove debug output
git-svn-id: svn://localhost/ardour2/branches/3.0@12229 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 18:15:58 +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
4235e9a1a2 a variety of mostly unused parameter errors from OS X Lion's compiler
git-svn-id: svn://localhost/ardour2/branches/3.0@12148 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-02 20:29:46 +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
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
ec97b8e58d MCP: lots of good stuff - recenable bug fixed, cursor keys for vertical scroll work, loop button lights/unlightspan pots don't adjust if there is no panner, etc.
git-svn-id: svn://localhost/ardour2/branches/3.0@12093 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 03:46:18 +00:00
b31400207e MCP: various fixes, plus removal of ui_bind() (just for mackie code)
git-svn-id: svn://localhost/ardour2/branches/3.0@12086 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 04:42:01 +00:00
d5e14b3d91 eventloop and abstractui debugging, lots more commenting on abstractui/eventloop implementation; minor tweaks elsewhere
git-svn-id: svn://localhost/ardour2/branches/3.0@12076 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24 16:45:38 +00:00
0c026a6dc5 MCP: remove debug output
git-svn-id: svn://localhost/ardour2/branches/3.0@12073 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24 03:18:16 +00:00
a9d77d1a70 remove various debugging output
git-svn-id: svn://localhost/ardour2/branches/3.0@12070 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24 02:35:33 +00:00
33140f3267 add support for IP MIDI (multicast MIDI over IP UDP sockets) to ardour and use it if requested inside MCP code. required renaming the pre-existing MIDI::Port as MIDI:JackMIDIPort - MIDI::Port becomes the base type for both JackMIDIPort and IPMIDIPort
git-svn-id: svn://localhost/ardour2/branches/3.0@12069 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24 02:28:51 +00:00
4bfdcc18bd ControlProtocol doesn't actually need any record of an event loop and doesn't need to connect to any signals itself
git-svn-id: svn://localhost/ardour2/branches/3.0@12063 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-23 10:54:34 +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
d53364f2cf MCP: gui stuff
git-svn-id: svn://localhost/ardour2/branches/3.0@12007 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-18 16:21:16 +00:00
d5db31f1e4 MCP: fader debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@12003 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-18 13:13:42 +00:00
6bd6f58dee MCP: somewhat functional (?) full keybinding GUI
git-svn-id: svn://localhost/ardour2/branches/3.0@11999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-17 21:36:48 +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
72d17d326e MCP: a fistful of changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11987 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 19:05:27 +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
24377e9fb2 MCP: the return of the master fader
git-svn-id: svn://localhost/ardour2/branches/3.0@11973 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-14 20:38:42 +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
3789e7cdef MCP: hack #2 for Nucleus fader touch messages
git-svn-id: svn://localhost/ardour2/branches/3.0@11969 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-14 01:02:40 +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
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
5ee1aaf8d0 MCP: rename ports again, remove ports from MCP bundles, wakeup devices
git-svn-id: svn://localhost/ardour2/branches/3.0@11947 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 18:16:16 +00:00
17b442971b MCP: more surface properties, correctly close IOSources when switching surfaces; write select button msgs one by one, change port name back to generic terms
git-svn-id: svn://localhost/ardour2/branches/3.0@11945 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 17:52:57 +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