summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/mackie_control_protocol.cc
AgeCommit message (Collapse)Author
2015-10-02add new (fast) redisplay timer that pushes parameter display text to MCP device.Paul Davis
Changes are queued in a FIFO, and pulled when a timeout in the MCP event loop fires.
2015-10-02use Surface::reset() when deleting MackieControlProtocol, rather than ↵Paul Davis
sending lots of messages. This may be a bit "strong" because on the MCU Pro (at least) it causes a fader recalibration.
2015-10-02implement backlight, fader touch sensitivity and recalibrate fader functions ↵Paul Davis
for MCP GUI
2015-10-02allow aliasing Mackie Control buttons to other buttonsPaul Davis
2015-10-02catch changes in click status and alter LED appropriatelyPaul Davis
2015-10-02change zoom and scrub handling to use modifier bitsPaul Davis
2015-09-08Made master fader touch and jog go to _master_surface instead of first surface.Len Ovens
2015-08-14Fixed Mackie control port naming for extender use (fixes #6500)Len Ovens
2015-08-13Fixed feedback for MCP buttons and LEDs not working.Len Ovens
2015-06-24rationalize save/restore of control surface "feedback" propertyPaul Davis
2015-06-04Clean up mackie surface profile editor from things that don't work or match ↵Len Ovens
the mackie hardware (fixes #6342)
2015-04-15put all of the Mackie control surface code into the ArdourSurface namespacePaul Davis
2015-03-08Bundle API user updateRobin Gareus
cherry-pickable follow up to 0582221
2014-12-03modify Mackie surface code to use crossthreadchannel on all platformsPaul Davis
2014-11-26remove "port sources" management from MidiControlUI and Mackie support.Paul Davis
This was necessary due to a bug/design issue between Glibmm and Glib (see https://bugzilla.gnome.org/show_bug.cgi?id=561885) but the problem needs to be managed by the *creator* of the IOSource and that has now moved inside CrossThreadChannel.
2014-11-23remove use of CrossThreadChannel::selectable() to allow cross-platform ↵Paul Davis
implementation of CrossThreadChannel via Glib::IOSource
2014-02-19add a hack to deal with device discovery race, in which the devices were not ↵Paul Davis
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-01-10Merge windows+cc branch into cairocanvas branch. Not finished, need to now ↵Paul Davis
merge windows branch to get changes from there
2013-12-21new CP API and fix several egregious bugs with port handling when switching ↵Paul Davis
devices, setting state etc.
2013-12-14fix a crash caused by not checking if MackieControlProtocol::_surfaces_state ↵Paul Davis
exists I forgot to add this check when i changed the member variable to a pointer.
2013-12-13Mackie Control support now saves & restores port connections for devices not ↵Paul Davis
using ipMIDI (not required for ipMIDI anyway)
2013-12-13remove some unused code from mackie supportPaul Davis
2013-10-15Merge branch 'master' into windowsPaul Davis
2013-10-15fix signed/unsigned issue pointed out by old apple gccPaul Davis
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-09-06tighten up error handling a little bit during various setup functions for ↵Paul Davis
Mackie Control
2013-09-05'surfaces/mackie' - Platform specific changesJohn Emmas
2013-09-03Merge branch 'master' into audioenginePaul Davis
2013-08-24fix confusion about whether flip_mode in the Mackie support code is a bool ↵Paul Davis
or an enum
2013-07-24part-way through getting the audioengine changes to compilePaul Davis
2013-04-06rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to ↵Paul Davis
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
2013-03-06for MCP devices that don't handshake, turn them on as soon as we call ↵Paul Davis
::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
2012-12-31avoid crash when switching devices in mackie control code, add locks to ↵Paul Davis
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-31avoid crashing in a wierd case (possibly a race) in Mackie supportPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13749 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13Fix some uninitialised variable warnings.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12702 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13Small change to Timecode display (SMTPE) in the Mackie.Rodrigo Severo
git-svn-id: svn://localhost/ardour2/branches/3.0@12694 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13Prevents a master fader being created without a control at ↵Rodrigo Severo
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-09MCP: latest patch from Rodrigo:Paul Davis
* 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-06MCP: latest patch from Rodrigo:Paul Davis
* 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-02MCP: another patch from rodrigo:Paul Davis
* 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-01revert part of earlier MCP patch from rodrigoPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12534 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01MCP: Patch from Rodrigo that:Paul Davis
* 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-05-30MCP: metering changes from rodrigo, makes metering work correctly on the MC ↵Paul Davis
Pro (also checked on the nucleus) git-svn-id: svn://localhost/ardour2/branches/3.0@12489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-30MCP: remove misleading and confusing and out of date commentPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12485 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29MCP: correct display of timecodePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12484 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29MCP: fix assigment of outbound sysex messages, and don't drain ↵Paul Davis
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-27MCP: remember to drain the x-thread FIFO that tells us that JACK MIDI data ↵Paul Davis
has been received git-svn-id: svn://localhost/ardour2/branches/3.0@12453 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-12fully tear down Mackie GUI when disabling mackiePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12258 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-28control surfaces: make it possible to keep display of current GUI/selection ↵Paul Davis
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-27MCP: failure to rebank for cases where num_routes < num_strips but we're not ↵Paul Davis
on bank 0 git-svn-id: svn://localhost/ardour2/branches/3.0@12112 d708f5d6-7413-0410-9779-e7cbd77b26cf