bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
a266a2d5b9
Use session API to set solo
...
This is required so that ::update_route_solo_state() is called
to propagate solo/mute state
2020-10-18 15:28:10 +02:00
72736289c8
NO-OP: rename API rename
...
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
84bf97aa49
Update ControlProtocol API, use CoreSelection
...
* replace signal-emission with direct calls to CoreSelecton
using BaseUI's session pointer
* remove unused leftmost strip API
* use CoreSelection for first-selected strip
* Accessing CoreSelection does not modify the session
(allow access from const callbacks)
* replace static calls in P2 surface
This removes indirection and dependency on the GUI for
managing strip selection.
2020-10-18 14:44:38 +02:00
23feb0491e
Remove using std::min/max from header
2020-06-18 01:05:48 +02:00
57598acbcf
remove unused members
2020-02-20 12:53:57 -07:00
06b2eb1c27
Explicitly use OSX
...
Previously this was inherited via PBD.
On MacOS/X, this adds
"-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags
Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")
On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support
2020-01-25 04:07:37 +01:00
941aa20148
Fix font size on Push2
...
At least on my machine, the fonts on the Push display were ridiculously large,
making everything overlapping and unusable. I suspect this is because
pango_cairo_font_map_get_default() inherits DPI from the system, so the
monitor scaling factor got applied to the Push display as well.
This commit instead creates a new plain font map, and sets the resolution to
96, which looks like what the UI was designed for. Some more tweaking of the
Pango context might make things more optimal on the Push, but just setting the
resolution makes things look reasonable to me anyway.
2019-12-09 23:38:10 +01:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
43fe5c0487
Update Push2 level-meter display (use new API)
...
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
357361c89d
Fix --no-nls (4/5), i18n include order in libs/*
...
"i18n.h" needs to be included last (after any includes that may indirectly
pull in getext or libintl etc)
2018-09-21 19:05:39 +02:00
ed678aa2f9
Fix shared_ptr initialization
...
error: no matching function for call to
'boost::shared_ptr<ArdourSurface::Push2::Button>::shared_ptr(int)'
2018-09-03 13:38:37 +02:00
6e419a961e
use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code
2018-09-02 13:23:57 -04:00
9f30d14906
P2: Fix check if ports exist
2018-08-30 22:28:31 +02:00
b9c6ffac21
fix header order and space alignment
2017-09-24 12:57:27 -04:00
7db12f6b12
convert codebase to use Temporal for various time types
2017-09-24 12:03:54 -04:00
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
483ad807ce
fix crashing thinko in push2 code
2017-09-08 18:36:26 -04:00
2d60a69c2d
Consolidate ctrl surface code
2017-08-05 01:28:11 +02:00
b5e0b5b09f
PortManager::unregister_port() must be called with process lock
...
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28 20:15:15 +02:00
fde0e293a3
Remove unused "mark" parameter from stop_touch() API
2017-07-24 01:59:18 +02:00
601c317d70
Clean up library inheritance (colors.h, utils.h)
...
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
...
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
0c035778e1
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls
2017-05-05 18:56:25 +01:00
bd3965e278
Use XMLNode::get/set_property in Push2 surface
...
Fix push2 property names to use hyphen word separator.
2017-04-19 09:36:54 +10:00
9d8829f5bf
Remove direct calls to set solo_control()
...
Changing solo-state needs to be done in rt-context to atomically
propagate solo/mute.
set_control() queues a rt-event, later Session::rt_set_control() calls
Session::update_route_solo_state() to propagate solo/mute.
2017-02-17 03:58:51 +01:00
b424187be1
another action name fix for Push2 support
2017-01-28 19:16:24 +01:00
ade59c123c
fix action names in Push2 support code
2017-01-28 18:51:03 +01:00
94c11ebd90
remove debug cruft from wscript for push2 that breaks with python3
2017-01-21 15:04:39 +00:00
5d7b6fdd62
ancillary change related to removal of boost::optional<Rect>
2017-01-19 20:55:38 +01:00
c43046320b
reset peak meters used in push2 when stripable goes away
2016-10-17 15:58:39 -04:00
687ac2d294
remove unused variable
2016-10-17 15:58:39 -04:00
1552547f65
stop using gkd_pango_context_get() in ArdourCanvas::Canvas and require concrete instances to supply a Pango::Context; do this for GtkCanvas and Push2Canvas
2016-10-13 17:18:54 -04:00
Nathan Stewart
0df00465fd
Fixed array index out of bounds in Push2Menu::set_active()
2016-10-12 14:50:03 -04:00
ba4220b135
fix some compiler warnings (from mingw)
2016-09-30 13:07:53 -04:00
8d30580450
attempt to fix windows failed build by including pthread.h to get DEBUG_THREAD_SELF correctly defined
2016-09-30 12:52:07 -04:00
7701207123
push2:small logic fix for destructor, mostly to ensure that the track_mix layout is destroyed
...
Otherwise it is still connected to the ControlProtocol::StripableSelectionChanged signal, even though the
event loop specified in the connection has been destroyed.
2016-09-30 11:07:05 -05:00
1b830f2604
reorganize push 2 code and logic to better handle device arrival after program startup
...
Note: we do not handle device departure correctly yet, mostly because the shadow (pad) port has a retained
reference somewhere
2016-09-30 11:23:01 -04:00
8cff66c7e0
remove unused member variable
2016-09-30 11:23:01 -04:00
e71809dc04
push2 gui catches port registrations
2016-09-30 11:23:01 -04:00
4a159b817f
remove useless code from push2 gui dialog
2016-09-30 11:23:01 -04:00
d8291550e7
Rectangle is ambiguous on Windows
...
In file included from /usr/share/mingw-w64/include/windows.h:71:0,
from /home/ardour/win-stack-w32/include/pthread.h:198,
from /home/ardour/ardour-w32/libs/pbd/pbd/event_loop.h:29,
from /home/ardour/ardour-w32/libs/pbd/pbd/signals.h:42,
from /home/ardour/ardour-w32/libs/midi++2/midi++/parser.h:26,
from ../libs/surfaces/push2/mix.cc:30:
/usr/share/mingw-w64/include/wingdi.h:3049:67: note: candidates are: WINBOOL Rectangle(HDC, int, int, int, int)
In file included from ../libs/surfaces/push2/mix.cc:48:0:
/home/ardour/ardour-w32/libs/canvas/canvas/rectangle.h:30:48: note: class ArdourCanvas::Rectangle
2016-09-29 13:56:10 +02:00
0a9c12f250
MacOS [sic] required changes for Rect in Push 2 code
2016-09-28 17:24:14 -04:00
1aab360b7d
remove unnecessary method
2016-09-28 17:23:52 -04:00
67e415e14c
make Ben's cool range select hack work with Push 2
2016-09-28 11:28:45 -05:00
6c4627b1b7
fix for push2 code on Windows (no random())
2016-09-28 10:51:01 -05:00
b6e62c6654
move mode/scale/key definitions out of push2 code and into libardour; Aeolian is the same as Minor
2016-09-28 10:47:17 -05:00
0fc4a61fa0
don't render push2 layouts to PNG
2016-09-27 15:42:36 -05:00
a6d4bb0432
add missing/moved files from push2 merge
2016-09-27 15:42:26 -05:00
bbc410dae8
push2: add code to render screen to PNG files for screenshot purposes
2016-09-27 14:59:32 -05:00
3a7cf72752
push2: tweak layout APIs etc.
2016-09-27 14:59:32 -05:00
db4edbf3b5
push2: tweak logic of master button
2016-09-27 14:59:32 -05:00
303358973f
push2: improve logic of ::set_current_layout() to allow reset of same layout
2016-09-27 14:59:32 -05:00
0006f28511
push2: don't illuminate a button we do not use
2016-09-27 14:59:32 -05:00
5e6249b7b1
push2: null handle on failed open
2016-09-27 14:59:32 -05:00
0cd60747a5
push2: fix issue with solo/mute display when entering mix layout
2016-09-27 14:59:32 -05:00
33015a7173
push2: many improvements to track mix and mix layouts
...
Including meters and clocks
2016-09-27 14:59:32 -05:00
a5e112a73f
push2: correct knob origin translation for drawing
2016-09-27 14:59:32 -05:00
8be313932e
use new canvas meter in push2 track mix layout
2016-09-27 14:59:32 -05:00
29b8072555
add canvas-based Meter object
2016-09-27 14:59:32 -05:00
e1fb7fe9fc
working canvas meter code
2016-09-27 14:59:32 -05:00
7a0e2ceec0
first pass (incomplete) at canvas meters (in push2 context)
2016-09-27 14:59:32 -05:00
879b09d920
stop crashes from out-of-range values
2016-09-27 14:59:32 -05:00
7c82792a57
missing includes
2016-09-27 14:59:32 -05:00
feafcbf61d
fix various aspects of knob function
2016-09-27 14:59:32 -05:00
7594e7644a
vpot above metronome button controls click gain; master gain knob now works correctly
2016-09-27 14:59:32 -05:00
0f39f27375
fix issue with initial menu display
2016-09-27 14:59:32 -05:00
6d5878a926
leave a comment about port reconnection
2016-09-27 14:59:32 -05:00
0aaf2d1f34
clear filtered note map when entered drum mode
2016-09-27 14:59:32 -05:00
ae01ac2384
update pad colors when selected track colors chane
2016-09-27 14:59:32 -05:00
a9a3b71807
change handling of MIDI sysex incoming to be a little more efficient
2016-09-27 14:59:32 -05:00
44c0ea2095
fix assignment of palette colors by using white-balance = 126; also use ArdourCanvas color macros
2016-09-27 14:59:32 -05:00
48087c3161
update selection rect color when track color changes
2016-09-27 14:59:32 -05:00
acf586b058
add MidiByteArray::compare_n()
2016-09-27 14:59:31 -05:00
69a789c513
push2: make quantize and duplicate buttons do something useful
2016-09-27 14:59:31 -05:00
f35c5fd5a6
push2: master button now does something useful
2016-09-27 14:59:31 -05:00
3aa0676f70
push2: substantial improvements to track mix mode, and a few other details
2016-09-27 14:59:31 -05:00
f12150a1ed
push2: always use a contrasting color when flashing played pads
2016-09-27 14:59:31 -05:00
cb340bf190
push2: when playing pads, flash all pad LEDs for the same note number for the pressed pad
2016-09-27 14:59:31 -05:00
0add64d4ab
push2: fix color map store/lookup for rgba<=>color index mapping
2016-09-27 14:59:31 -05:00
9e1c7ccaf8
push2: don't send ScaleChanged unless something did actually change
2016-09-27 14:59:31 -05:00
33713d6f68
push2: reset pad colors when necessary
2016-09-27 14:59:31 -05:00
a4cd0d7dae
push2: set and use selected track color for root notes on pads
2016-09-27 14:59:31 -05:00
06683b1bda
header file now included in push2.h
2016-09-27 14:59:31 -05:00
13295cf060
use ArdourCanvas::Color not uint32_t for push2 color decls
2016-09-27 14:59:31 -05:00
87ab1625ff
push2: volume pots now work like non-linear faders, as desired
2016-09-27 14:59:31 -05:00
6f2ac5d6ad
push2: various changes in support of menus and scale mode
2016-09-27 14:59:31 -05:00
b6ecc56e7a
push2: scale selection and display on video display now working
2016-09-27 14:59:31 -05:00
9cc40aafa0
push2: menu presentation now working
2016-09-27 14:59:31 -05:00
0610e1dc8d
remove all pad + scale stuff from push2 gui
2016-09-27 14:59:31 -05:00
216ce7bcb8
a slew of unconnected mostly minor tweaks to get Push2 support back to where it was...
...
... prior to using the canvas for the video screen
2016-09-27 14:59:31 -05:00
b835486170
tweaks and so forth to get first canvas-based rendering to Push2 display
2016-09-27 14:59:31 -05:00
8cc94e79ac
push2: remove Knob::set_position() overload
2016-09-27 14:59:31 -05:00
7c9f3acc60
first compiling and theoretically correct version of Push2 canvas display.
...
Not tested with device at this point
2016-09-27 14:59:31 -05:00
2810e5619a
push2: provide basic GUI control for pressure mode
2016-09-27 14:59:31 -05:00
b822d8be36
basic code to get/set pressure mode to/from the push2
2016-09-27 14:59:31 -05:00
f50d7cda25
additional i18n.h changes for push2 branch
2016-09-27 14:59:31 -05:00
313a0a7e90
push2: small change to work with a recent change in master
2016-09-27 14:59:31 -05:00
8fdf1669a7
push2: fix up issues with object lifetimes and signals during shutdown
2016-09-27 14:59:31 -05:00
ad7543c02f
push2: track mix layout somewhat working
2016-09-27 14:59:31 -05:00
f20618ae19
push2: continued mix layout display refinement, plus scrolling fixes
2016-09-27 14:59:31 -05:00
11843e00ba
continuing work on refining push2 mix layout
2016-09-27 14:59:31 -05:00
b830965288
push2: steps toward a more ableton-like layout in mix mode
2016-09-27 14:59:31 -05:00
4cc71d2966
push2: parameterize and centralize colors
2016-09-27 14:59:31 -05:00
79025e8c42
push2: small code improvements, avoiding intermediate variables
2016-09-27 14:59:31 -05:00
ccbe1797d6
push2: color palette management, and responding to 2 track properties in TrackMix layout
2016-09-27 14:59:31 -05:00
a4324d79a7
push2: add a little meat to the bones of the TrackMix layout (just a name, for now)
2016-09-27 14:59:31 -05:00
995f3f80bb
push2: skeleton for track mix layout
2016-09-27 14:59:31 -05:00
2689458500
push2: rearrange and separate header file material
2016-09-27 14:59:31 -05:00
64d390ff13
push2: remove unneeded maps from Push2 object
2016-09-27 14:59:30 -05:00
c4602603b4
push2: make octave buttons actually work, with shift-press to reset to zero
2016-09-27 14:59:30 -05:00
6b080bf6ec
stop using pitch bend strip for shuttle control (it sucks, and messes up using it for MIDI performance)
2016-09-27 14:59:30 -05:00
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
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
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
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
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
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
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
f699773490
clear button states at startup *and* shutdown
2016-09-27 14:59:29 -05:00
2afb7f1a30
basic implementation of scrubbing via push2 touch strip
2016-09-27 14:59:29 -05:00
6691975031
gain automation implemented.
...
Push 2 is rather slow to send touch-end messages.
2016-09-27 14:59:29 -05:00
c26de72870
use encoders for gain control
2016-09-27 14:59:29 -05:00
f290be21ee
use right-side buttons to goto_nth_marker()
2016-09-27 14:59:29 -05:00
93dd5414d6
beginning of stripable control; solo+mute mostly operational
2016-09-27 14:59:29 -05:00
c6faede00c
add shift modifier support
2016-09-27 14:59:29 -05:00