Changeset 1477371 in ingen


Ignore:
Timestamp:
Oct 26, 2015, 10:00:45 AM (2 years ago)
Author:
David Robillard <d@…>
Branches:
groups, master, nodeless, parallel, parameters, sequencefix, tasks
Children:
8fb8427
Parents:
965a74a
Message:

Use consistant names for incident ports

git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5789 a436a847-0d15-0410-975c-d299462d15a1

Location:
src/server/events
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/server/events/Disconnect.cpp

    r965a74a r1477371  
    6060Disconnect::Impl::Impl(Engine&     e,
    6161                       GraphImpl*  graph,
    62                        OutputPort* s,
    63                        InputPort*  d)
     62                       OutputPort* t,
     63                       InputPort*  h)
    6464    : _engine(e)
    65     , _src_output_port(s)
    66     , _dst_input_port(d)
    67     , _arc(graph->remove_arc(_src_output_port, _dst_input_port))
     65    , _tail(t)
     66    , _head(h)
     67    , _arc(graph->remove_arc(_tail, _head))
    6868    , _voices(NULL)
    6969{
    7070    ThreadManager::assert_thread(THREAD_PRE_PROCESS);
    7171
    72     BlockImpl* const src_block = _src_output_port->parent_block();
    73     BlockImpl* const dst_block = _dst_input_port->parent_block();
    74 
    75     for (std::list<BlockImpl*>::iterator i = dst_block->providers().begin();
    76          i != dst_block->providers().end(); ++i) {
    77         if ((*i) == src_block) {
    78             dst_block->providers().erase(i);
     72    BlockImpl* const tail_block = _tail->parent_block();
     73    BlockImpl* const head_block = _head->parent_block();
     74
     75    for (std::list<BlockImpl*>::iterator i = head_block->providers().begin();
     76         i != head_block->providers().end(); ++i) {
     77        if ((*i) == tail_block) {
     78            head_block->providers().erase(i);
    7979            break;
    8080        }
    8181    }
    8282
    83     for (std::list<BlockImpl*>::iterator i = src_block->dependants().begin();
    84          i != src_block->dependants().end(); ++i) {
    85         if ((*i) == dst_block) {
    86             src_block->dependants().erase(i);
     83    for (std::list<BlockImpl*>::iterator i = tail_block->dependants().begin();
     84         i != tail_block->dependants().end(); ++i) {
     85        if ((*i) == head_block) {
     86            tail_block->dependants().erase(i);
    8787            break;
    8888        }
    8989    }
    9090
    91     _dst_input_port->decrement_num_arcs();
    92 
    93     if (_dst_input_port->num_arcs() == 0) {
    94         if (!_dst_input_port->is_driver_port()) {
    95             _voices = new Raul::Array<PortImpl::Voice>(_dst_input_port->poly());
    96             _dst_input_port->get_buffers(*_engine.buffer_factory(),
    97                                          _voices,
    98                                          _dst_input_port->poly(),
    99                                          false);
    100 
    101             if (_dst_input_port->is_a(PortType::CONTROL) ||
    102                 _dst_input_port->is_a(PortType::CV)) {
     91    _head->decrement_num_arcs();
     92
     93    if (_head->num_arcs() == 0) {
     94        if (!_head->is_driver_port()) {
     95            _voices = new Raul::Array<PortImpl::Voice>(_head->poly());
     96            _head->get_buffers(*_engine.buffer_factory(),
     97                               _voices,
     98                               _head->poly(),
     99                               false);
     100
     101            if (_head->is_a(PortType::CONTROL) ||
     102                _head->is_a(PortType::CV)) {
    103103                // Reset buffer to control value
    104                 const float value = _dst_input_port->value().get<float>();
     104                const float value = _head->value().get<float>();
    105105                for (uint32_t i = 0; i < _voices->size(); ++i) {
    106106                    Buffer* buf = _voices->at(i).buffer.get();
     
    137137    }
    138138
    139     BlockImpl* const src_block = tail->parent_block();
    140     BlockImpl* const dst_block = head->parent_block();
    141 
    142     if (src_block->parent_graph() != dst_block->parent_graph()) {
     139    BlockImpl* const tail_block = tail->parent_block();
     140    BlockImpl* const head_block = head->parent_block();
     141
     142    if (tail_block->parent_graph() != head_block->parent_graph()) {
    143143        // Arc to a graph port from inside the graph
    144         assert(src_block->parent() == dst_block || dst_block->parent() == src_block);
    145         if (src_block->parent() == dst_block) {
    146             _graph = dynamic_cast<GraphImpl*>(dst_block);
     144        assert(tail_block->parent() == head_block || head_block->parent() == tail_block);
     145        if (tail_block->parent() == head_block) {
     146            _graph = dynamic_cast<GraphImpl*>(head_block);
    147147        } else {
    148             _graph = dynamic_cast<GraphImpl*>(src_block);
    149         }
    150     } else if (src_block == dst_block && dynamic_cast<GraphImpl*>(src_block)) {
     148            _graph = dynamic_cast<GraphImpl*>(tail_block);
     149        }
     150    } else if (tail_block == head_block && dynamic_cast<GraphImpl*>(tail_block)) {
    151151        // Arc from a graph input to a graph output (pass through)
    152         _graph = dynamic_cast<GraphImpl*>(src_block);
     152        _graph = dynamic_cast<GraphImpl*>(tail_block);
    153153    } else {
    154154        // Normal arc between blocks with the same parent
    155         _graph = src_block->parent_graph();
     155        _graph = tail_block->parent_graph();
    156156    }
    157157
     
    162162    }
    163163
    164     if (src_block == NULL || dst_block == NULL) {
     164    if (tail_block == NULL || head_block == NULL) {
    165165        return Event::pre_process_done(Status::PARENT_NOT_FOUND, _head_path);
    166166    }
     
    178178
    179179bool
    180 Disconnect::Impl::execute(ProcessContext& context, bool set_dst_buffers)
     180Disconnect::Impl::execute(ProcessContext& context, bool set_head_buffers)
    181181{
    182182    ArcImpl* const port_arc =
    183         _dst_input_port->remove_arc(context, _src_output_port);
     183        _head->remove_arc(context, _tail);
    184184
    185185    if (!port_arc) {
    186186        return false;
    187     } else if (_dst_input_port->is_driver_port()) {
     187    } else if (_head->is_driver_port()) {
    188188        return true;
    189189    }
    190190
    191     if (set_dst_buffers) {
     191    if (set_head_buffers) {
    192192        if (_voices) {
    193             _engine.maid()->dispose(_dst_input_port->set_voices(context, _voices));
     193            _engine.maid()->dispose(_head->set_voices(context, _voices));
    194194        } else {
    195             _dst_input_port->setup_buffers(*_engine.buffer_factory(),
    196                                            _dst_input_port->poly(),
    197                                            true);
    198         }
    199         _dst_input_port->connect_buffers();
     195            _head->setup_buffers(*_engine.buffer_factory(),
     196                                 _head->poly(),
     197                                 true);
     198        }
     199        _head->connect_buffers();
    200200    } else {
    201         _dst_input_port->recycle_buffers();
     201        _head->recycle_buffers();
    202202    }
    203203
  • src/server/events/Disconnect.hpp

    r965a74a r1477371  
    6363        Impl(Engine&     e,
    6464             GraphImpl*  graph,
    65              OutputPort* s,
    66              InputPort*  d);
     65             OutputPort* t,
     66             InputPort*  h);
    6767
    68         bool execute(ProcessContext& context, bool set_dst_buffers);
     68        bool execute(ProcessContext& context, bool set_head_buffers);
    6969
    70         inline InputPort* head() { return _dst_input_port; }
     70        inline InputPort* head() { return _head; }
    7171
    7272    private:
    7373        Engine&                       _engine;
    74         OutputPort*                   _src_output_port;
    75         InputPort*                    _dst_input_port;
     74        OutputPort*                   _tail;
     75        InputPort*                    _head;
    7676        SPtr<ArcImpl>                 _arc;
    7777        Raul::Array<PortImpl::Voice>* _voices;
Note: See TracChangeset for help on using the changeset viewer.