8e63685724
push2: cleanup layouts
2016-09-27 14:59:30 -05:00
14d80ec5f8
refactor Push2 GUI into modular "layouts" that encapsulate a given screen, its drawing and event handling
2016-09-27 14:59:30 -05:00
86578ea0cc
push2: first somewhat operational versions of menus
2016-09-27 14:59:30 -05:00
b37531e04f
push2: basics of 4x 4x4 percussive mode, similar to MPC (and vaguely to Live)
2016-09-27 14:59:30 -05:00
5e407406c4
ControlOnly port flag is gone
2016-09-27 14:59:30 -05:00
1c9fdc0ce8
add Session::get_physical_ports() to centralize "get physical ports but (maybe) ignore control-only (and MIDI Through) ports"
2016-09-27 14:59:30 -05:00
47ba20143e
remove ControlOnly port flag, since it was essentially unusable
2016-09-27 14:59:30 -05:00
3cf92ee523
ignore control-only physical ports when building system bundles
2016-09-27 14:59:30 -05:00
bc1876a84b
push2: use correct selection API
2016-09-27 14:59:30 -05:00
053207003b
push2: passthru pitch bend, aftertouch and channel pressure from dem fancy pads!
2016-09-27 14:59:30 -05:00
c13e568ee8
push2: connect pad port to selected MIDI at protocol startup
2016-09-27 14:59:30 -05:00
d8de7962ca
change bundling of Push 2 ports so that the implicit connection ports don't show up
2016-09-27 14:59:30 -05:00
b31df0db2c
add bundle support to push2
2016-09-27 14:59:30 -05:00
581fe8a237
add MIDI bundles to Generic MIDI support so that the ports show up nicely in the grid
2016-09-27 14:59:30 -05:00
591e59dae4
add PortManager::port_is_control_only() and use it in PortManager::get_ports()
...
This allows us to avoid using "control-only" ports (e.g. Ableton Push 2 hardware ports) as inputs or outputs
2016-09-27 14:59:30 -05:00
0318d3cd64
add explanatory comment
2016-09-27 14:59:30 -05:00
5d4e1b3231
remove debug output
2016-09-27 14:59:30 -05:00
33a2995fd8
push2: save and restore push2 pad state, etc.
2016-09-27 14:59:30 -05:00
70477e6fed
push2: almost fully operational ableton style pad mapping, etc
2016-09-27 14:59:30 -05:00
2aec2161f9
push2: initial sort of working pad remapping
2016-09-27 14:59:30 -05:00
597c737ab5
push2: get automatic pad connection to selected MIDI track working again
2016-09-27 14:59:30 -05:00
d19c9885ff
push2: start of pad layout editing
2016-09-27 14:59:30 -05:00
afef816a7b
push2: use a map for direct lookup of pad note
2016-09-27 14:59:30 -05:00
66453868cd
push2: update GUI pad display when octave shift is used, or pad map is changed
2016-09-27 14:59:30 -05:00
eff67c8a8f
push2: basics of octave shifting
2016-09-27 14:59:30 -05:00
915f937aa4
push2: add missing files
2016-09-27 14:59:30 -05:00
cf28d71783
push2: basic GUI dialog
2016-09-27 14:59:30 -05:00
6dbe3a1e3b
post-rebase fixes
2016-09-27 14:59:30 -05:00
d1c024f4f9
move shadow port stuff from AsyncMIDIPort to MidiPort, where it belongs
2016-09-27 14:59:30 -05:00
67620c353f
push2: connect first selected track to pad port (and disconnect).
...
Provisional. Lots of (fun) work to do here
2016-09-27 14:59:30 -05:00
3669096c05
expose AsyncMIDIPort::shadow_port()
2016-09-27 14:59:30 -05:00
0c1c7ec642
set latency range for shadow port.
...
Not tracked if parent/owner port changes latency
2016-09-27 14:59:30 -05:00
7f7a5f1c51
Flush shadow port buffer (to the backend port buffer) if filtering wrote anything.
2016-09-27 14:59:30 -05:00
74ae2c6ae6
Add additional flags when registering a shadow port.
2016-09-27 14:59:30 -05:00
483c408390
add two new port flags
2016-09-27 14:59:30 -05:00
1850510423
change PortManager API to allow specifying additional flags when registering a port
2016-09-27 14:59:30 -05:00
4e1d3f6416
remove declaration for non-existent method
2016-09-27 14:59:30 -05:00
eb43344cf6
use modified add_shadow_port API(); make pads flash when pressed
2016-09-27 14:59:30 -05:00
be1dff4aaa
push2: fix one pad registration detail
2016-09-27 14:59:30 -05:00
8565d61444
change API for shadow ports and filters
...
Filter functor needs to be set before registering port, so provide it when adding the port.
2016-09-27 14:59:30 -05:00
62d2d86b88
add a shadow port for the Push 2 port, to allow us to filter pads (note on/off) to other parts of Ardour
2016-09-27 14:59:29 -05:00
8a06e6735d
add initial implementation of a "shadow port" for AsyncMIDIPort.
...
The shadow port is a secondary port that can be used to allow others to get a copy of part, all or none of the MIDI
stream received by the owner (input) port.
2016-09-27 14:59:29 -05:00
1448be481f
push2: splash screen
...
Coded while the paint prep dries in the sun
2016-09-27 14:59:29 -05:00
169cf294c5
push2: expose page right/left buttons for scrolling; use right/left for banking; mute+solo debugging in place
2016-09-27 14:59:29 -05:00
9321cbaf10
push2: stop segfaults when closing push2 support
2016-09-27 14:59:29 -05:00
3932f07b6b
push2: numerous changes, including long press actions
2016-09-27 14:59:29 -05:00
8a26f02851
amend FaderPort code to use BasicUI::goto_start() with optional argument
2016-09-27 14:59:29 -05:00
4847544144
fix PresentationInfo::flag_match() to match type bits
2016-09-27 14:59:29 -05:00
d7a16786fc
change API for BasicUI::goto_start() to use optional roll-after arg
2016-09-27 14:59:29 -05:00
38fbf3c302
change Session::goto_start() to take an argument to optionally roll after locate
2016-09-27 14:59:29 -05:00