086e48796c
surfaces: first round of conversion to use timeline types
2021-08-13 12:51:29 -06:00
f4490f54c5
change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
...
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
60f3985957
replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
...
::pack_start() was removed
2021-08-13 12:51:26 -06:00
210702481b
add required virtual method to Push2Canvas
2021-08-13 12:51:26 -06:00
9e5354a65e
tweak a minor issue with canvas API
2021-08-13 12:51:26 -06:00
b58dfc7f0f
Resolve microseconds_t ambiguity 1/2
...
This resolves a PBD vs ARDOUR namespace error for some compilers:
```
error: reference to 'microseconds_t' is ambiguous
libs/pbd/pbd/microseconds.h:29:19: error: candidates are: typedef uint64_t PBD::microseconds_t
libs/ardour/ardour/types.h:81:29: error: typedef PBD::microseconds_t ARDOUR::microseconds_t
```
2021-06-27 17:33:05 +02:00
e7466bddbc
Push2: Clean up forward declarations
2021-06-18 13:53:53 -04:00
e0a6aba28d
Ignore saved port-name when loading ctrl-surface state
...
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
...
This is a better variant of bbb6851468
, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
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