summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2018-12-16Optimize plugin-processing for non-automated paramsRobin Gareus
Keep a dedicated list of automated parameters to evaluate in realtime. This fixes a performance issue with plugins that have many controls with only few of them being automated.
2018-12-13Fix ExportFormatSpecification copy-c'torRobin Gareus
This initialize some otherwise uninitalized variables and may fix cue/toc export oddities
2018-12-12LCXL: some more small tweaksJan Lentfer
* assign Pan knob to Comp thresh as secondary function * make cancel_all_solo and cancel_all_mute work in device mode, too
2018-12-12 replace ::cast_dynamic() with relevant ActionManager::get_*_action() callsPaul Davis
2018-12-12replace ::cast_dynamic() with relevant ActionManager::get_*_action() callsPaul Davis
2018-12-11make session/Config now responsible for adding/removing a monitor sectionPaul Davis
2018-12-11add ActionManager::get_actions() to fetch all actions created in ↵Paul Davis
ActionGroups with a given "owner" value
2018-12-10add basic concept of an "owner" for an action group, to allow later groupingPaul Davis
2018-12-10fix Window->Common move for show-mixerPaul Davis
2018-12-10add ActionManager::set_sensitive() for Gtk::ActionGroupPaul Davis
2018-12-10use ActionManager namespace, rather than ActionMap objectsPaul Davis
2018-12-10change ActionManager::find_action() back to ActionManager::get_action()Paul Davis
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
2018-12-10consolidate ActionMap and ActionManager APIs into a single namespacePaul Davis
2018-12-10provide (Static)ActionMapOwner::action_map()Paul Davis
2018-12-09"only" 1048576 -- sounds like it's not sufficientRobin Gareus
2018-12-08Properly keep track of Window Visibility, action stateRobin Gareus
This fixes inconsistent WM::Proxy state when a window is destroyed Specifically "session-options-editor" when the session is unloaded; previously "toggle-session-options-editor" was never unset.
2018-12-07Fix progress report when resampling to fixed-point on importRobin Gareus
2018-12-07Fix importing to a fixed-point format with resamplingRobin Gareus
ResampledImportableSource::read() returns audio-frames; multiplication by number of channels read beyond the buffer.
2018-12-06add syntactic sugar for fetching toggle and radio actionsPaul Davis
2018-12-05some ActionMap infrastructure to start removing ActionManagerPaul Davis
2018-12-05add new variant of ActionMap::find_action()Paul Davis
This is more useful when replacing ActionManager::get_action
2018-12-05Skip silent sources on session-archive -- fixes #7699Robin Gareus
2018-12-05Prevent endless read of silent filesRobin Gareus
This fixes issues with analysis and archiving that rely on a readable to return 0. Note however that createSilent() uses max_samplecnt (INT64_MAX) by default. This relies on a region setting the length of its missing source.
2018-12-04Use atomic read for an atomic variableRobin Gareus
This probably no real world effect since there is a mutex in the loop that acts as a memory barrier.
2018-12-04Fix logic-error in d1cf2163: hide info for optimized buildsRobin Gareus
2018-12-03Special case Mixbus Chanstrip for load calculationRobin Gareus
These processors don't have a UI, so their load stats are not easily visible. The stats can still be queried via Lua API or DSP-load overview window, so we retain this for debug builds.
2018-12-03Consistent AU factory Preset IDsRobin Gareus
Use AU's preset->presetNumber as identifier since std::map are sorted this also indirectly sorts presets by preset-number. (user presets start with a '/' and are listed first, sorted by name). Since Presets are now identified by URI on session load (53a0199a0) and AU user-presets can added/be removed (since ae4604a24b7), simple sequential numbering is no longer an option.
2018-12-02Don't invalidate AU preset on loadRobin Gareus
This works around async parameter-changed signal emission when loading an AU preset. A simple timeout is used to delay making the preset as modified.
2018-12-02Implement AU plugin-preset removalRobin Gareus
2018-12-02Restore actual plugin-preset on session-loadRobin Gareus
This checks if the preset is actually available on the given system and also sets the user-flag correctly.
2018-12-02Towards fixing AU preset invalidationRobin Gareus
This is a step in the right direction: first load the preset and only if preset-loading was successful mark it as loaded. This still does not properly unset "parameter_changed_since_last_preset". AU signals "kAudioUnitEvent_ParameterValueChange" later in the event-loop.
2018-12-01AU: mark preset dirty when parameter changesRobin Gareus
2018-12-01Fix AU preset handlingRobin Gareus
load_property_list() takes a file-path (not URI). Actually it's not clear why we've ever used a `file:///` URI internally.
2018-11-29Fix a tiny memory leak, add_instant_xml() copies the nodeRobin Gareus
2018-11-29Fix uninitialized variableRobin Gareus
2018-11-29NO-OP: whitespaceRobin Gareus
2018-11-29Fix a tiny memory-leak when calling vforkRobin Gareus
2018-11-29Disk I/O: only allocate midi-buffer if neededRobin Gareus
This fixes a memory-leak (_midi_buf was allocated in DiskIOProc but only delete in DiskReader). Also skip midi-refill early on
2018-11-28Fix a potential memory-corruptionRobin Gareus
Disk-writer run() can concurrently use the ringbuffer after it was free()ed by the butler thread.
2018-11-28Remove ambiguous API implementationRobin Gareus
* PortEngine::available() implementation * AudioEngine::connected() wrapper Eventually we may re-introduce PortEngine::available along with a libardour internal port-engine.
2018-11-28Consolidate ambiguous engine API callsRobin Gareus
available(), connected(), running() were ill-defined and used interchangeably.
2018-11-26Fix stuck connection block when template load fails.Robin Gareus
Session::new_route_from_template() unconditionally calls IO::disable_connecting(), and needs to be reverted likewise (no RAII here).
2018-11-26Prevent deadlock when removing routes w/o engineRobin Gareus
2018-11-26Don't allow to add/remove monitor-section w/o engineRobin Gareus
Adding/removing the Monitor section changes port-connections, a port-engine is needed to establish connections. Ideally we'd allow this and queue for connection changes. This will however require deep changes. Also toggling the monitor-section on/off/on w/o engine can later result in failure to register ports. Due to lack of engine-signals not all shared_ptr<> port references are dropped.
2018-11-26Fix various issues when the engine disconnects:Robin Gareus
Previously Port::PortDrop was never handled. The signal was disconnected directly when the connection is re-used by Port::PortSignalDrop. Ports::drop() was not called when the engine was stopped or disconnected, and port-handles were not invalidated. This lead to crashes whenever a port-related operation was performed while the engine was stopped. e.g. adding/removing tracks or plugins (latency recompute, notify port-engine) and various other operations.
2018-11-25Do not allocate MIDI buffers for signal analysisRobin Gareus
At this point in time MIDI buffers are vastly over-sized. They include VST and LV2 event structure. This added about a MB per plugin for no benefit.
2018-11-25Fix Linux/PPC64 runtimeRobin Gareus
This fixes an error while loading shared libraries: libardour.so R_PPC64_ADDR32 reloc at 0x... for symbol `' out of range Treating a local as an immediate value in asm code makes the library non-relocatable.
2018-11-25Allow compilation with winpthreads -- closes #7691Robin Gareus
2018-11-24Auditioner: check if removing synth succeedsRobin Gareus
remove_processor() also calls drop_references, when successful.
2018-11-23Handle some midnam edge-casesRobin Gareus
Whitespace between XML nodes can result in "text" children. Those need to be skipped in the patch-name list.