Robin Gareus
2edbda2526
Replace explicit image-surface with cairo pattern/group
...
For MacOS/X this is equivalent, rendering happens using a
CGBitmapContext + image-surface. Windows and Linux needs profiling
for respective equivalent surfaces.
2019-12-27 19:35:02 +01:00
Robin Gareus
c3ab63a2ea
Allow for per-widget image-surface backing
...
This is an intermediate commit, before replacing image surfaces with
cairo pattern groups.
The eventual goal is to reduce flickering and/or use
CPU + bitblt for specific widgets instead of cairo
graphics-cards accel.
This also removes excessive calls to getenv() for every rendering
operation.
2019-12-27 19:34:56 +01:00
Paul Davis
7b1a875f9c
remove unused member
...
Note: there is no global state for "the" transport master, since we have several at all times now
2019-12-27 10:53:02 -07:00
Paul Davis
c35a28acfe
variable rename
2019-12-27 10:53:02 -07:00
Paul Davis
0d3a91b381
improve parseability of a comment
2019-12-27 10:53:02 -07:00
Robin Gareus
ab58c894d3
Use weak-ptr for source added/removed signals (1/2)
...
This might fix a "SessionHandleRef exists across session deletion",
when the shared_ptr was be pushed onto a x-thread pool, and not
invalidated in time before the session was closed.
2019-12-25 17:59:38 +01:00
Robin Gareus
df17e3f041
Prevent copy-construction of sources to be destroyed list
...
destroy_sources () is only called from Session::remove_last_capture ().
The list of sources to be destroyed is the local scope of that method
and will hold a reference to the object.
copy-construct the list and removing elements one by one from the
copy is only unnecessary overhead.
2019-12-25 17:57:10 +01:00
Robin Gareus
c9c8cd2777
NO-OP: comment signal emission
2019-12-25 17:52:02 +01:00
Paul Davis
61aeb05f2e
add a mechanism to use existing MIDNAM info and connect to PatchesChanged in future, atomically
...
The atomically is with respect to the initial thread-based MIDNAM loading
2019-12-23 10:27:00 -07:00
Paul Davis
63ba8da3e1
basics of threaded MIDNAM loading
2019-12-23 10:27:00 -07:00
Paul Davis
4874ff8843
slightly enhanced error handling when loading MIDNAM data
2019-12-19 13:14:45 -07:00
Paul Davis
bfa5eb982d
handle MIDI rendering correctly when there are no regions
2019-12-19 13:14:45 -07:00
Paul Davis
8deed500a4
fix thinko ... we're checking if a DiskReader handles audio
2019-12-19 09:09:42 -07:00
Paul Davis
3c83979a50
further improve debug message
2019-12-18 19:56:38 -07:00
Paul Davis
c8b9184956
fix thinko in MidiRegion::render()
...
MidiSource::read() wants a length, not an end-sample.
This should fix (at least) some cases where notes past the region end
get included/played
2019-12-18 19:50:32 -07:00
Paul Davis
9bd8e67f39
remove debug message
2019-12-18 19:49:34 -07:00
Paul Davis
ebe1aeb146
fix debug message
2019-12-18 19:49:09 -07:00
Paul Davis
8b3e7fea37
fix Temporal::Beats::operator*
2019-12-18 18:00:53 -07:00
Paul Davis
aa856b509c
tweak debug output
2019-12-18 18:00:33 -07:00
Paul Davis
a73577a45a
do not try to process audio in a diskreader with no audio playlist
2019-12-18 17:34:39 -07:00
Paul Davis
aeefd7e50a
fix crash when looping with a MIDI track
2019-12-18 15:05:49 -07:00
Robin Gareus
c49c17ffff
Cont'd work on Playlists import from old 2.x sessions
...
v2.0.0 sessions don't save empty playlists. So missing playlists
for a give diskstream are fine. Just use a default empty one.
2019-12-17 22:56:12 +01:00
Paul Davis
53f72dd402
a new stop command while in the middle of declick-to-stop is not a bad transition
2019-12-17 13:21:38 -07:00
Robin Gareus
f76c897f04
Directly apply MIDI automation state changes
...
Previously "play/off" and "discrete/linear" changes had no effect
until the MIDI playlist was edited and MIDI re-read into RAM.
2019-12-17 17:17:27 +01:00
Robin Gareus
37c9a7beb1
Fix MIDI port i/o when vari-speeding
2019-12-17 05:56:49 +01:00
Robin Gareus
848831d844
Convert Disksteam & Playlists from old 2.x sessions
2019-12-17 00:42:28 +01:00
Paul Davis
c144e807ef
remove mistakenly left-in debug stacktrace
2019-12-16 16:18:30 -07:00
Paul Davis
cd78a168b2
reinstate missing latency initialization code
...
Removed (mistakenly) during work on transportFSM
2019-12-16 16:13:39 -07:00
Paul Davis
cafd1b792c
expand DEBUG_TRACE output
2019-12-16 16:13:39 -07:00
Robin Gareus
2c24e6af36
Remove cruft, unused API
2019-12-16 23:37:57 +01:00
Robin Gareus
415d3191de
Parse v2 session-information
2019-12-16 23:37:57 +01:00
Robin Gareus
eff5462009
Lua bindings for well-known send controls
2019-12-16 23:37:53 +01:00
Paul Davis
0b4b53b821
fix logic error that prevented MIDI playlists from being rendered at load time
...
An edit was required to force the render
2019-12-16 10:24:57 -07:00
Robin Gareus
3cdde4ffc1
LV2: add state:mapPath as supported feature and sort URIs
2019-12-15 14:06:00 +01:00
Paul Davis
b2bc934e21
fix behavior of DiskReader when moved after an instrument
2019-12-14 19:34:24 -07:00
Paul Davis
514c05a44e
truncate unnecessarily verbose debug set/bits output
2019-12-14 10:40:07 -07:00
Robin Gareus
93180ceea9
Add Inline Control Port Property
...
This allows to indicate that a control should by default be displayed
inline in the mixer-strip.
Previously that was hard-coded for and enabled for send-level
controls only.
2019-12-14 15:50:56 +01:00
Robin Gareus
d4e023e1cb
Make BusSendLevel 1st class citizen (1/2)
...
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
2019-12-14 15:06:23 +01:00
Robin Gareus
2efc96a9b8
Add Lua bindings to query AutomationControl paramater ranges
2019-12-13 23:05:15 +01:00
Robin Gareus
3ddfb4ffe3
Fix mismatched delete
2019-12-13 15:42:09 +01:00
Robin Gareus
3208535c20
Add method to look up Lua script by name
2019-12-12 20:53:17 +01:00
Paul Davis
bf8c256771
reduce another race condition risk
...
overwrite_queued == true is equivalent to _pending_overwrite != 0
2019-12-12 12:09:15 -07:00
Paul Davis
0b0c415b40
remove debug output
2019-12-12 12:08:48 -07:00
Paul Davis
3c8b506ace
remove useless lock
...
rbuf allocation/use is protected by process_lock
2019-12-12 11:31:43 -07:00
Paul Davis
35bea337d2
fix playback of newly added/modified MIDI data
2019-12-12 11:25:14 -07:00
Paul Davis
de8983ca72
expand DEBUG_TRACE() statement
2019-12-12 11:25:14 -07:00
Robin Gareus
f171e88775
BOOST_SP_NOEXCEPT is n/a in boost 1.62
...
Even though the method that is overridden (shared_ptr<t>::operator=),
has that signature in modern boost, it's of no real significance
for the case at hand (ExportChannel, ExportTimespan)
2019-12-12 16:06:46 +01:00
Paul Davis
87f4a4afff
use process lock to lock out process() during playback buffer resizing
2019-12-11 20:36:10 -07:00
Paul Davis
f78c659840
remove MIDI readahead parameter
...
We just don't do this anymore
2019-12-11 20:36:10 -07:00
Paul Davis
e8b3d38112
variable renaming in Butler for various buffer sizes
2019-12-11 20:36:10 -07:00