Skip to content

Vector Operator initialization #160

Open
@scblakely

Description

@scblakely

When I tried to use a vector operator, I was having issues with there being no outlets defined.
I think the issue is with this :

template\<class min_class_type\>
void min_dsp64_io(minwrap\<min_class_type\>\* self, const short\* count) {
   int i = 0;

    while (i < self->m_min_object.inlets().size()) {
        self->m_min_object.inlets()[i]->update_signal_connection(count[i] != 0);
        ++i;
    }
    while (i < self->m_min_object.outlets().size()) {
        self->m_min_object.outlets()[i - self->m_min_object.inlets().size()]->update_signal_connection(count[i] != 0);
        ++i;
    }
}

After incrementing for the inlets,

while (i < self->m_min_object.outlets().size())

never executes.

I suspect the intent was

template<class min_class_type>
void min_dsp64_io(minwrap<min_class_type>\* self, const short\* count) {
    int i = 0;

    while (i < self->m_min_object.inlets().size()) {
        self->m_min_object.inlets()[i]->update_signal_connection(count[i] != 0);
        ++i;
    }
    while (i - self->m_min_object.inlets().size() < self->m_min_object.outlets().size()) {
        self->m_min_object.outlets()[i - self->m_min_object.inlets().size()]->update_signal_connection(count[i] != 0);
        ++i;
    }
}

or maybe

template<class min_class_type>
void min_dsp64_io(minwrap<min_class_type>* self, const short* count) {
    int i = 0;

    while (i < self->m_min_object.inlets().size()) {
        self->m_min_object.inlets()[i]->update_signal_connection(count[i] != 0);
        ++i;
    }
    i = 0;
    while (i < self->m_min_object.outlets().size()) {
        self->m_min_object.outlets()[i]->update_signal_connection(count[i + m_min_object.inlets().size()] != 0);
        ++i;
    }
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions