Commit Graph

15582 Commits

Author SHA1 Message Date
Robin Gareus
aa3f7f2414 Remove undo function from global namespace 2020-02-25 20:09:47 +01:00
Robin Gareus
7532571fb2 NO-OP: whitespace 2020-02-25 17:55:51 +01:00
Robin Gareus
e926a580a9 Disable Transport Master boost debug 2020-02-25 16:17:00 +01:00
Robin Gareus
53a6b3e28d Fix cleanup, lock source-list, emit SourceRemoved
This fixes various cases where SessionHandleRef shared_ptr<>
were kept when sources were removed.
2020-02-25 16:17:00 +01:00
Robin Gareus
28c141d450 Remove history file when it's empty
Various operations clear the history (e.g. cleanup). In that
case the GUI correctly had an empty Undo/Redo history, but the
file on disk was left in place.

Next session load restored the old, incorrect Undo/Redo history.
2020-02-25 16:17:00 +01:00
Robin Gareus
3aaaa7e459 Update region-factory boost-debug 2020-02-25 16:17:00 +01:00
Robin Gareus
fc91c217d1 Notify owners when removing regions during cleanup
Previously the region was only removed from the Session's
region_map without sending notifications.
2020-02-25 16:16:59 +01:00
Robin Gareus
8e1a2d7caa Prefer const iterators 2020-02-25 16:16:59 +01:00
Paul Davis
7e4728027c fix thinko when handling set_speed (0.0)
Code only handled a reversing->rolling path, not reversing->stopped
2020-02-24 20:06:43 -07:00
Paul Davis
4749fcef86 fix incorrect handling of MIDI data by AsyncMIDIPort
This type of MIDI port fetches all of its data from inside ::cycle_start(),
and delivers it to a FIFO connected to another thread (typically a
control surface).

Unlike regular MidiPorts, which will be read from inside a Session::process()
call, these ports will read their data once per AudioEngine::process() cycle.
They therefore cannot use MidiPort::get_midi_buffer() which scales and adjusts
event timestamps as if the data is being accessed from within Session::process().

It is still an open question whether or not AsyncMIDIPort::cycle_start() should
still scale event timestamps by speed. In some respects it seems more appropriate
to do so, and the reading thread (e.g. a control surface) doesn't care about
the "nframes" limit on timestamps that exists for calls within a Session::process()
tree. For now, leave the timestamps unscaled by speed.
2020-02-24 18:44:58 -07:00
Paul Davis
42c13607a2 NOOP: remove whitespace 2020-02-24 18:44:58 -07:00
Robin Gareus
89e5954953 Add a method to clear ImportStatus arrays
This is in preparation to fix a
 "SessionHandleRef exists across session deletion"
error.
2020-02-25 02:35:36 +01:00
Robin Gareus
f845bef8c6 Update source-factory boost-debug 2020-02-25 02:34:04 +01:00
André Nusser
0a1ed004f2 Remove unused forward declaration. 2020-02-24 23:01:15 +01:00
Robin Gareus
021ff2044a Zero x-run count after session-load and engine restart 2020-02-24 22:21:18 +01:00
Robin Gareus
f16d97a013 Consolidate startup state = Clean; calls
This also emits DirtyChanged() only if needed.
2020-02-24 22:16:56 +01:00
Robin Gareus
1074c16299 Websockets: error on unhandled callbacks
This prevents unhandled http request from hogging the backend.
2020-02-24 22:06:15 +01:00
Robin Gareus
bd00db9e8b Websockets: use established NDEBUG - see assert(3) 2020-02-24 22:06:15 +01:00
Robin Gareus
17cd3853e0 Fix initial audible noise on muted or silenced tracks
When loading a session with muted tracks, those tracks were
not initially muted, but ardour only faded them out.
The same happened to sends, and also tracks with non unity fader:
an initial fade from unity to target gain was done.

