X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_view.h;h=18d6ce53a997929467b5c8b0236131ea641d9e19;hb=46bbe834009d51a652e03a7fd4fa57bfb6457e38;hp=7cc4c6b964cc28467d4d2666f809d2510451d133;hpb=b976bf8986290e8f4812a50e7fdd98b9cbeb4249;p=ardour.git diff --git a/gtk2_ardour/region_view.h b/gtk2_ardour/region_view.h index 7cc4c6b964..18d6ce53a9 100644 --- a/gtk2_ardour/region_view.h +++ b/gtk2_ardour/region_view.h @@ -1,20 +1,25 @@ /* - Copyright (C) 2001-2006 Paul Davis - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ + * Copyright (C) 2006-2014 David Robillard + * Copyright (C) 2007-2011 Carl Hetherington + * Copyright (C) 2007-2019 Paul Davis + * Copyright (C) 2007 Doug McLain + * Copyright (C) 2015-2017 Nick Mainsbridge + * Copyright (C) 2016-2019 Robin Gareus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ #ifndef __gtk_ardour_region_view_h__ #define __gtk_ardour_region_view_h__ @@ -27,7 +32,7 @@ #include #include "ardour/region.h" -#include "ardour/beats_frames_converter.h" +#include "ardour/beats_samples_converter.h" #include "canvas/fwd.h" @@ -49,18 +54,23 @@ namespace ArdourCanvas { class RegionView : public TimeAxisViewItem { public: - RegionView (ArdourCanvas::Container* parent, - TimeAxisView& time_view, + RegionView (ArdourCanvas::Container* parent, + TimeAxisView& time_view, boost::shared_ptr region, - double samples_per_pixel, - uint32_t base_color, - bool automation = false); + double samples_per_pixel, + uint32_t base_color, + bool automation = false); RegionView (const RegionView& other); RegionView (const RegionView& other, boost::shared_ptr other_region); ~RegionView (); + virtual void set_selected (bool yn) { + _region->set_selected_for_solo(yn); + TimeAxisViewItem::set_selected(yn); + } + virtual void init (bool wait_for_data); boost::shared_ptr region() const { return _region; } @@ -71,14 +81,14 @@ public: virtual void set_height (double); virtual void set_samples_per_pixel (double); - virtual bool set_duration (framecnt_t, void*); + virtual bool set_duration (samplecnt_t, void*); void move (double xdelta, double ydelta); void raise_to_top (); void lower_to_bottom (); - bool set_position(framepos_t pos, void* src, double* delta = 0); + bool set_position(samplepos_t pos, void* src, double* delta = 0); virtual void show_region_editor (); void hide_region_editor (); @@ -95,20 +105,20 @@ public: virtual void exited () {} virtual void enable_display(bool yn) { _enable_display = yn; } - virtual void update_coverage_frames (LayerDisplay); + virtual void update_coverage_frame (LayerDisplay); static PBD::Signal1 RegionViewGoingAway; /** Called when a front trim is about to begin */ virtual void trim_front_starting () {} - bool trim_front (framepos_t, bool, const int32_t sub_num); + bool trim_front (samplepos_t, bool, const int32_t sub_num); /** Called when a start trim has finished */ virtual void trim_front_ending () {} - bool trim_end (framepos_t, bool, const int32_t sub_num); - void move_contents (ARDOUR::frameoffset_t); + bool trim_end (samplepos_t, bool, const int32_t sub_num); + void move_contents (ARDOUR::sampleoffset_t); virtual void thaw_after_trim (); void set_silent_frames (const ARDOUR::AudioIntervalResult&, double threshold); @@ -121,7 +131,9 @@ public: } }; - ARDOUR::MusicFrame snap_frame_to_frame (ARDOUR::frameoffset_t, bool ensure_snap = false) const; + ARDOUR::MusicSample snap_sample_to_sample (ARDOUR::sampleoffset_t, bool ensure_snap = false) const; + + void update_visibility (); protected: @@ -179,14 +191,14 @@ protected: * different bits of regions according to whether or not they are the one * that will be played at any given time. */ - std::list _coverage_frames; + std::list _coverage_frame; /** a list of rectangles used to show silent segments */ std::list _silent_frames; /** a list of rectangles used to show the current silence threshold */ - std::list _silent_threshold_frames; + std::list _silent_threshold_samples; /** a text item to display strip silence statistics */ ArdourCanvas::Text* _silence_text; };