X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Faudio_region_view.h;h=826f58decec037be87a843f34b4faa68afb20af1;hb=162c48b84381335ff90fe64b5324467693dee736;hp=761c0eafd82c68f08ec03302f9baf04c98e25e8a;hpb=62c4e8188457c8e0da9eb98202a5bc2a07c9250b;p=ardour.git diff --git a/gtk2_ardour/audio_region_view.h b/gtk2_ardour/audio_region_view.h index 761c0eafd8..826f58dece 100644 --- a/gtk2_ardour/audio_region_view.h +++ b/gtk2_ardour/audio_region_view.h @@ -24,16 +24,14 @@ #include #include #include -#include +#include "ardour/audioregion.h" #include "region_view.h" -#include "route_time_axis.h" #include "time_axis_view_item.h" #include "automation_line.h" #include "enums.h" #include "waveview.h" #include "canvas.h" -#include "color.h" namespace ARDOUR { class AudioRegion; @@ -45,6 +43,7 @@ class AudioRegionGainLine; class AudioRegionEditor; class GhostRegion; class AutomationTimeAxisView; +class RouteTimeAxisView; class AudioRegionView : public RegionView { @@ -53,16 +52,27 @@ class AudioRegionView : public RegionView RouteTimeAxisView&, boost::shared_ptr, double initial_samples_per_unit, - Gdk::Color& basic_color); + Gdk::Color const & basic_color); - AudioRegionView (const AudioRegionView& other); + AudioRegionView (ArdourCanvas::Group *, + RouteTimeAxisView&, + boost::shared_ptr, + double samples_per_unit, + Gdk::Color const & basic_color, + bool recording, + TimeAxisViewItem::Visibility); + + AudioRegionView (const AudioRegionView& other); + AudioRegionView (const AudioRegionView& other, boost::shared_ptr); ~AudioRegionView (); - virtual void init (Gdk::Color& base_color, bool wait_for_data = false); + virtual void init (Gdk::Color const & base_color, bool wait_for_data); boost::shared_ptr audio_region() const; + void create_waves (); + void set_height (double); void set_samples_per_unit (double); @@ -73,8 +83,8 @@ class AudioRegionView : public RegionView void set_envelope_visible (bool); void set_waveform_visible (bool yn); - void set_waveform_shape (WaveformShape); - void set_waveform_scale (WaveformScale); + void set_waveform_shape (ARDOUR::WaveformShape); + void set_waveform_scale (ARDOUR::WaveformScale); bool waveform_rectified() const { return _flags & WaveformRectified; } bool waveform_logscaled() const { return _flags & WaveformLogScaled; } @@ -91,11 +101,13 @@ class AudioRegionView : public RegionView void region_changed (ARDOUR::Change); void envelope_active_changed (); - GhostRegion* add_ghost (AutomationTimeAxisView&); + GhostRegion* add_ghost (TimeAxisView&); void reset_fade_in_shape_width (nframes_t); void reset_fade_out_shape_width (nframes_t); + void set_fade_visibility (bool); + virtual void entered (); virtual void exited (); @@ -106,19 +118,28 @@ class AudioRegionView : public RegionView to the TimeAxisViewItem parent class */ - AudioRegionView (ArdourCanvas::Group *, - RouteTimeAxisView&, - boost::shared_ptr, - double samples_per_unit, - Gdk::Color& basic_color, - TimeAxisViewItem::Visibility); - enum Flags { EnvelopeVisible = 0x1, WaveformVisible = 0x4, WaveformRectified = 0x8, WaveformLogScaled = 0x10, }; + + std::vector waves; + std::vector tmp_waves; ///< see ::create_waves() + ArdourCanvas::Polygon* sync_mark; ///< polgyon for sync position + ArdourCanvas::SimpleLine* zero_line; + ArdourCanvas::Polygon* fade_in_shape; + ArdourCanvas::Polygon* fade_out_shape; + ArdourCanvas::SimpleRect* fade_in_handle; + ArdourCanvas::SimpleRect* fade_out_handle; + + AudioRegionGainLine * gain_line; + + double _amplitude_above_axis; + + uint32_t _flags; + uint32_t fade_color; void reset_fade_shapes (); void reset_fade_in_shape (); @@ -129,11 +150,10 @@ class AudioRegionView : public RegionView void fade_out_active_changed (); void region_resized (ARDOUR::Change); - void region_moved (void *); void region_muted (); void region_scale_amplitude_changed (); + void region_renamed (); - void create_waves (); void create_one_wave (uint32_t, bool); void manage_zero_line (); void peaks_ready_handler (uint32_t); @@ -141,27 +161,18 @@ class AudioRegionView : public RegionView void store_flags (); void set_colors (); - void compute_colors (Gdk::Color&); + void compute_colors (Gdk::Color const &); void reset_width_dependent_items (double pixel_width); void set_waveview_data_src(); - - void color_handler (ColorID, uint32_t); - - vector wave_caches; - vector waves; - vector tmp_waves; ///< see ::create_waves() - ArdourCanvas::Polygon* sync_mark; ///< polgyon for sync position - ArdourCanvas::SimpleLine* zero_line; - ArdourCanvas::Polygon* fade_in_shape; - ArdourCanvas::Polygon* fade_out_shape; - ArdourCanvas::SimpleRect* fade_in_handle; - ArdourCanvas::SimpleRect* fade_out_handle; - AudioRegionGainLine* gain_line; + void set_frame_color (); - double _amplitude_above_axis; + void color_handler (); - uint32_t _flags; - uint32_t fade_color; + std::vector wave_caches; + + private: + + void setup_fade_handle_positions (); }; #endif /* __gtk_ardour_audio_region_view_h__ */