ardour.git
8 years agochange API of MIDI::Port::drain() to include a maximum blocking time
Paul Davis [Mon, 1 Feb 2016 18:26:30 +0000 (13:26 -0500)]
change API of MIDI::Port::drain() to include a maximum blocking time

8 years agomackie: stop playing games with start/end range LEDs
Paul Davis [Mon, 1 Feb 2016 17:22:23 +0000 (12:22 -0500)]
mackie: stop playing games with start/end range LEDs

8 years agomackie: add new bindings for Save,Undo,Cancel,Enter
Paul Davis [Mon, 1 Feb 2016 17:22:01 +0000 (12:22 -0500)]
mackie: add new bindings for Save,Undo,Cancel,Enter

these now control punch in, punch out, external sync and follow edits, respectively

8 years agomackie: fix stupid thinko, and use BaseUI::access_action() to correctly accesss GUI...
Paul Davis [Mon, 1 Feb 2016 17:20:55 +0000 (12:20 -0500)]
mackie: fix stupid thinko, and use BaseUI::access_action() to correctly accesss GUI actions

8 years agoMackie protocol: clear Marker modifer
Ben Loftis [Mon, 1 Feb 2016 04:28:13 +0000 (22:28 -0600)]
Mackie protocol:  clear Marker modifer

8 years agoRemove debugging printf
Ben Loftis [Mon, 1 Feb 2016 04:18:49 +0000 (22:18 -0600)]
Remove debugging printf

8 years agovery very slightly more robust exclusion of monitor send from Route::nth_send()
Paul Davis [Mon, 1 Feb 2016 03:46:00 +0000 (22:46 -0500)]
very very slightly more robust exclusion of monitor send from Route::nth_send()

some sessions name that send "Monitor" and some "Monitor 1"

The correct solution is a test of whether the send is connected to the monitor section.

8 years agomackie: slightly less fragile/more readable code for compute new controllable values...
Paul Davis [Mon, 1 Feb 2016 03:43:21 +0000 (22:43 -0500)]
mackie: slightly less fragile/more readable code for compute new controllable values from vpot events

This is still not really right - it doesn't do the right thing, i think, for trim controls

8 years agomackie: consistent use of Shift to mean "InverseGroup"
Paul Davis [Mon, 1 Feb 2016 03:42:29 +0000 (22:42 -0500)]
mackie: consistent use of Shift to mean "InverseGroup"

8 years agomackie: display correct numerical send level
Paul Davis [Mon, 1 Feb 2016 03:41:46 +0000 (22:41 -0500)]
mackie: display correct numerical send level

8 years agomackie: implement trim, monitoring, solo iso and solo safe for trackview submode
Paul Davis [Mon, 1 Feb 2016 02:54:01 +0000 (21:54 -0500)]
mackie: implement trim, monitoring, solo iso and solo safe for trackview submode

8 years agomackie: make shift-click use InverseGroup semantics as intended, not NoGroup
Paul Davis [Mon, 1 Feb 2016 02:53:29 +0000 (21:53 -0500)]
mackie: make shift-click use InverseGroup semantics as intended, not NoGroup

8 years agoNOOP: comment fix
Paul Davis [Mon, 1 Feb 2016 02:52:46 +0000 (21:52 -0500)]
NOOP: comment fix

