21 #ifndef _WAVEVIEW_WAVE_VIEW_H_
22 #define _WAVEVIEW_WAVE_VIEW_H_
26 #include <glibmm/refptr.h>
42 class WaveViewCacheGroup;
43 class WaveViewDrawRequest;
44 class WaveViewDrawRequestQueue;
46 class WaveViewProperties;
47 class WaveViewDrawingThread;
75 WaveView (Item*, std::shared_ptr<ARDOUR::AudioRegion>);
148 friend class WaveViewThreadClient;
153 const std::unique_ptr<WaveViewProperties>
_props;
155 mutable std::shared_ptr<WaveViewImage>
_image;
217 LineTips () : top (0.0), bot (0.0), clip_max (false), clip_min (false) {}
225 std::shared_ptr<WaveViewDrawRequest>);
230 void set_image (std::shared_ptr<WaveViewImage> img)
const;
WaveView(Item *, std::shared_ptr< ARDOUR::AudioRegion >)
static Shape global_shape()
static void set_image_cache_size(uint64_t)
static bool global_logscaled()
void set_amplitude_above_axis(double v)
void set_zero_color(Gtkmm2ext::Color)
ARDOUR::samplecnt_t optimal_image_width_samples() const
static void set_global_gradient_depth(double)
static bool _global_show_waveform_clipping
static Shape _global_shape
PBD::ScopedConnectionList invalidation_connection
bool draw_image_in_gui_thread() const
void compute_bounding_box() const
static PBD::Signal< void()> ClipLevelChanged
static double global_gradient_depth()
static double _global_clip_level
static void set_global_logscaled(bool)
void set_outline_color(Gtkmm2ext::Color)
void queue_draw_request(std::shared_ptr< WaveViewDrawRequest > const &) const
static void clear_cache()
std::string debug_name() const
void set_region_start(ARDOUR::sampleoffset_t)
void set_samples_per_pixel(double)
ARDOUR::samplepos_t region_end() const
std::shared_ptr< WaveViewImage > _image
static void set_clip_level(double dB)
void set_image(std::shared_ptr< WaveViewImage > img) const
static PBD::Signal< void()> VisualPropertiesChanged
static ArdourCanvas::Coord y_extent(double, Shape const, double const height)
static bool _global_logscaled
void handle_visual_property_change()
void handle_clip_level_change()
bool get_item_and_draw_rect_in_window_coords(ArdourCanvas::Rect const &canvas_rect, ArdourCanvas::Rect &item_area, ArdourCanvas::Rect &draw_rect) const
static void set_global_shape(Shape)
double amplitude_above_axis() const
void set_fill_color(Gtkmm2ext::Color)
static void stop_drawing_thread()
double gradient_depth() const
ARDOUR::samplecnt_t region_length() const
static void draw_absent_image(Cairo::RefPtr< Cairo::ImageSurface > &, ARDOUR::PeakData *, int)
std::shared_ptr< WaveViewCacheGroup > get_cache_group() const
static void draw_image(Cairo::RefPtr< Cairo::ImageSurface > &, ARDOUR::PeakData *, int n_peaks, std::shared_ptr< WaveViewDrawRequest >)
const std::unique_ptr< WaveViewProperties > _props
bool _logscaled_independent
void set_height(ArdourCanvas::Distance)
std::shared_ptr< WaveViewDrawRequest > create_draw_request(WaveViewProperties const &) const
virtual void prepare_for_render(ArdourCanvas::Rect const &window_area) const
static void set_global_show_waveform_clipping(bool)
bool _gradient_depth_independent
static void compute_tips(ARDOUR::PeakData const &peak, LineTips &tips, double const effective_height)
static double _global_gradient_depth
void set_start_shift(double pixels)
bool show_zero_line() const
void set_always_get_image_in_thread(bool yn)
void set_clip_color(Gtkmm2ext::Color)
void set_gradient_depth(double)
static void start_drawing_thread()
std::shared_ptr< ARDOUR::AudioRegion > _region
bool _draw_image_in_gui_thread
bool _always_draw_image_in_gui_thread
void set_show_zero_line(bool)
virtual void render(ArdourCanvas::Rect const &area, Cairo::RefPtr< Cairo::Context >) const
std::shared_ptr< WaveViewDrawRequest > current_request
static void process_draw_request(std::shared_ptr< WaveViewDrawRequest >)
std::shared_ptr< WaveViewCacheGroup > _cache_group
WaveView(ArdourCanvas::Canvas *, std::shared_ptr< ARDOUR::AudioRegion >)
Temporal::samplecnt_t samplecnt_t
Temporal::sampleoffset_t sampleoffset_t
Temporal::samplepos_t samplepos_t