Now this send and deliveries always fade-in (like default Amp does).
2020-02-24 22:06:15 +01:00
Todd Naugle
06d4dc0ede Fix uninitialized member variable. 2020-02-24 13:16:32 -06:00
Todd Naugle
ceea3e3311 NOP: No need to set this variable to itself. 2020-02-24 13:16:32 -06:00
Robin Gareus
4f8777e968 Tweak mach thread priority debug msg 2020-02-24 05:29:56 +01:00
Robin Gareus
e737a9b000 Fix setting CoreAudio RT-priority 2020-02-24 04:38:49 +01:00
Robin Gareus
a9c75f9760 Fix CoreAudio systemic latency, implement hw latency report 2020-02-24 04:24:50 +01:00
Robin Gareus
53a6c24147 Add API to query hardware latency (as reported by the driver)
So far only MacOS/X CoreAudio supports this. This is intended
for defualt values in case a user has not callibrated the device, yet.
2020-02-24 04:24:12 +01:00
Robin Gareus
bf649cd68a Fix another websocket surface crash when no panner is available
This amends 224be91211
2020-02-23 19:12:26 +01:00
Robin Gareus
8b092f8658 Websockets: use unique header guards 2020-02-23 16:21:55 +01:00
Robin Gareus
5e3480ba8f NO-OP: Re-indent websockets code
"Always use Tabstops for block-indent (the code must be
formatted correctly with "[TAB] = N spaces" for any value of N).
Use space only for alignment." - https://ardour.org/styleguide.html
2020-02-23 16:21:55 +01:00
Robin Gareus
224be91211 Fix websockets surface crash when panner is not available 2020-02-23 16:21:55 +01:00
Ben Loftis
3e77680a57 surfaces transport hotfix: surfaces should query the transport state via BasicUI, when possible 2020-02-23 09:02:25 -06:00
Ben Loftis
276baee8ad surfaces transport hotfix: BasicUI: prefer actual_speed() and transport_stopped_or_stopping() for current Transport FSM 2020-02-23 09:02:21 -06:00
Ben Loftis
8efb642c46 surfaces transport hotfix: actual_speed() is preferred over transport_speed() for current Transport FSM 2020-02-23 09:02:13 -06:00
Robin Gareus
7fdc35bb45 Fix Unix compile with older libwebsockets
Debian/Ubuntu still only ship libwebsockets 2.x.
Recent libWS abstracts the poll interface to be
compatible with Windows.
2020-02-22 23:27:08 +01:00
Luciano Iam
d7ef188aea Prefix events with LWS_ 2020-02-22 23:10:25 +01:00
Luciano Iam
5abce5aae5 Properly initialize IOCondition in events_to_ioc() 2020-02-22 23:10:25 +01:00
Luciano Iam
7f73cfb36e Properly initialize lws config structs 2020-02-22 23:10:25 +01:00
Luciano Iam
047b05b860 Remove all initializer list usages 2020-02-22 23:10:24 +01:00
Luciano Iam
bb448080b6 Remove locally defined classes 2020-02-22 23:10:24 +01:00
Luciano Iam
d8d70adab8 Replace C++11 lambdas with functors 2020-02-22 23:10:24 +01:00
Luciano Iam
6e499e2cc5 Make code adhere to C++98 (WIP) 2020-02-22 23:10:24 +01:00
Luciano Iam
8db9755d1e Add websockets surface module 2020-02-22 23:10:24 +01:00
Robin Gareus
4416530929 Tweak ArdorIcon display-tool & re-order icons
* add option to render a border
* group icons (assume 7x7 grid)
2020-02-22 21:40:35 +01:00
Paul Davis
541ea5ccad avoid double-locate call when locating-while-stopped
Session::locate() used TransportFSM::stopped() to determine if realtime stop was required. But this would
return false, since the motion state at that time is WaitingForLocate. So invert the test and use
!TransportFSM::rolling
2020-02-21 15:48:53 -07:00
Paul Davis
db3995c559 fix playback glitch : do not adjust file_sample[Type] after read, it is canonical
We told the DR to read from pos+shift, and it increment file_sample[T] appropriately. We should not adjust it. The
only thing that gets adjusted is the sample that will playback (as a result of PlaybackBuffer::increment_read_ptr()
2020-02-21 13:19:31 -07:00
Paul Davis
8e8d2f86a8 centralize determination of "read-audio-data-in-reverse" and fix seek "shift" offset
There is still a bug related to "shift" that causes a playback discontinuity
2020-02-21 11:54:08 -07:00
Paul Davis
f0316430c6 make "reversing" back into a DirectionState and prohibit speed changes while reversing 2020-02-21 11:54:08 -07:00
Robin Gareus
2fb260e6e8 Update Control flags of Aux Sends
This fixes old session-state of sessions saved after
6.0-pre0-3039-g93180ceea9 and before 6.0-pre0-3459-g587fc50059.
It's mainly relevant for Mixbus6.0
2020-02-20 23:11:04 +01:00
Robin Gareus
587fc50059 Fix Inline-control visibility state
This fixes an issue when copy/pasting plugins or aux-sends from
one track to another. After copying the processor, the state
is copied, however the Controllable state did save
the InlineControl flag, so this as lost.

(amend 93180ceea)
2020-02-20 23:06:55 +01:00
Paul Davis
57598acbcf remove unused members 2020-02-20 12:53:57 -07:00
Paul Davis
2398f6127f fix up apparent design thinkos in US2400 key binding handler 2020-02-20 12:53:57 -07:00