b86e1204ec
fix borked logic controlling whether/when to draw clip/outline pixels/lines in waveviews
2014-06-08 13:13:44 -04:00
nick_m
e495577f98
Use global clip level from prefs. Restore clip colour, \
2014-06-09 02:50:14 +10:00
nick_m
7a05dde39d
Use a dumb cache for waveview ImageSurfaces. This halves the size of the
...
previous one, but usually ends up using three of them at the current
CACHE_HIGH_WATER setting.
Should result in a smaller memory footprint for sessions with
multiple copies of nearby audio segments (electronic style).
The downside is the larger memory footprint for linear recording
sessions if CACHE_HIGH_WATER > 1 (1 giving a max of two
half - sized cache entries per audio stream).
2014-06-08 01:47:38 +10:00
6019f06bdf
different approach to independent scrolling, involving ArdourCanvas::ScrollGroup
...
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both
directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending
on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to
the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This
method is used when translating between item/canvas/window coordinate systems.
Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas,
where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.
2014-06-03 16:10:27 -04:00
2342b7d611
don't allow waveform to bleed into TimeAxisViewItem frame border
2014-05-31 14:06:10 +02:00
432611113d
directly apply waveform clip-level changes
2014-05-27 16:37:01 +02:00
bf4819ab0e
"We brake for nobody." oh wait. - fixes Rectified Waveform view.
2014-05-26 22:45:42 +02:00
e99c8960c0
first pass at tightening up waveform drawing algorithm to generally round down when dealing with fractional pixels
2014-05-07 10:35:50 -04:00
bb05ae05a8
remove unused _wave_color member from waveview canvas item; use outline color for edge dots of waveforms instead of hardcoding black
2014-01-26 16:02:38 -05:00
02e6d14e23
make no-zero-line be the default for wave views (still shown for normal audio region views
2014-01-10 12:08:58 -05:00
8fa54cd1d9
shrink waveview zero line to single pixel
2014-01-07 22:51:18 -05:00
110c790d91
define signal associated with configurable clipping level to Canvas::WaveView
2013-12-30 15:54:09 -05:00
7158eb7565
add configurable clipping level to Canvas::WaveView
2013-12-30 15:46:44 -05:00
6473cc7cb4
drop use of bounding box to determine whether an item covers a point; add Item::covers(Duple const&)
...
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-04 11:56:10 -05:00
af3056769c
changes to waveform clipping display
...
* clip level is now -0.9dbFS
* display of clipping is optional (see Theme Manager window)
* clipping is based on disk data, unscaled by region gain
2013-06-28 20:21:30 -04:00
aa480b8338
make clip indicators more visible (the smaller of 7 pixels or 5% of track height)
2013-06-28 17:09:39 -04:00
5b3ebe824e
restore display of clipping in waveform displays
2013-06-28 13:40:51 -04:00
c6fe6b0996
cleanup ArdourCanvas::WaveView
...
Mostly this just involved removing the private CacheEntry class that really served no further purpose once
the design reverted to a single cached image
2013-06-27 17:23:34 -04:00
a1f858d3b2
an awful lot of tweaks to drawing details
2013-06-24 16:28:53 -04:00
11becd4a6b
properly restore newer (cairo-canvas related) UI config parameters
2013-06-21 17:15:56 -04:00
1c74a3ab2d
waveform drawing improvements
...
* handle logscaled and rectified
* put dark tips in right places
* improve color selection algorithm
2013-06-21 13:17:37 -04:00
68779e0c0a
(working) start of an experiment with pyramix-style waveform drawing
2013-06-20 23:12:19 -04:00
27c943f1dd
new image cache design for waveviews, with various fixes.
...
Rather than maintain a set of images in a cache, when we no longer have the required waveform data, create a new image that is appropriately centered and extends to roughly twice the screen width (or the limits of the region's source file(s), as necessary)
2013-06-20 14:37:31 -04:00
3604bf12a2
get wave drawing improved, but commit before i tear it all up and go back to a single cached image per waveview
2013-06-19 20:23:22 -04:00
f9d30cf41a
inching pretty close to fully working waves now
2013-06-19 14:44:08 -04:00
79384aeb66
initial semi-working attempt at getting waveview cache to work correctly
2013-06-18 23:03:20 -04:00
691be68ac2
fix rect redraw problems caused by intersection requiring the usual 0.5 expansion (though consider a more general fix for this at teh group level)
2013-06-18 13:46:24 -04:00
77f5f4c4bf
basically operational switch to canvas drawing coordinates, although text and waves don't work, and redraw areas are too small
2013-06-18 08:23:06 -04:00
f9a46e78d6
fix incorrect 3rd arg to AudioRegion::read_peaks() - was passing end, not cnt. Fixes waveforms at high zoom
2013-04-26 11:10:19 -04:00
fd7ac62ca5
don't invalidate image cache for every regionr esize, only region start changes
2013-04-25 09:48:38 -04:00
6f664c1f67
many pervasive changes primarily related to waveform drawing, particular content-dragging, colors, and more
2013-04-24 15:42:14 -04:00
0c170b0897
no create cached waveview images that span from render-start to cache-start, but always clamp the end to render-end, to avoid creating over-sized images
2013-04-19 10:53:52 -04:00
b7aeb147f2
display waveform polarity correctly
...
* cairo's Y axis points downward -> invert phase display
* fix logarithmic view for value.max < 0
2013-04-18 10:25:35 +02:00
ec102f94e1
various work waveview amplitude mgmt; fix playhead cursor drag from timebar click
2013-04-17 15:22:09 -04:00
381d4debf4
make waveform gradient depth continuously variable. color probably needs adjusting as do color stops to get a pleasing effect at most settings
2013-04-16 21:23:50 -04:00
c1df3295c1
virtual Fill:: and Outline:: methods so that Canvas::Items that cache image renderings of themselves can invalidate those caches when colors etc. change; add Item::{begin,end}_visual_change() so that we can notify the canvas more efficiently when *only* visual properties have changed and not the bounding box (probably needs to be used more widely)
2013-04-16 20:38:10 -04:00
81eed21dde
some rationalization of how global WaveView properties and per-WaveView properties interact
2013-04-16 18:02:12 -04:00
a74743f551
somewhat restore ability to see rectified waveforms
2013-04-16 16:14:57 -04:00
33e09447e9
restore log-scaled waveform functionality
2013-04-16 15:38:18 -04:00
ccc9b6adee
change rendering technique for waveforms, add back optional gradient, add back amplitude scaling, add rgb/hsv conversion utilities to canvas
2013-04-16 14:04:59 -04:00
a0044e5f71
add back various functionality to waveviews such as zero line, amplitude scaling
2013-04-16 10:07:52 -04:00
84fb0a8dce
remove all XML related API from canvas. it may have been useful during development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
2013-04-15 21:57:08 -04:00
e5a3747686
switch from frames_per_pixel to samples_per_pixel in the one canvas object that uses this
2013-04-12 11:31:17 -04:00
ae2b39b2e3
remove intermediate GdkPixbuf from waveview rendering, and use shared_array<> to manage peak data
2013-04-10 15:27:55 -04:00
aaea166135
initial commit of hand merging, plus getting "ancient" waf script to work correctly
2013-04-04 00:32:52 -04:00