Mirror of Ardour Source Code
Find a file
Tim Mayberry 69c29a5346 Reimplementation of large parts of the WaveView class
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-17 01:03:36 +10:00
doc remove and ignore intermediate generated documentation files 2016-04-12 13:55:09 +02:00
export 2 new export formats for stems and such. They export at the current session sample rate. 2017-01-28 13:34:39 -06:00
gtk2_ardour Changes to Editor::visual_changer to support Item/Canvas::prepare_for_render 2017-06-17 01:03:35 +10:00
headless prepare for update to waf 1.8 2016-02-28 21:16:44 +01:00
libs Reimplementation of large parts of the WaveView class 2017-06-17 01:03:36 +10:00
mcp Mackie MCP: Assign some F-keys for default user profile. 2017-05-12 15:43:50 +02:00
midi_maps Midi map for Alesis QX25 2017-05-12 15:28:32 -07:00
msvc_extra_headers Remove a JE addition to one of the qm-dsp source files (no longer needed) 2017-02-06 09:47:10 +00:00
MSVCardour3 Accommodate recently removed source(s) in our MSVC project (gtk2_ardour) 2017-05-23 09:28:44 +01:00
MSVCMixbus3
MSVCvst_scan Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
osc OSC: Add send/plugin page values to GUI 2017-06-14 10:28:45 -07:00
patches
patchfiles Improve midnam for Waldorf Blofeld 2016-08-05 22:03:11 +02:00
scripts Update LuaDialog example script to include File/Folder selection 2017-06-08 13:22:43 +02:00
session_utils Use XMLNode::set_property API in copy-mixer Session utility 2017-04-19 09:36:57 +10:00
templates NOOP, remove trailing whitespace, replace tabs in python scripts 2015-11-29 17:54:31 +01:00
tools Set Display Name for OSX/macOS 2017-05-15 22:49:37 +02:00
vst fix vamp path: 2016-06-25 00:44:04 +02:00
.dir-locals.el
.gitattributes Add a Readme pertaining to GH release tarballs 2017-04-22 16:04:35 +02:00
.gitignore remove and ignore intermediate generated documentation files 2016-04-12 13:55:09 +02:00
ardour-3.ttl
ardour.1 fix link in manpage 2016-10-18 22:26:23 +02:00
ardour.1.es
ardour.1.fr convert French man page from ISO-8859-1 to UTF-8 encoding 2016-03-08 08:39:58 -05:00
ardour.1.ru convert Russian man page from KOI8-R to UTF-8 encoding 2016-03-08 08:39:58 -05:00
COPYING
instant.xml
instant.xml.sae
msvc32-fixup.pl When building with MSVC, adapt the various font sizes to be a closer match to the GCC build 2016-06-23 15:20:03 +01:00
PACKAGER_README
README
README-GITHUB.txt Add a Readme pertaining to GH release tarballs 2017-04-22 16:04:35 +02:00
system_config Empty system_config (pre-seed XML nodes, use built-in settings) 2017-03-02 19:37:36 +01:00
testfile.flac
testfile.ogg
TRANSLATORS Update TRANSLATORS 2017-01-05 09:21:12 +00:00
waf patch waf - fixes clang/linux compilation 2016-02-28 21:48:49 +01:00
wscript Output the setting of the --no-threaded-waveviews option during configure 2017-06-17 01:03:32 +10:00

Please see the Ardour web site at http://ardour.org/ for all documentation..

For information on building ardour: 
      
     http://ardour.org/development.html