summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2017-06-29Fix send mono to stereo (or N to M; M > N) sends #7409 part 1/2Robin Gareus
2017-06-29Add a convenience MenuHelper c'torRobin Gareus
This is pretty much Gtkmm's * CheckMenuElem::CheckMenuElem * MenuElem::MenuElem except MenuItems are created with bool mnemonic = false;
2017-06-28fix OSX builds (llmath compat)Robin Gareus
2017-06-27Distinguish error-messages.Robin Gareus
The vast majority of errors reported by users as "Cannot configure audio/midi engine with session parameters" have nothing to do with engine-parameters.
2017-06-27Update fluidsynthRobin Gareus
Fix potential crashes in case fluid-synth runs into an OOM error, and address a const-cast compiler warning. Switch to track github repo (instead of sf.net git)
2017-06-26Add convenience fn to compute a file's sha1sumRobin Gareus
2017-06-26Fix friend declaration in WaveView code for non-c++11 buildsTim Mayberry
2017-06-26Reimplementation of large parts of the WaveView classTim Mayberry
The drawing itself should be unchanged but much of the rest of the implementation has changed. The WaveViewThreads and WaveViewDrawingThread classes were added and allow multiple drawing threads. The Item::prepare_for_render interface is implemented by WaveView to enable queuing draw requests for the drawing threads to process as soon as the state change occurs during Editor::visual_changer, which often means the images will be finished by the time they are needed in WaveView::render. This can significantly reduce total render time and also flickering caused by images not being ready for display. If the drawing thread/s cannot finish the request by the time it is required in WaveView::render then cancel it and draw the WaveViewImage in the GUI thread if it is likely it can be completed in the current render pass/frame. This change also helps reduce the flickering caused by images not being ready with threaded rendering, but with several drawing threads, drawing in the GUI thread may not often occur (unless explicitly requested). Allow unfinished images to be returned from the cache in WaveView::prepare_for_render so that new draw requests aren't queued for duplicate images. This reduces the amount of drawing for instance in compositions where there are many instances of the same sample/waveform displayed on the canvas as only a single image should be drawn. Use a random width within a certain range for WaveView::optimal_image_width_samples so that image drawing is less likely to occur at the same time (which will cause a spike in render/draw time and increase the chance of flickering waveforms). Move implementations of the private WaveView classes into wave_view_private.h and wave_view_private.cc source files. Incorporate a fix for limiting the waveview image size to the cairo image size limit. Should hopefully Resolve: #6478
2017-06-26Add Canvas::get_microseconds_since_render_start() methodTim Mayberry
Initial use is for the WaveView class to determine whether on not to draw the waveform in the GUI thread.
2017-06-26Add Canvas::get_last_render_start_timestamp methodTim Mayberry
2017-06-26Only call Gtk::Widget::queue_draw_area in canvas when item and visible area ↵Tim Mayberry
intersect Refactor GtkCanvas::request_redraw to use Rect::intersection
2017-06-26Add an optional ArdourCanvas::Item::prepare_for_render interfaceTim Mayberry
Called when an item has requested a redraw and intersects with visible canvas area. Also add Canvas::prepare_for_render that will call Item::prepare_for_render for items visible on the canvas.
2017-06-26Add PreRender signal to the canvasTim Mayberry
Emitted by the canvas immediately before rendering.
2017-06-26Whitespace fixes in canvas.hTim Mayberry
2017-06-25Allow saving state w/o backendRobin Gareus
Connections are remembered by ARDOUR::Port to re-establish at load.
2017-06-25Report Dummy as not available if not runningRobin Gareus
This fixes an issue with port-connections being polled from the backend even when it's not running.
2017-06-25Create a deep-copy of MIDI sources when saving snapshotsRobin Gareus
2017-06-25Extend API to allow calling new_midi_source_path() with source_lock heldRobin Gareus
This is in preparation for cloning MIDI-sources during snapshot save.
2017-06-24OSC: simplify GUI and make less error-proneLen Ovens
2017-06-23OSC: Allow /bank_up to accept -1 as well as 1 so encoder can work.Len Ovens
2017-06-23OSC: make sed_fader work with banking too.Len Ovens
2017-06-23OSC: Add master_send_enable for MBLen Ovens
2017-06-23OSC: redo math for redux control with fewer calls.Len Ovens
2017-06-23OSC: Messages too fast at bank_change/refresh slowed down.Len Ovens
2017-06-24Fix metronome + capture alignment for MixbusRobin Gareus
2017-06-23OSC: Fix math error in send fader feedbackLen Ovens
2017-06-23amend 5e5f7a55; re-add wrongly removed variableRobin Gareus
2017-06-23leave a hint for clang's static analyzerRobin Gareus
2017-06-23Remove Automation Types that should never have existed.Robin Gareus
2017-06-23MCU: Remove use of AutomationType as ID, part two.Robin Gareus
This may need some small tweaks for MB channelstrip to set print-format (like LV2 plugins would) for cases where the default value_as_string() differs.
2017-06-23MCU: Remove use of AutomationType as ID, part one.Robin Gareus
2017-06-23Implement undo for merging VCA-master automation/value on disconnect.Robin Gareus
2017-06-23Improve default parameter displayRobin Gareus
2017-06-22OSC: only show visible plugins (not MB channel strip PI)Len Ovens
2017-06-23Remove unnecessary LocaleGuard header includeTim Mayberry
2017-06-22Update Slavable APIRobin Gareus
Do not use AutomationType to identify parameters, use complete Evoral::Parameter and Automatable. For "batch connections", a Slavables needs to implement an API to return the relevant controls. This is only a first step towards a more generic Master/Slave framework.
2017-06-22NO-OP: whitespaceRobin Gareus
2017-06-22OSC: Add increment fader.Len Ovens
2017-06-22OSC: allow mixbuses to showLen Ovens
2017-06-22Accommodate newly introduced source(s) in our MSVC project (libpbd)John Emmas
2017-06-22OSC: use internal_to_interface or reverseLen Ovens
2017-06-22Remove LocaleGuard from Plugin::get_stateTim Mayberry
Let the plugin implementation of Plugin::add_state use a LocaleGuard if it is necessary (VST/LV2). This puts the LocaleGuards where they are required but the LocaleGuards in Session::set/get_state will mean these LocaleGuards are a noop. They are still useful for documentation purposes and in case the code is called from a non-Session context at some point.
2017-06-22Remove LocaleGuards from LadspaPlugin::set/add_stateTim Mayberry
String <-> type conversion is being performed by the pbd/string_convert.h API via PBD::XMLNode so LocaleGuards are not necessary.
2017-06-22Remove unnecessary LocaleGuards from VSTPlugin derived classesTim Mayberry
VSTPlugin::set_state and VSTPlugin::add_state methods both already contain LocaleGuard instances.
2017-06-22Remove unused ArdourCanvas::HSV constructorTim Mayberry
Using stringstream for this is not locale independant. If this constructor is needed at a later stage it should be reimplemented.
2017-06-22Remove locale_guard.h from ardour/ardour.h headerTim Mayberry
Add to source files that use LocaleGuard Results in far less recompiling when pbd/locale_guard.h changes
2017-06-22Remove unused pbd/locale_guard.h header from Gtkmm2ext::Barcontroller classTim Mayberry
2017-06-22Remove LocaleGuards from SVAModifier and HSV classesTim Mayberry
float <=> string conversion now done using PBD::to_string/string_to so LocaleGuards are no longer needed.
2017-06-22Remove LocaleGuard from ARDOUR::PannerShellTim Mayberry
All Panner implementations using PBD::to_string/string_to for float <=> string conversion and no longer require a LocaleGuard.
2017-06-22Remove LocaleGuard from ARDOUR::Pannable classTim Mayberry
string <=> float conversions are using PBD::to_string/string_to and no longer require a LocaleGuard