8 years agomackie: make vselect events and pot events handle toggle/enumeration controls correct...
Paul Davis [Mon, 1 Feb 2016 02:52:14 +0000 (21:52 -0500)]
mackie: make vselect events and pot events handle toggle/enumeration controls correctly (or more correctly

8 years agomake Session::rt_set_monitoring() conform to new Track API
Paul Davis [Mon, 1 Feb 2016 02:49:59 +0000 (21:49 -0500)]
make Session::rt_set_monitoring() conform to new Track API

8 years agoprovide route solo isolate and solo safe automation controls
Paul Davis [Mon, 1 Feb 2016 02:49:18 +0000 (21:49 -0500)]
provide route solo isolate and solo safe automation controls

8 years agoadd new automation type enums
Paul Davis [Mon, 1 Feb 2016 02:48:32 +0000 (21:48 -0500)]
add new automation type enums

8 years agomake Track::set_monitoring() use a GroupControlDisposition; expose an AutomationContr...
Paul Davis [Mon, 1 Feb 2016 02:47:19 +0000 (21:47 -0500)]
make Track::set_monitoring() use a GroupControlDisposition; expose an AutomationControl for track monitoring choice

8 years agoadd a new constructor for RouteAutomationControllable that takes a ParameterDescriptor
Paul Davis [Mon, 1 Feb 2016 02:45:36 +0000 (21:45 -0500)]
add a new constructor for RouteAutomationControllable that takes a ParameterDescriptor

8 years agobreak out Route controllables code into its own source module
Paul Davis [Sun, 31 Jan 2016 18:20:04 +0000 (13:20 -0500)]
break out Route controllables code into its own source module

8 years agomackie: partially working trackview submode.
Paul Davis [Sun, 31 Jan 2016 18:16:22 +0000 (13:16 -0500)]
mackie: partially working trackview submode.

More controls/pots to come

8 years agomackie: fix bug that prevents global view mode from working without first banking
Paul Davis [Sun, 31 Jan 2016 18:15:49 +0000 (13:15 -0500)]
mackie: fix bug that prevents global view mode from working without first banking

8 years agomackie: fix some awful cut-n-paste errors
Paul Davis [Sun, 31 Jan 2016 17:58:46 +0000 (12:58 -0500)]
mackie: fix some awful cut-n-paste errors

8 years agomackie: remove Trim pot mode, and add skeleton for TrackView subview mode
Paul Davis [Sun, 31 Jan 2016 16:59:55 +0000 (11:59 -0500)]
mackie: remove Trim pot mode, and add skeleton for TrackView subview mode

8 years agoMackie protocol: XTouch profile with expanded editing options
Ben Loftis [Sun, 31 Jan 2016 17:21:47 +0000 (11:21 -0600)]
Mackie protocol: XTouch profile with expanded editing options

8 years agomackie: strengthen behaviour of clear solo button
Paul Davis [Sun, 31 Jan 2016 16:36:46 +0000 (11:36 -0500)]
mackie: strengthen behaviour of clear solo button

8 years agomackie: make replace (finish-range) LED flash at the right time
Paul Davis [Sun, 31 Jan 2016 16:36:31 +0000 (11:36 -0500)]
mackie: make replace (finish-range) LED flash at the right time

8 years agomackie: make nudge work as modifier and on its own
Paul Davis [Sun, 31 Jan 2016 16:17:23 +0000 (11:17 -0500)]
mackie: make nudge work as modifier and on its own

8 years agomackie: hard-code drop+replace buttons to start/finish-range-from-playhead
Paul Davis [Sun, 31 Jan 2016 16:02:21 +0000 (11:02 -0500)]
mackie: hard-code drop+replace buttons to start/finish-range-from-playhead

With some LED action that would even better with blinking

8 years agomackie: make marker button work as Mackie intends it (as a modifier for rewind/ffwd)
Paul Davis [Sun, 31 Jan 2016 16:01:41 +0000 (11:01 -0500)]
mackie: make marker button work as Mackie intends it (as a modifier for rewind/ffwd)

8 years agomackie: add "clean" method to invoke GUI actions from button events, in code
Paul Davis [Sun, 31 Jan 2016 16:00:16 +0000 (11:00 -0500)]
mackie: add "clean" method to invoke GUI actions from button events, in code

8 years agomackie: shift-stop additionally requests MIDI Panic, as well as regular stop
Paul Davis [Sun, 31 Jan 2016 14:11:37 +0000 (09:11 -0500)]
mackie: shift-stop additionally requests MIDI Panic, as well as regular stop

8 years agoMackie Control: Make Monitor send not show in Sends subview.
Len Ovens [Sun, 31 Jan 2016 05:05:45 +0000 (21:05 -0800)]
Mackie Control: Make Monitor send not show in Sends subview.

8 years agoMackie protocol: Fix stuck-on Read LED.
Ben Loftis [Sun, 31 Jan 2016 03:38:18 +0000 (21:38 -0600)]
Mackie protocol: Fix stuck-on Read LED.

8 years agoAdd track select buttons to Launchkey map.
Ben Loftis [Sat, 30 Jan 2016 17:18:56 +0000 (11:18 -0600)]
Add track select buttons to Launchkey map.

8 years agoSurfaces with separate meters should meter even when stopped.
Ben Loftis [Sat, 30 Jan 2016 15:46:37 +0000 (09:46 -0600)]
Surfaces with separate meters should meter even when stopped.

8 years agomackie: remove mention of "blinkers" concept
Paul Davis [Fri, 29 Jan 2016 23:40:56 +0000 (18:40 -0500)]
mackie: remove mention of "blinkers" concept

8 years agomackie: basically (fully?) operation fader automatio control for first selected route
Paul Davis [Fri, 29 Jan 2016 23:37:03 +0000 (18:37 -0500)]
mackie: basically (fully?) operation fader automatio control for first selected route

8 years agomackie: initial attempt at making automation-related buttons set fader automation...
Paul Davis [Fri, 29 Jan 2016 21:29:52 +0000 (16:29 -0500)]
mackie: initial attempt at making automation-related buttons set fader automation state for selected routes

8 years agouse new selection API to avoid double signal when a track or tracks are SET as the...
Paul Davis [Fri, 29 Jan 2016 21:05:42 +0000 (16:05 -0500)]
use new selection API to avoid double signal when a track or tracks are SET as the selection

8 years agomodify Selection API to provide (default-valued) "with_signal" argument to all :...
Paul Davis [Fri, 29 Jan 2016 21:05:03 +0000 (16:05 -0500)]
modify Selection API to provide (default-valued) "with_signal" argument to all ::clear_*() methods

This allows the clear methods to be used before calling ::add(), to avoid the
emission of a signal saying "there are no <foo> selected right now".

There should be no side-effects from this commit.

Note that correct use of this new API is complex, and requires avoiding the use
of wrapper methods like clear_objects().

8 years agomackie: if a subview mode is not OK because there's no selection, show no message
Paul Davis [Fri, 29 Jan 2016 19:49:28 +0000 (14:49 -0500)]
mackie: if a subview mode is not OK because there's no selection, show no message

8 years agoNOOP: change brace placement to avoid confusing emacs
Paul Davis [Fri, 29 Jan 2016 19:48:14 +0000 (14:48 -0500)]
NOOP: change brace placement to avoid confusing emacs

8 years agomackie: make group button (appear) to do something
Paul Davis [Fri, 29 Jan 2016 19:47:40 +0000 (14:47 -0500)]
mackie: make group button (appear) to do something

8 years agoMackie protocol: More LED indicator fixes.
Ben Loftis [Fri, 29 Jan 2016 20:26:08 +0000 (14:26 -0600)]
Mackie protocol: More LED indicator fixes.

8 years agomixbus: don't assert(ch_post()) in case we use various methods on "odd" Routes in...
Paul Davis [Fri, 29 Jan 2016 18:02:00 +0000 (13:02 -0500)]
mixbus: don't assert(ch_post()) in case we use various methods on "odd" Routes in the future

8 years agomixbus: vpot press in non-subview mode should toggle master bus send
Paul Davis [Fri, 29 Jan 2016 17:58:50 +0000 (12:58 -0500)]
mixbus: vpot press in non-subview mode should toggle master bus send

8 years agoadd new Route API ::master_send_enable_controllable() to provide generic access to...
Paul Davis [Fri, 29 Jan 2016 17:58:15 +0000 (12:58 -0500)]
add new Route API ::master_send_enable_controllable() to provide generic access to a mixbus-centric control

8 years agomackie: in Sends subview mode, the enable control for the send should be looked upin...
Paul Davis [Fri, 29 Jan 2016 17:40:13 +0000 (12:40 -0500)]
mackie: in Sends subview mode, the enable control for the send should be looked upin the subview route, not the strip's own route

8 years agoButton::AudioInstruments should not be lit without good reason.
Ben Loftis [Fri, 29 Jan 2016 17:27:54 +0000 (11:27 -0600)]
Button::AudioInstruments should not be lit without good reason.

8 years agomackie: redesign display logic entirely
Paul Davis [Fri, 29 Jan 2016 17:26:41 +0000 (12:26 -0500)]
mackie: redesign display logic entirely

Strips now maintain a pair of pending display strings (upper and lower).
A periodic timeout writes the pending value to the actual hardware if it
differs from the current string. This new design makes it easy to put a
message on the display and then after some period of time, revert to
whatever was there before.

8 years agoAnother attempt fixing crash at exit on windows.
Robin Gareus [Fri, 29 Jan 2016 17:22:57 +0000 (18:22 +0100)]
Another attempt fixing crash at exit on windows.

8 years agoMackie Protocol: HasSeparateMeters flag for X-Touch devices
Ben Loftis [Fri, 29 Jan 2016 16:31:47 +0000 (10:31 -0600)]
Mackie Protocol: HasSeparateMeters flag for X-Touch devices

8 years agoAdded Behringer X-Touch device files.
Ben Loftis [Fri, 29 Jan 2016 16:10:17 +0000 (10:10 -0600)]
Added Behringer X-Touch device files.

8 years agomackie: fix Global View button function
Paul Davis [Fri, 29 Jan 2016 04:20:03 +0000 (23:20 -0500)]
mackie: fix Global View button function

Bug introduced changing logic for set_view_mode()

8 years agomackie: don't overload "Audio Instruments" and "Instruments" buttons.
Paul Davis [Fri, 29 Jan 2016 04:05:14 +0000 (23:05 -0500)]
mackie: don't overload "Audio Instruments" and "Instruments" buttons.

With the MCU Pro, the button labelled "Instruments" uses the Dyn button ID.
The one labelled "Audio Instruments" does not.

This may break Nucleus support - needs to be checked

8 years agomackie: use Route::send_name() rather than Route::nth_send()
Paul Davis [Fri, 29 Jan 2016 04:03:55 +0000 (23:03 -0500)]
mackie: use Route::send_name() rather than Route::nth_send()

8 years agomackie: fix display of send level value
Paul Davis [Fri, 29 Jan 2016 04:03:02 +0000 (23:03 -0500)]
mackie: fix display of send level value

8 years agoadd new API to Route to get name of "well-known" nth-send
Paul Davis [Fri, 29 Jan 2016 04:02:11 +0000 (23:02 -0500)]
add new API to Route to get name of "well-known" nth-send

Route::nth_send() has the wrong semantics in Mixbus for this purpose. Probably
need to revisit this at some point

8 years agofix device-list update concurrency issue.
Robin Gareus [Fri, 29 Jan 2016 00:12:32 +0000 (01:12 +0100)]
fix device-list update concurrency issue.

It may happen that during push_state_to_backend() a device is
reconfigured in a way that triggers a "Device Changed" callback before
the engine is started. This callback can trigger a change to the
configuration that will be used when the engine is actually started.

This has been seen on OSX in conjunction with Aggregate Devices
(even if the aggregate is not used, but the device which is used
is also part of an aggregate)

example: HW changed callback arrives, device-list is re-populated,
*A*irplay" is at the top of the list, Airplay supports only 44.1K,
Samplerate changes... later save also writes this new rate to the file.

8 years agoBuses and Auxes are slightly different view-filters in Mixbus
Ben Loftis [Thu, 28 Jan 2016 23:21:42 +0000 (17:21 -0600)]
Buses and Auxes are slightly different view-filters in Mixbus

8 years agoprevent bank/channel switching past the end of the available routes; do nothing when...
Paul Davis [Thu, 28 Jan 2016 21:27:33 +0000 (16:27 -0500)]
prevent bank/channel switching past the end of the available routes; do nothing when a view mode finds no matching routes

8 years agomackie: improvements to display when switching subview modes
Paul Davis [Thu, 28 Jan 2016 20:08:19 +0000 (15:08 -0500)]
mackie: improvements to display when switching subview modes

8 years agomake Send button light appropriately
Paul Davis [Thu, 28 Jan 2016 19:01:14 +0000 (14:01 -0500)]
make Send button light appropriately

8 years agoEditing from a control surface must have the ability to ignore mouse location.
Ben Loftis [Thu, 28 Jan 2016 19:43:47 +0000 (13:43 -0600)]
Editing from a control surface must have the ability to ignore mouse location.
Add mark_in and mark_out actions that explicitly use the playhead as the edit location.

8 years agoUse visible playhead location for editing during a jog-wheel event.
Ben Loftis [Thu, 28 Jan 2016 19:42:50 +0000 (13:42 -0600)]
Use visible playhead location for editing during a jog-wheel event.

8 years agoCenter the playhead for stationary_playhead playback.
Ben Loftis [Wed, 27 Jan 2016 23:10:59 +0000 (17:10 -0600)]
Center the playhead for stationary_playhead playback.
This avoids a visual discontinuity when playback is initiated after a jog-event.

8 years agoInitialize Editor::clicked_selection to prevent programming error dialog/exit
Tim Mayberry [Thu, 28 Jan 2016 03:30:59 +0000 (13:30 +1000)]
Initialize Editor::clicked_selection to prevent programming error dialog/exit

This was triggered when reloading session and immediately duplicating range with
keyboard shortcut. As clicked_selection was uninitialized it would try to use
an invalid index into the TimeSelection.

8 years agoChange duplicate range to use time range/s rather than a single region
Tim Mayberry [Wed, 27 Jan 2016 13:18:06 +0000 (23:18 +1000)]
Change duplicate range to use time range/s rather than a single region

This should fix bugs #4980, #4984, #4986 and #6579

8 years agoAdd Playlist::duplicate_range/s utility methods
Tim Mayberry [Wed, 27 Jan 2016 13:04:33 +0000 (23:04 +1000)]
Add Playlist::duplicate_range/s utility methods

8 years agomackie: fix subview mode logic
Paul Davis [Thu, 28 Jan 2016 00:05:47 +0000 (19:05 -0500)]
mackie: fix subview mode logic

8 years agomackie: clean up (some) interactions between subview mode and selection
Paul Davis [Thu, 28 Jan 2016 00:00:21 +0000 (19:00 -0500)]
mackie: clean up (some) interactions between subview mode and selection

Also, stop Plugin button from doing anything, since it has nothing to do yet

8 years agoFix AU port-name encoding.
Robin Gareus [Wed, 27 Jan 2016 23:00:47 +0000 (00:00 +0100)]
Fix AU port-name encoding.

This allows us to revert ec8cf4e4, maybe. After testing if
port-names are still properly displayed.

8 years agoFix µ-iness.
Robin Gareus [Wed, 27 Jan 2016 22:39:35 +0000 (23:39 +0100)]
Fix µ-iness.

8 years agoUse proper UTF8 file-names during export.
Robin Gareus [Wed, 27 Jan 2016 21:57:31 +0000 (22:57 +0100)]
Use proper UTF8 file-names during export.

8 years agoremove debug output
Paul Davis [Wed, 27 Jan 2016 21:26:50 +0000 (16:26 -0500)]
remove debug output

8 years agomonitor send does not count in Route::nth_send()
Paul Davis [Wed, 27 Jan 2016 21:26:41 +0000 (16:26 -0500)]
monitor send does not count in Route::nth_send()

8 years agomackie: semi-working Sends subview mode
Paul Davis [Wed, 27 Jan 2016 19:15:41 +0000 (14:15 -0500)]
mackie: semi-working Sends subview mode

8 years agono need for multiple send level/enable parameter types
Paul Davis [Wed, 27 Jan 2016 19:15:34 +0000 (14:15 -0500)]
no need for multiple send level/enable parameter types

8 years agoremove mackie send pot mode (subview mode for sends coming up)
Paul Davis [Wed, 27 Jan 2016 17:41:01 +0000 (12:41 -0500)]
remove mackie send pot mode (subview mode for sends coming up)

8 years agoreturn relevant AutomationControl for send_level_controllable() in Ardour
Paul Davis [Wed, 27 Jan 2016 16:38:14 +0000 (11:38 -0500)]
return relevant AutomationControl for send_level_controllable() in Ardour

8 years agomake Route::nth_send() and Route::nth_processor() be const
Paul Davis [Wed, 27 Jan 2016 16:37:54 +0000 (11:37 -0500)]
make Route::nth_send() and Route::nth_processor() be const

8 years agoadd stubs and enums to access "well-known" send controls
Paul Davis [Wed, 27 Jan 2016 16:16:13 +0000 (11:16 -0500)]
add stubs and enums to access "well-known" send controls

8 years agoadd Novation_LaunchKey25.map
Ben Loftis [Tue, 26 Jan 2016 22:48:00 +0000 (16:48 -0600)]
add Novation_LaunchKey25.map

8 years agosatisfy some pedantic compilers, #6748
Robin Gareus [Tue, 26 Jan 2016 14:14:55 +0000 (15:14 +0100)]
satisfy some pedantic compilers, #6748

8 years agowhen using InverseGroup for rec-enable, do not collect group members and pass them...
Paul Davis [Tue, 26 Jan 2016 03:10:43 +0000 (22:10 -0500)]
when using InverseGroup for rec-enable, do not collect group members and pass them to a session RT event method

8 years agoNOOP: whitespace fixes
Paul Davis [Tue, 26 Jan 2016 03:08:47 +0000 (22:08 -0500)]
NOOP: whitespace fixes

8 years agowhen using InverseGroup for solo, do not collect group members and pass them to a...
Paul Davis [Tue, 26 Jan 2016 03:08:23 +0000 (22:08 -0500)]
when using InverseGroup for solo, do not collect group members and pass them to a session RT event method

8 years agofix/improve logic for InverseGroup
Paul Davis [Tue, 26 Jan 2016 03:07:36 +0000 (22:07 -0500)]
fix/improve logic for InverseGroup

the route group is "inactive for predicate" if EITHER the
group itself is inactive, or the predicate returns false.

8 years agowhen using InverseGroup, do not collect group members and pass them to a session...
Paul Davis [Tue, 26 Jan 2016 03:06:41 +0000 (22:06 -0500)]
when using InverseGroup, do not collect group members and pass them to a session RT event method

8 years agofaderport: add a few more sensible actions to the footswitch options
Paul Davis [Mon, 25 Jan 2016 20:00:39 +0000 (15:00 -0500)]
faderport: add a few more sensible actions to the footswitch options

8 years agofaderport: add footswitch combos to GUI to allow user control over what the switch...
Paul Davis [Mon, 25 Jan 2016 19:48:21 +0000 (14:48 -0500)]
faderport: add footswitch combos to GUI to allow user control over what the switch does

8 years agofaderport: add footswitch button
Paul Davis [Mon, 25 Jan 2016 19:32:09 +0000 (14:32 -0500)]
faderport: add footswitch button

8 years agouse route gain control, not amp->gain()
Paul Davis [Mon, 25 Jan 2016 16:48:43 +0000 (11:48 -0500)]
use route gain control, not amp->gain()

8 years agoGainMeter(Base) now has an explicit gain control given to it
Paul Davis [Mon, 25 Jan 2016 16:47:44 +0000 (11:47 -0500)]
GainMeter(Base) now has an explicit gain control given to it

8 years agochange exposed type of various objects' gain controls; remove Amp::gain() as a shortcut
Paul Davis [Mon, 25 Jan 2016 16:47:21 +0000 (11:47 -0500)]
change exposed type of various objects' gain controls; remove Amp::gain() as a shortcut

8 years agoMake horizontal scroll increment consistent in ruler and track canvas areas
Tim Mayberry [Mon, 25 Jan 2016 07:26:11 +0000 (17:26 +1000)]
Make horizontal scroll increment consistent in ruler and track canvas areas

In response to a comment in #6722, as there is little delineation between the
ruler and track canvas areas it makes sense to keep the scrolling step the same
to avoid unintended jumps in scrolling if mouse cursor moves between areas.

8 years agodeactivate plugin if connect_and_run returns an error
Robin Gareus [Sun, 24 Jan 2016 02:19:24 +0000 (03:19 +0100)]
deactivate plugin if connect_and_run returns an error

8 years agoadd wrapper for ChanMapping::get()
Robin Gareus [Sun, 24 Jan 2016 00:11:15 +0000 (01:11 +0100)]
add wrapper for ChanMapping::get()

The boolean "valid" is implicit, get() returns -1 (really UINT32_MAX)
This simplifies upcoming lua bindings

8 years agoAdded midi map file for AKAI MPK MINI
Robert Schneider [Sat, 23 Jan 2016 14:07:55 +0000 (15:07 +0100)]
Added midi map file for AKAI MPK MINI