summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2020-04-09Add classes for serving content over HTTPLuciano Iam
2020-04-09Clean up and prepare for HTTPLuciano Iam
2020-04-09NO-OP update comments for header guard #endifsLuciano Iam
2020-04-09Another attempt at fixing multi-range exportRobin Gareus
See also * 4f3a95a1da9 * cfd95340b18 * 61e7f3176bf
2020-04-09Cont'd work on fixing export rangesRobin Gareus
This picks up where cfd95340b1 left off. The goal is to ensure that the butler has completed all PostTransportStop related tasks and won't meddle with transport after exporting has started. Previously this could happen, because realtime_stop() queues PostTransportStop and the butler is sommoned after every export process cycle. Since 61e7f3176bf the butler keeps calling non_realtime_stop() every time it is woken up, until TFSM comes around and unsets the flag in the process callback.
2020-04-08use RCU to manage JACK backend's container of portsPaul Davis
2020-04-08prefer initialization to assignmentPaul Davis
2020-04-08remove debug outputPaul Davis
2020-04-08when renaming a port, remove the backend's port map entry based on the *old* ↵Paul Davis
name (not the new one)
2020-04-08fix return valuePaul Davis
2020-04-09Prevent FX from producing sound after exportRobin Gareus
This cuts reverb tails and synth sounds after export. Disabling freewheeling, continues normal processing where export left off. This previously kept notes ringing, or reverbs audible.
2020-04-09Safeguard against libaudiographer exceptionsRobin Gareus
2020-04-09Fix export-alignment with JACK -- #7916Robin Gareus
2020-04-08add required ::clear_ports() call to Dummy backend destructorPaul Davis
2020-04-08Fix exporting multiple range (MacOS)Robin Gareus
The actual issue was introduced in 61e7f3176bfd8e: Session::non_realtime_stop() no longer unsets PostTransportStop (other changes from that commit are not relevant). The real issue however is a race-condition. So far this only seems to happen on MacOS, Coreaudio. It seems that non_realtime_stop() is called in the butler-thread after exporting has started, even though the butler has been paused in wait_until_finished(). Perhaps Coreaudio thread switches causes TransportFSM to reinitialize and scheduling the butler? The use of `usleep()` makes this rather a workaround. However it's sufficient for the coreaudio rt thread to run at least once.
2020-04-08Add/remove source(s) in our MSVC project (ardour_mackie)John Emmas
2020-04-08use an Unwinder to provde exception-safetyPaul Davis
2020-04-07improved port cleanup as backend is destroyedPaul Davis
2020-04-07better fix for port destructionPaul Davis
2020-04-07Revert "PortEngineSharedImpl callbacks should not be pure virtual"Paul Davis
This reverts commit a13ef36b3b6212d1ae0c563c7a60a86152dbb48f. A better fix is coming.
2020-04-07show ARDOUR::Port destructor with either DEBUG::Ports or DEBUG::DestructionPaul Davis
2020-04-07PortEngineSharedImpl callbacks should not be pure virtualPaul Davis
A port can callback from its destructor, which if occuring inside the backend destructor would reach an already partially destructed backend.
2020-04-07fix another explicit return val for ::get_port_by_name() if JACK has diedPaul Davis
2020-04-07fix explicit return val for ::get_port_by_name() if JACK has diedPaul Davis
2020-04-07yet another attempted fix for older gcc/mingwPaul Davis
2020-04-07another attempted fix for older gcc/mingwPaul Davis
2020-04-07do not initialize shared_ptr<Subview> with 0Paul Davis
2020-04-07more code rearrangement ... old gcc/mingw does not allow Enum::ValuePaul Davis
2020-04-07try some rearrangement to fix old mingw buildsPaul Davis
2020-04-07NOOP: whitespacePaul Davis
2020-04-08Cont'd work on disk reader channel initializationRobin Gareus
Amend 648beb94. If initial re-fill happens via override buffers, the buffer may still be effectively empty.
2020-04-07fix missing #includePaul Davis
2020-04-07fix missing #includePaul Davis
2020-04-07fix missing #includePaul Davis
2020-04-07fix return value to be a legal null shared_ptr<PortPtr>Paul Davis
2020-04-07fix 2 additional "resets" of shared_ptr<PortPtr>Paul Davis
2020-04-08Fix false-positive under-run messagesRobin Gareus
Port (or Tracks) can be safely added during playback, however the disk-reader's playback buffer is initially empty. This lead to false-positive Underrun() signals when processing takes place before or concurrently with re-filling the disk-buffer for the new channels. Now new empty buffers are ignored, and produce silence until the initial refill is complete. There is however no per-channel de-click in, yet. This fixes: play some audio track, ctrl+drag a region to the drop-zone, creating a new track while playing.
2020-04-07"fix" some uses of foo<bar<>> by change the closing chars to "> >" (windowsPaul Davis
2020-04-07fix 2 additional "resets" of shared_ptr<PortPtr>Paul Davis
2020-04-07fix "reset" of shared_ptr<PortPtr>Paul Davis
2020-04-07fix portaudio backend to use shared_ptrPaul Davis
2020-04-07Add option to reset x-run count on record-startRobin Gareus
2020-04-07add plugin support for mackie unitsPhil
Main features: Plugin (Select & Edit) 1. Plugin Select: When a track is selected that has PluginInserts, pushing the "Plug-In" button on a mackie will list these across the strips. Clicking a vpot of a strip enables editing the parameters of this selected plugin. 2. Plugin Edit: When a Plugin is selected for editing, the input parameters of the plugin are shown across the channel strips and the vpot is assigned the corresponsing AutomationControl for the parameter. Minor features - When the number of plugins or the number of parameters exceeds the number of strips available on the surface, one can flip through "pages" of views using the Cursor Left and Right keys (this logic I took from http://www.emagic.de/media/support/content/manuals/LogicControl_en.pdf) - When in the Plugin Select mode, rearranging the plugins in the mixer strip is reflected on the surface. - When in Plugin Edit mode, rearranging the plugins in the mixer strip still retains the edit view of the selected plugin (rearranging does not take away the current subview) - When removing a plugin in the mixer strip, this is reflected in Plugin Select, while the view jumps to Pan/Surround (the None subview) when in Plugin Edit mode. - Removing a track resets the subview to None - When in a Subview that is track-specific (Track, EQ, Send, Plug-In, Inst), selecting a different track retains the subview but updates the channel displays and vpot assignments accordingly. When in Plugin Edit mode for track A, and track B is selected, it changes to Plugin Select mode for track B (if plugins are present).
2020-04-07fix CoreAudio backend to use shared_ptrPaul Davis
2020-04-07fix up shared_ptr<> use in JACK backendPaul Davis
2020-04-07use shared_ptr to manage backend port lifetimes (Pulse,ALSA,Dummy,JACK)Paul Davis
JACK is not yet finished. Changes also include minor reformatting and a spelling correction (latecies to latencies)
2020-04-07NO-OP: whitespaceRobin Gareus
2020-04-07Remove unused variableRobin Gareus
2020-04-07NO-OP: whitespaceRobin Gareus
2020-04-07Further tweak ambiguous latency checkRobin Gareus
Ignore latency of async ports (Virtual Keyboard in particular), and only consider ardour's own ports.