13
0
Commit Graph

303 Commits

Author SHA1 Message Date
fe7aac8dac mackie: remove unnecessary connection to route group property change signal 2016-01-19 14:25:48 -05:00
fe3d85b204 Revert "mackie: still respond to route groups visibility changes"
This reverts commit a9ec547457.
2016-01-19 14:16:49 -05:00
a9ec547457 mackie: still respond to route groups visibility changes 2016-01-19 13:38:29 -05:00
22c5cb47f7 mackie: remove changes to group activation status when fetching routes to display
This creates an activation loop, because we fetch new routes to display when
group active status is changed. This was done to provide individual access to
routes that are in a group. We plan to do this using a shift modifier instead.
2016-01-19 12:46:08 -05:00
ef7c6730cb Groups: Fix un/set hidden/show should reset RID for tracks involved. 2016-01-17 14:17:02 -08:00
23041fda88 Mackie Control: fix math error that tried to change bank to very high number 2016-01-16 11:17:52 -08:00
92dba5bfa3 Mackie Control: Added hidden tracks view mode. 2016-01-16 07:32:30 -08:00
9dfdaff1a4 Mackie Control: Need signal from session if group parameters change so strips redisplay if group un/hides. 2016-01-15 16:19:15 -08:00
b3fd65d149 Mackie Control: Don't show hidden groups either. 2016-01-15 13:58:08 -08:00
6b356448e3 Mackie Control: Don't show hidden routes. 2016-01-15 13:16:24 -08:00
b81504581b another DEBUG_TRACE for mackie control x-thread requests 2016-01-12 23:30:14 -05:00
0d9efc1148 redesign cross-thread registration/signalling system
This new design will work even when threads that need to receive
messages from RT threads are created *after* the RT threads. The
existing design would fail because the RT thread(s) would never
be known the later created threads, and so signals emitted by the
RT thread and causing call_slot() in the receiver would end up
being enqueued using a lock-protected list. The new design ensures
that communication always uses a lock-free FIFO instead
2015-12-28 10:14:17 -05:00
82f31fe624 Mackie Control: Re-enable view_mode display and make sure all text vanishes after timeout. 2015-12-16 14:38:21 -08:00
8bb4ac0ac7 Fix MCP time display sometimes doesn't update to zero time on return to zero (shift-rew) 2015-12-16 12:24:10 -08:00
3b872fb207 fix some merge issues from cherry-picking mackie changes from a mixbus repo 2015-12-16 06:31:06 -05:00
93d5fe83c8 mackie: properly track lifetime of subview route; fix subview/potmode LED state mgmt 2015-12-16 06:01:55 -05:00
a6da818bc4 add dynamics support to mackie control 2015-12-16 06:01:29 -05:00
e3d0de3bf6 mackie: use new route API for universal access to pan/eq/dynamics parameters to provide panning and EQ control 2015-12-16 06:01:20 -05:00
81179389d3 mackie: cleanup subview mode a little 2015-12-16 05:55:10 -05:00
8ba8f1c0b0 fix cherry-pick conflict 2015-12-16 05:54:43 -05:00
a1ef99b9b7 add beginnings of EQ and dynamics control to mackie for mixbus 2015-12-16 05:52:36 -05:00
8bdab38d43 track add/remove of monitor and/or master busses in mackie support code.
Somehow fails to move master fader to correct position when monitor section is added
2015-12-13 08:33:09 -05:00
0103de801a Mackie Control, fix timecode sometimes won't update. Do full display if transport moves faster than 800%. 2015-12-11 12:57:24 -08:00
2d03db51cd there is no "default" mackie device profile 2015-12-09 00:19:15 -05:00
014f010489 if Mackie device profile name is empty, use a default name that makes sense and that will be rediscovered on next startup 2015-12-09 00:12:28 -05:00
3893f62657 Mackie Control: Disable Selected group in User/Selected view mode to allow individual adjustment. 2015-11-26 06:55:25 -08:00
09672f4a50 Mackie Control: Initialize vpot assignment on start-up. 2015-11-06 19:28:24 -08:00
96c6da0804 Make mackie control view mode save bank for all modes.
Also moved duplicated code to one function.
2015-10-22 15:30:34 -07:00
81f6ad0d0c Added "Selected" view mode to Mackie Control. 2015-10-20 18:54:56 -07:00
48f91c6ef4 Add Audio Tracks and Busses too. 2015-10-18 19:55:56 -07:00
0185c9f25a Added Midi Tracks View mode. 2015-10-18 18:13:16 -07:00
f7e3117c3b Only display Trim for tracks that have Trim. On the way:
-fixed flip mode.
	-fixed no controlable for vpot or fader
