19 #ifndef _WAVEVIEW_WAVE_VIEW_PRIVATE_H_
20 #define _WAVEVIEW_WAVE_VIEW_PRIVATE_H_
76 assert (width_samples != 0);
80 assert (new_sample_start <= new_sample_end);
93 assert (
start <= end);
127 assert (start_pixel <= end_pixel);
169 WaveViewImage (std::shared_ptr<const ARDOUR::AudioRegion>
const& region_ptr,
175 std::weak_ptr<const ARDOUR::AudioRegion>
region;
210 std::shared_ptr<WaveViewImage>
image;
251 typedef std::list<std::shared_ptr<WaveViewImage> >
ImageCache;
265 std::shared_ptr<WaveViewCacheGroup>
get_cache_group (std::shared_ptr<ARDOUR::AudioSource>);
274 typedef std::map<std::shared_ptr<ARDOUR::AudioSource>, std::shared_ptr<WaveViewCacheGroup> >
WaveViewCacheGroup(WaveViewCache &parent_cache)
static uint32_t max_size()
WaveViewCache & _parent_cache
ImageCache _cached_images
std::shared_ptr< WaveViewImage > lookup_image(WaveViewProperties const &)
void add_image(std::shared_ptr< WaveViewImage >)
std::list< std::shared_ptr< WaveViewImage > > ImageCache
std::map< std::shared_ptr< ARDOUR::AudioSource >, std::shared_ptr< WaveViewCacheGroup > > CacheGroups
void set_image_cache_threshold(uint64_t)
void decrease_size(uint64_t bytes)
static WaveViewCache * get_instance()
void reset_cache_group(std::shared_ptr< WaveViewCacheGroup > &)
std::shared_ptr< WaveViewCacheGroup > get_cache_group(std::shared_ptr< ARDOUR::AudioSource >)
uint64_t image_cache_threshold() const
uint64_t _image_cache_threshold
CacheGroups cache_group_map
uint64_t image_cache_size
void increase_size(uint64_t bytes)
static WaveViewThreads * instance
Glib::Threads::Cond _cond
static uint32_t init_count
DrawRequestQueueType _queue
std::deque< std::shared_ptr< WaveViewDrawRequest > > DrawRequestQueueType
std::vector< std::shared_ptr< WaveViewDrawingThread > > WaveViewThreadList
void _enqueue_draw_request(std::shared_ptr< WaveViewDrawRequest > &)
static std::shared_ptr< WaveViewDrawRequest > dequeue_draw_request()
std::shared_ptr< WaveViewDrawRequest > _dequeue_draw_request()
static void deinitialize()
static void enqueue_draw_request(std::shared_ptr< WaveViewDrawRequest > &)
static void thread_proc()
Glib::Threads::Mutex _queue_mutex
WaveViewThreadList _threads
PBD::PropertyDescriptor< bool > region
PBD::PropertyDescriptor< timepos_t > start
Temporal::samplecnt_t samplecnt_t
Temporal::samplepos_t samplepos_t
std::shared_ptr< WaveViewImage > image
Cairo::RefPtr< Cairo::ImageSurface > cairo_image
WaveViewImage(std::shared_ptr< const ARDOUR::AudioRegion > const ®ion_ptr, WaveViewProperties const &properties)
bool contains_image_with_properties(WaveViewProperties const &other_props)
std::weak_ptr< const ARDOUR::AudioRegion > region
Gtkmm2ext::Color zero_color
Gtkmm2ext::Color outline_color
samplepos_t get_sample_end() const
samplepos_t get_sample_start() const
void set_width_samples(ARDOUR::samplecnt_t const width_samples)
WaveViewProperties(std::shared_ptr< ARDOUR::AudioRegion > region)
Gtkmm2ext::Color clip_color
bool is_equivalent(WaveViewProperties const &other)
Gtkmm2ext::Color fill_color
bool contains(samplepos_t start, samplepos_t end)
void set_sample_offsets(samplepos_t const start, samplepos_t const end)
double amplitude_above_axis
uint64_t get_width_pixels() const
void set_sample_positions_from_pixel_offsets(double start_pixel, double end_pixel)
ARDOUR::samplecnt_t get_length_samples() const
samplepos_t get_center_sample() const