Ardour
9.0-pre0-582-g084a23a80d
|
#include <sequence_property.h>
Classes | |
struct | ChangeRecord |
Public Types | |
typedef std::set< typename Container::value_type > | ChangeContainer |
Public Member Functions | |
SequenceProperty (PropertyID id, const std::function< void(const ChangeRecord &)> &update) | |
void | invert () |
void | get_changes_as_xml (XMLNode *history_node) const |
virtual void | get_content_as_xml (typename ChangeContainer::value_type, XMLNode &) const =0 |
bool | set_value (XMLNode const &) |
void | get_value (XMLNode &node) const |
bool | changed () const |
void | clear_changes () |
void | apply_change (PropertyBase const *p) |
void | update (const ChangeRecord &cr) |
void | get_changes_as_properties (PBD::PropertyList &changes, Command *cmd) const |
SequenceProperty< Container > * | clone_from_xml (XMLNode const &node) const |
virtual Container::value_type | get_content_from_xml (XMLNode const &node) const =0 |
void | clear_owned_changes () |
void | rdiff (std::vector< PBD::Command * > &cmds) const |
Container | rlist () const |
Container::iterator | begin () |
Container::iterator | end () |
Container::const_iterator | begin () const |
Container::const_iterator | end () const |
Container::reverse_iterator | rbegin () |
Container::reverse_iterator | rend () |
Container::const_reverse_iterator | rbegin () const |
Container::const_reverse_iterator | rend () const |
Container::iterator | insert (typename Container::iterator i, const typename Container::value_type &v) |
Container::iterator | erase (typename Container::iterator i) |
Container::iterator | erase (typename Container::iterator f, typename Container::iterator l) |
void | remove (const typename Container::value_type &v) |
void | push_back (const typename Container::value_type &v) |
void | push_front (const typename Container::value_type &v) |
void | pop_front () |
void | pop_back () |
void | clear () |
Container::size_type | size () const |
bool | empty () const |
Container & | operator= (const Container &other) |
Container::reference | front () |
Container::const_reference | front () const |
Container::reference | back () |
Container::const_reference | back () const |
void | sort () |
template<class BinaryPredicate > | |
void | sort (BinaryPredicate comp) |
const ChangeRecord & | changes () const |
Public Member Functions inherited from PBD::PropertyBase | |
PropertyBase (PropertyID pid) | |
virtual | ~PropertyBase () |
virtual PropertyBase * | clone () const =0 |
const gchar * | property_name () const |
PropertyID | property_id () const |
bool | operator== (PropertyID pid) const |
Protected Member Functions | |
SequenceProperty (SequenceProperty< Container > const &p) | |
Protected Member Functions inherited from PBD::PropertyBase | |
PropertyBase (PropertyBase const &b) | |
Protected Attributes | |
Container | _val |
our actual container of things More... | |
ChangeRecord | _changes |
changes to the container (adds/removes) that have happened since clear_changes() was last called More... | |
std::function< void(const ChangeRecord &)> | _update_callback |
Private Member Functions | |
virtual SequenceProperty< Container > * | create () const =0 |
A base class for properties whose state is a container of other things. Its behaviour is ‘specialised’ for this purpose in that it holds state changes as additions to and removals from the container, which is more efficient than storing entire state after any change.
Definition at line 47 of file sequence_property.h.
typedef std::set<typename Container::value_type> PBD::SequenceProperty< Container >::ChangeContainer |
Definition at line 50 of file sequence_property.h.
|
inline |
Definition at line 83 of file sequence_property.h.
|
inlineprotected |
Definition at line 352 of file sequence_property.h.
|
inlinevirtual |
Set this property's current state from another
Implements PBD::PropertyBase.
Definition at line 141 of file sequence_property.h.
|
inline |
Definition at line 331 of file sequence_property.h.
|
inline |
Definition at line 335 of file sequence_property.h.
|
inline |
Definition at line 240 of file sequence_property.h.
|
inline |
Definition at line 242 of file sequence_property.h.
|
inlinevirtual |
Implements PBD::PropertyBase.
Definition at line 132 of file sequence_property.h.
|
inline |
Definition at line 347 of file sequence_property.h.
|
inline |
Definition at line 298 of file sequence_property.h.
|
inlinevirtual |
Forget about any old changes to this property's value
Implements PBD::PropertyBase.
Definition at line 136 of file sequence_property.h.
|
inlinevirtual |
Tell any things we own to forget about their old values
Reimplemented from PBD::PropertyBase.
Definition at line 220 of file sequence_property.h.
|
inlinevirtual |
Look in an XML node written by get_changes_as_xml and, if XML from this property is found, create a property with the changes from the XML.
Reimplemented from PBD::PropertyBase.
Definition at line 180 of file sequence_property.h.
|
privatepure virtual |
Implemented in ARDOUR::RegionListProperty.
|
inline |
Definition at line 309 of file sequence_property.h.
|
inline |
Definition at line 241 of file sequence_property.h.
|
inline |
Definition at line 243 of file sequence_property.h.
|
inline |
Definition at line 262 of file sequence_property.h.
|
inline |
Definition at line 255 of file sequence_property.h.
|
inline |
Definition at line 323 of file sequence_property.h.
|
inline |
Definition at line 327 of file sequence_property.h.
|
inlinevirtual |
If this Property has changed, clone it and add it to a given list. Used for making StatefulDiffCommands.
Implements PBD::PropertyBase.
Definition at line 157 of file sequence_property.h.
|
inlinevirtual |
Get any changes in this property as XML and add them to a StatefulDiffCommand node.
Implements PBD::PropertyBase.
Definition at line 90 of file sequence_property.h.
|
pure virtual |
Get a representation of one of our items as XML. The representation must be sufficient to restore the item's state later; an ID is ok if someone else is storing the item state, otherwise it needs to be the full state. The supplied node is an <Add> or <Remove> which this method can either add properties or children to.
|
pure virtual |
Given an <Add> or <Remove> node as passed into get_content_to_xml, obtain an item
Implemented in ARDOUR::RegionListProperty.
|
inlinevirtual |
Get this property's value and put it into a Stateful node
Implements PBD::PropertyBase.
Definition at line 126 of file sequence_property.h.
|
inline |
Definition at line 250 of file sequence_property.h.
|
inlinevirtual |
Invert the changes in this property
Implements PBD::PropertyBase.
Definition at line 86 of file sequence_property.h.
|
inline |
Definition at line 313 of file sequence_property.h.
|
inline |
Definition at line 291 of file sequence_property.h.
|
inline |
Definition at line 284 of file sequence_property.h.
|
inline |
Definition at line 274 of file sequence_property.h.
|
inline |
Definition at line 279 of file sequence_property.h.
|
inline |
Definition at line 245 of file sequence_property.h.
|
inline |
Definition at line 247 of file sequence_property.h.
|
inlinevirtual |
Collect StatefulDiffCommands for changes to anything that we own
Reimplemented from PBD::PropertyBase.
Definition at line 226 of file sequence_property.h.
|
inline |
Definition at line 269 of file sequence_property.h.
|
inline |
Definition at line 246 of file sequence_property.h.
|
inline |
Definition at line 248 of file sequence_property.h.
|
inline |
Definition at line 235 of file sequence_property.h.
|
inlinevirtual |
Set the value of this property from a Stateful node.
Implements PBD::PropertyBase.
Definition at line 120 of file sequence_property.h.
|
inline |
Definition at line 305 of file sequence_property.h.
|
inline |
Definition at line 339 of file sequence_property.h.
|
inline |
Definition at line 343 of file sequence_property.h.
|
inline |
Given a record of changes to this property, pass it to a callback that will update the property in some appropriate way.
This exists because simply using std::sequence methods to add/remove items from the property is far too simplistic - the semantics of add/remove may be much more complex than that.
Definition at line 153 of file sequence_property.h.
|
protected |
changes to the container (adds/removes) that have happened since clear_changes() was last called
Definition at line 360 of file sequence_property.h.
|
protected |
Definition at line 361 of file sequence_property.h.
|
protected |
our actual container of things
Definition at line 359 of file sequence_property.h.