2015-10-18 07:38:40 -07:00
1f85691870 fix MCP ports hang on device change and multi-surface device reconnect. 2015-10-13 22:19:36 -07:00
53a28c230a mackie support omnibus patch
Fixes all kinds of miscellaneous issues with MCP. Also removes several theoretical pan modes, replace "Tracks"
pan mode with "Trim", and takes a tiny step towards view modes
2015-10-13 15:34:53 -04:00
3169ac0444 fix the design of Mackie XML state management 2015-10-13 07:33:27 -04:00
8e83ca5753 Only flip if not already in desired state. Fixes fader jerk on banking. 2015-10-12 13:52:10 -07:00
104f43ad37 Fix MCP extension number and get master on right surface. 2015-10-11 21:37:04 -07:00
f8875df18f Several changes to Mackie support. Breaks existing Mackie state on disk but not
in any way that causes problems, just loss of pre-existing connectivity.

1. retain state of current device (and serialize to disk) when switching
devices, and restore that state when switching back to it.
2. fix port and surfacenaming.
3. fix bundle assembly so that all ports (for multi-surface combos) work.
4. rationalize master position numbering
5. add small sleep before starting device handshake after reconnection. This
is ugly but seems to be necessary, unfortunately.
2015-10-11 12:01:27 -04:00
6faec91dd9 Force Flip normal before Bank (fixes #6630) 2015-10-10 19:59:29 -07:00
965b135842 numerous changes to Mackie support, generally offering better robustness 2015-10-10 17:14:30 -04:00
9b5a071c33 varied and wide changes to get input and output combos closer to working 2015-10-09 14:01:22 -04:00
bda0ba173c for an ipMIDI surface, make the GSource used for input hold the only reference on the GUIChannel. 2015-10-08 21:55:37 -04:00
7e10c21468 make Mackie::Surface keep a reference to the input source+channel and clean up in destructor 2015-10-08 21:55:37 -04:00
02181174c3 remove debugging display of message on MCP device 2015-10-08 14:51:27 -04:00
0cb1c7b58c lots of changes to try to get the Mackie Control display be more useful and usable 2015-10-08 12:51:44 -04:00
6899bd7c15 Add Trim to Mackie controls. 2015-10-07 21:36:16 -07:00
ce9b271a92 track Mackie MIDI port connection status as primary trigger for handshake with device 2015-10-07 13:17:49 -04:00
33d614359a only use HUI heartbeat with HUI devices 2015-10-05 12:24:15 -04:00
2dddf6504b NOOP: delete trailing whitespace 2015-10-03 14:03:29 -04:00
9d7b5f6df9 reset shared_ptr to master surface when clearing surfaces, to ensure Surface destructor is called 2015-10-03 13:50:59 -04:00
6bf0d4f627 add basic support for HUI heartbeat, only used for HUI devices 2015-10-03 13:13:58 -04:00
4d47760d61 add new (fast) redisplay timer that pushes parameter display text to MCP device.
Changes are queued in a FIFO, and pulled when a timeout in the MCP event loop fires.
2015-10-02 22:08:14 -04:00
2cdfeda884 use Surface::reset() when deleting MackieControlProtocol, rather than sending lots of messages.
This may be a bit "strong" because on the MCU Pro (at least) it causes a fader recalibration.
2015-10-02 22:08:14 -04:00
ccf505c3a2 implement backlight, fader touch sensitivity and recalibrate fader functions for MCP GUI 2015-10-02 22:08:14 -04:00
71bf231199 allow aliasing Mackie Control buttons to other buttons 2015-10-02 10:21:20 -04:00
5c63ed589c catch changes in click status and alter LED appropriately 2015-10-02 07:32:56 -04:00
a4fced6d63 change zoom and scrub handling to use modifier bits 2015-10-02 07:32:56 -04:00
f8912b8b57 Made master fader touch and jog go to _master_surface instead of first surface. 2015-09-08 20:47:16 -07:00
4129b8865c Fixed Mackie control port naming for extender use (fixes #6500) 2015-08-14 08:57:13 -07:00
962ba01cfd Fixed feedback for MCP buttons and LEDs not working. 2015-08-13 13:00:04 -07:00
2ea5962af2 rationalize save/restore of control surface "feedback" property 2015-06-24 13:46:07 -04:00
71feea97a0 Clean up mackie surface profile editor from things that don't work or match the mackie hardware (fixes #6342) 2015-06-04 15:02:51 -07:00
4512d013eb put all of the Mackie control surface code into the ArdourSurface namespace 2015-04-15 20:37:20 -04:00
40c04867ef Bundle API user update
cherry-pickable follow up to 0582221
2015-03-08 22:39:34 +01:00
d3e2de8b4e modify Mackie surface code to use crossthreadchannel on all platforms 2014-12-03 20:57:58 -05:00
25e1eddc50 remove "port sources" management from MidiControlUI and Mackie support.
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-26 18:22:22 +02:00
bfe49540b9 remove use of CrossThreadChannel::selectable() to allow cross-platform implementation of CrossThreadChannel via Glib::IOSource 2014-11-23 17:37:13 +02:00
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
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
362769e967 new CP API and fix several egregious bugs with port handling when switching devices, setting state etc. 2013-12-21 15:31:28 -05:00
f6c9fa4d89 fix a crash caused by not checking if MackieControlProtocol::_surfaces_state exists
I forgot to add this check when i changed the member variable to a pointer.
2013-12-14 11:10:54 -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
69a8fc43e2 Merge branch 'master' into windows 2013-10-15 11:17:12 -04:00
f6ba1d2271 fix signed/unsigned issue pointed out by old apple gcc 2013-10-15 10:58:46 -04:00
bb826f4bee incomplete merge of master into windows (requires upcoming changes to master to be complete) 2013-09-12 11:28:50 -04:00
79fed95c1b tighten up error handling a little bit during various setup functions for Mackie Control 2013-09-06 10:39:14 -04:00
f225eaa919 'surfaces/mackie' - Platform specific changes 2013-09-05 10:04:18 +01:00
d074bc586e Merge branch 'master' into audioengine 2013-09-03 17:41:49 -04:00
41f6f5574b fix confusion about whether flip_mode in the Mackie support code is a bool or an enum 2013-08-24 11:46:44 -04:00
9ac6bb9bef part-way through getting the audioengine changes to compile 2013-07-24 19:29:45 -04:00
cd6cbba299 rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit 2013-04-06 16:04:02 -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
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
104da317ff avoid crashing in a wierd case (possibly a race) in Mackie support
git-svn-id: svn://localhost/ardour2/branches/3.0@13749 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-31 15:27:38 +00:00
Carl Hetherington
d341088f13 Fix some uninitialised variable warnings.
git-svn-id: svn://localhost/ardour2/branches/3.0@12702 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 15:38:15 +00:00
Rodrigo Severo
1bd34a34f7 Small change to Timecode display (SMTPE) in the Mackie.
git-svn-id: svn://localhost/ardour2/branches/3.0@12694 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 03:09:46 +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
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
bbcfffc2da revert part of earlier MCP patch from rodrigo
git-svn-id: svn://localhost/ardour2/branches/3.0@12534 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01 21:25:12 +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
cd58caa93b MCP: remove misleading and confusing and out of date comment
git-svn-id: svn://localhost/ardour2/branches/3.0@12485 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-30 00:01:15 +00:00
28aed9e0d1 MCP: correct display of timecode
git-svn-id: svn://localhost/ardour2/branches/3.0@12484 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-29 23:44:34 +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
d7a32eb85e MCP: remember to drain the x-thread FIFO that tells us that JACK MIDI data has been received
git-svn-id: svn://localhost/ardour2/branches/3.0@12453 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-27 10:57:36 +00:00
60904be8ef fully tear down Mackie GUI when disabling mackie
git-svn-id: svn://localhost/ardour2/branches/3.0@12258 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-12 14:12:51 +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