X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Faudio_region_view.h;h=8841ee2e430e7ada4f3aa5f4a068d0f244582eec;hb=9bc8b32b8eaf8304d0c51c3340e15345b7300988;hp=550632dc6770a37244611306c76e42825b4e8dca;hpb=4843c5d5cf52580a275dd6de0d47b927eb59bdc5;p=ardour.git diff --git a/gtk2_ardour/audio_region_view.h b/gtk2_ardour/audio_region_view.h index 550632dc67..8841ee2e43 100644 --- a/gtk2_ardour/audio_region_view.h +++ b/gtk2_ardour/audio_region_view.h @@ -29,9 +29,10 @@ #include "ardour/audioregion.h" #include "canvas/fwd.h" -#include "canvas/wave_view.h" #include "canvas/xfade_curve.h" +#include "waveview/wave_view.h" + #include "region_view.h" #include "time_axis_view_item.h" #include "automation_line.h" @@ -50,30 +51,31 @@ class RouteTimeAxisView; class AudioRegionView : public RegionView { - public: - AudioRegionView (ArdourCanvas::Group *, - RouteTimeAxisView&, - boost::shared_ptr, - double initial_samples_per_pixel, - Gdk::Color const & basic_color); - - AudioRegionView (ArdourCanvas::Group *, - RouteTimeAxisView&, - boost::shared_ptr, - double samples_per_pixel, - Gdk::Color const & basic_color, - bool recording, - TimeAxisViewItem::Visibility); +public: + AudioRegionView (ArdourCanvas::Container *, + RouteTimeAxisView&, + boost::shared_ptr, + double initial_samples_per_pixel, + uint32_t base_color); + + AudioRegionView (ArdourCanvas::Container *, + RouteTimeAxisView&, + boost::shared_ptr, + double samples_per_pixel, + uint32_t base_color, + bool recording, + TimeAxisViewItem::Visibility); AudioRegionView (const AudioRegionView& other, boost::shared_ptr); ~AudioRegionView (); - virtual void init (Gdk::Color const & base_color, bool wait_for_data); + void init (bool wait_for_data); boost::shared_ptr audio_region() const; void create_waves (); + void delete_waves (); void set_height (double); void set_samples_per_pixel (double); @@ -85,7 +87,7 @@ class AudioRegionView : public RegionView void update_envelope_visibility (); - void add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *event, bool with_guard_points); + void add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *event, bool with_guard_points); void remove_gain_point_event (ArdourCanvas::Item *item, GdkEvent *event); boost::shared_ptr get_gain_line() const { return gain_line; } @@ -109,7 +111,7 @@ class AudioRegionView : public RegionView void show_region_editor (); - virtual void entered (bool); + virtual void entered (); virtual void exited (); void thaw_after_trim (); @@ -117,11 +119,11 @@ class AudioRegionView : public RegionView void drag_start (); void drag_end (); - void redraw_start_xfade_to (boost::shared_ptr, framecnt_t, ArdourCanvas::Points&, double, double); - void redraw_end_xfade_to (boost::shared_ptr, framecnt_t, ArdourCanvas::Points&, double, double, double); + void redraw_start_xfade_to (boost::shared_ptr, framecnt_t, ArdourCanvas::Points&, double, double); + void redraw_end_xfade_to (boost::shared_ptr, framecnt_t, ArdourCanvas::Points&, double, double, double); void redraw_start_xfade (); void redraw_end_xfade (); - + void hide_xfades (); void hide_start_xfade (); void hide_end_xfade (); @@ -137,12 +139,12 @@ class AudioRegionView : public RegionView return _end_xfade_visible; } - protected: +protected: /* this constructor allows derived types - to specify their visibility requirements - to the TimeAxisViewItem parent class - */ + * to specify their visibility requirements + * to the TimeAxisViewItem parent class + */ enum Flags { WaveformVisible = 0x4, @@ -150,8 +152,8 @@ class AudioRegionView : public RegionView WaveformLogScaled = 0x10, }; - std::vector waves; - std::vector tmp_waves; ///< see ::create_waves() + std::vector waves; + std::vector tmp_waves; ///< see ::create_waves() std::list > feature_lines; @@ -160,6 +162,9 @@ class AudioRegionView : public RegionView ArdourCanvas::Rectangle* fade_out_handle; ///< fade out handle, or 0 ArdourCanvas::Rectangle* fade_in_trim_handle; ///< fade in trim handle, or 0 ArdourCanvas::Rectangle* fade_out_trim_handle; ///< fade out trim handle, or 0 + ArdourCanvas::Rectangle* pending_peak_data; + + static Cairo::RefPtr pending_peak_pattern; ArdourCanvas::XFadeCurve* start_xfade_curve; ArdourCanvas::Rectangle* start_xfade_rect; @@ -173,8 +178,6 @@ class AudioRegionView : public RegionView double _amplitude_above_axis; - uint32_t fade_color; - void reset_fade_shapes (); void reset_fade_in_shape (); void reset_fade_out_shape (); @@ -192,9 +195,7 @@ class AudioRegionView : public RegionView void peaks_ready_handler (uint32_t); void set_colors (); - void set_waveform_colors (); - void set_one_waveform_color (ArdourCanvas::WaveView*); - void compute_colors (Gdk::Color const &); + void set_waveform_colors (); void reset_width_dependent_items (double pixel_width); void set_frame_color (); @@ -209,6 +210,7 @@ private: void parameter_changed (std::string const &); void setup_waveform_visibility (); + void set_some_waveform_colors (std::vector& waves_to_color); /** A ScopedConnection for each PeaksReady callback (one per channel). Each member * may be 0 if no connection exists.