35 uint32_t
id()
const {
return _id; }
90 ptr->set_self_ptr (ptr);
97 ptr->set_self_ptr (ptr);
121 typedef list<boost::shared_ptr<DataNode<T> > >
ListType;
127 if (one == other) {
return false; }
128 for (
typename ListType::const_iterator it =
list.begin(); it !=
list.end(); ++it) {
129 if (it->get() == one) {
132 if (it->get() == other) {
137 std::cerr <<
"Invalid comparison list given to NodeSorter" << std::endl;
186 list<GraphNode *>::const_iterator
end_of_common_child_range (list<GraphNode *>
const & the_list, list<GraphNode *>::const_iterator beginning);
void sort_parents(list< boost::shared_ptr< DataNode< P > > > const &sort_list)
boost::shared_ptr< FormatNode > FormatNodePtr
list< GraphNode * > children
PBD::Signal1< void, bool > SelectChanged
A graph node that contains data.
static SelfPtr create(DataPtr data)
boost::shared_ptr< TimespanNode > TimespanNodePtr
boost::shared_ptr< DataNode< T > > SelfPtr
boost::shared_ptr< FilenameNode > FilenameNodePtr
static uint32_t id_counter
void remove_filename(FilenameNodePtr node)
GraphNode * first_child() const
void split_timespan(TimespanNodePtr node, float position=0.5)
void remove_parent(GraphNode *parent)
void add_parent(GraphNode *parent)
list< FormatNodePtr > formats
void set_self_ptr(boost::shared_ptr< DataNode< T > > ptr)
boost::shared_ptr< ChannelConfigNode > ChannelConfigNodePtr
static void remove_by_element(list< T > &the_list, T const &element)
boost::shared_ptr< T > DataPtr
bool operator()(GraphNode *one, GraphNode *other)
bool nodes_have_one_common_child(list< GraphNode * > const &the_list)
list< ChannelConfigNodePtr > channel_configs
FormatNodePtr duplicate_format_node(FormatNodePtr node)
NodeSorter(ListType const &list)
MultiplicationGraph const & get_graph()
DataNode< FormatState > FormatNode
list< GraphNode * > const & get_parents() const
list< TimespanNodePtr > timespans
list< GraphNode * >::const_iterator end_of_common_child_range(list< GraphNode * > const &the_list, list< GraphNode * >::const_iterator beginning)
list< boost::shared_ptr< DataNode< T > > > ListType
list< GraphNode * > const & get_children() const
void remove_node(GraphNode *node)
void split_format(FormatNodePtr node, float position=0.5)
bool is_ancestor_of(GraphNode const *node) const
void add_child(GraphNode *child, GraphNode *left_sibling)
static void insert_after(list< T > &the_list, T const &position, T const &element)
void split_channel_config(ChannelConfigNodePtr node, float position=0.5)
DataNode< TimespanState > TimespanNode
void remove_timespan(TimespanNodePtr node)
list< GraphNode * > parents
boost::weak_ptr< DataNode< T > > WeakSelfPtr
FilenameNodePtr duplicate_filename_node(FilenameNodePtr node)
void duplicate_timespan_children(TimespanNodePtr source, TimespanNodePtr target, GraphNode *insertion_point=0)
list< FilenameNodePtr > filenames
MultiplicationGraph graph
void duplicate_format_children(FormatNodePtr source, FormatNodePtr target, GraphNode *insertion_point=0)
bool equals(GraphNode const *node) const
DataNode< FilenameState > FilenameNode
void remove_format(FormatNodePtr node)
void duplicate_channel_config_children(ChannelConfigNodePtr source, ChannelConfigNodePtr target, GraphNode *insertion_point=0)
void remove_child(GraphNode *child)
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
bool is_descendant_of(GraphNode const *node) const
static SelfPtr create(T *data)
void split_filename(FilenameNodePtr node, float position=0.5)
ChannelConfigNodePtr duplicate_channel_config_node(ChannelConfigNodePtr node)
PBD::Signal0< void > GraphChanged
A node in the hierarchical graph that represents a multiplicatable export item.
DataNode< ChannelConfigState > ChannelConfigNode
void split_node(GraphNode *node, float position)
void remove_channel_config(ChannelConfigNodePtr node)
GraphNode * last_child() const
void split_node_at_position(GraphNode *old_node, GraphNode *new_node, float position)
TimespanNodePtr duplicate_timespan_node(TimespanNodePtr node)