mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
Add some comments to the RegionSelection class.
git-svn-id: svn://localhost/ardour2/trunk@2524 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
61872c5663
commit
c8a4f8002b
2 changed files with 73 additions and 5 deletions
|
|
@ -28,6 +28,9 @@ using namespace ARDOUR;
|
|||
using namespace PBD;
|
||||
using namespace sigc;
|
||||
|
||||
/**
|
||||
* Construct an empty RegionSelection.
|
||||
*/
|
||||
|
||||
RegionSelection::RegionSelection ()
|
||||
{
|
||||
|
|
@ -37,6 +40,11 @@ RegionSelection::RegionSelection ()
|
|||
_current_end = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy constructor.
|
||||
* @param other RegionSelection to copy.
|
||||
*/
|
||||
|
||||
RegionSelection::RegionSelection (const RegionSelection& other)
|
||||
{
|
||||
RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it));
|
||||
|
|
@ -48,6 +56,11 @@ RegionSelection::RegionSelection (const RegionSelection& other)
|
|||
_current_end = other._current_end;
|
||||
}
|
||||
|
||||
/**
|
||||
* operator= to set a RegionSelection to be the same as another.
|
||||
* @param other Other RegionSelection.
|
||||
*/
|
||||
|
||||
RegionSelection&
|
||||
RegionSelection::operator= (const RegionSelection& other)
|
||||
{
|
||||
|
|
@ -66,6 +79,10 @@ RegionSelection::operator= (const RegionSelection& other)
|
|||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Empty this RegionSelection.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::clear_all()
|
||||
{
|
||||
|
|
@ -75,11 +92,22 @@ RegionSelection::clear_all()
|
|||
_current_end = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param rv RegionView.
|
||||
* @return true if this selection contains rv.
|
||||
*/
|
||||
|
||||
bool RegionSelection::contains (RegionView* rv) const
|
||||
{
|
||||
return find (begin(), end(), rv) != end();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a region to the selection.
|
||||
* @param rv Region to add.
|
||||
* @return false if we already had the region, otherwise true.
|
||||
*/
|
||||
|
||||
bool
|
||||
RegionSelection::add (RegionView* rv)
|
||||
{
|
||||
|
|
@ -98,19 +126,30 @@ RegionSelection::add (RegionView* rv)
|
|||
|
||||
push_back (rv);
|
||||
|
||||
// add to layer sorted list
|
||||
/* add to layer sorted list */
|
||||
|
||||
add_to_layer (rv);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a region from the selection.
|
||||
* @param rv Region to remove.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::remove_it (RegionView *rv)
|
||||
{
|
||||
remove (rv);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a region from the selection.
|
||||
* @param rv Region to remove.
|
||||
* @return true if the region was in the selection, false if not.
|
||||
*/
|
||||
|
||||
bool
|
||||
RegionSelection::remove (RegionView* rv)
|
||||
{
|
||||
|
|
@ -174,6 +213,11 @@ RegionSelection::remove (RegionView* rv)
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a region to the list sorted by layer.
|
||||
* @param rv Region to add.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::add_to_layer (RegionView * rv)
|
||||
{
|
||||
|
|
@ -200,6 +244,11 @@ struct RegionSortByTime {
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param foo List which will be filled with the selection's regions
|
||||
* sorted by position.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::by_position (list<RegionView*>& foo) const
|
||||
{
|
||||
|
|
@ -226,7 +275,13 @@ struct RegionSortByTrack {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param List which will be filled with the selection's regions
|
||||
* sorted by track and position.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::by_track (list<RegionView*>& foo) const
|
||||
{
|
||||
|
|
@ -241,6 +296,10 @@ RegionSelection::by_track (list<RegionView*>& foo) const
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Sort the selection by position and track.
|
||||
*/
|
||||
|
||||
void
|
||||
RegionSelection::sort_by_position_and_track ()
|
||||
{
|
||||
|
|
@ -248,6 +307,11 @@ RegionSelection::sort_by_position_and_track ()
|
|||
sort (sorter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tv Track.
|
||||
* @return true if any of the selection's regions are on tv.
|
||||
*/
|
||||
|
||||
bool
|
||||
RegionSelection::involves (const TimeAxisView& tv) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,6 +29,10 @@ using std::set;
|
|||
|
||||
class RegionView;
|
||||
|
||||
/**
|
||||
* Class to represent list of selected regions.
|
||||
*/
|
||||
|
||||
class RegionSelection : public std::list<RegionView*>, public sigc::trackable
|
||||
{
|
||||
public:
|
||||
|
|
@ -65,10 +69,10 @@ class RegionSelection : public std::list<RegionView*>, public sigc::trackable
|
|||
|
||||
void add_to_layer (RegionView *);
|
||||
|
||||
nframes_t _current_start;
|
||||
nframes_t _current_end;
|
||||
nframes_t _current_start; ///< start position for the selection
|
||||
nframes_t _current_end; ///< end position for the selection
|
||||
|
||||
list<RegionView *> _bylayer;
|
||||
list<RegionView *> _bylayer; ///< list of regions sorted by layer
|
||||
};
|
||||
|
||||
#endif /* __ardour_gtk_region_selection_h__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue