#include "PadSelection.h" #include "PadDefinition.h" #include "Button.h" #include "Controller.h" #include "Operations.h" #include "PadConfiguration.h" #include InputInit::~InputInit() { int s = actions.size(); for(int i=0; iget_pad_definition().get_width(); m_height=p->get_pad_definition().get_height(); m_matrix.resize(m_width*m_height); for(int i=0; icontrol(msg); } } PadSelection::~PadSelection() { int s = m_operations.size(); for(int i=0; i=0; j--) { for(int i=0; iindexindex; } void PadSelection::add(int i, int j) { int x = i+j*m_width; AbsInput* p = m_pad->get_pad_definition().at(i,j); if(!m_matrix[x]){ m_list.push_back(p); } m_matrix[x]=m_pad->get_pad_definition().at(i,j); m_matrix[x]->set_selection(this); std::sort(m_list.begin(), m_list.end(), compare); } AbsInput* PadSelection::at(int i, int j) { return m_matrix[i+j*m_width]; } void PadSelection::add(AbsInput* b) { return add(b->x, b->y); } void PadSelection::remove(int i, int j) { int x = i+j*m_pad->get_pad_definition().get_width(); m_matrix[x]=NULL; _update_matrix(); m_matrix[x]->set_selection(this); } void PadSelection::remove(AbsInput* b) { return remove(b->x, b->y); } bool PadSelection::has(int x, int y) const { return m_matrix[x+y*m_width]; } bool PadSelection::has(AbsInput* p) const { return has( p->x, p->y); } int PadSelection::count_x(int x) const{ int s=m_list.size(), count=0; for(int i=0; ix==x) count++; return count; } int PadSelection::count_y(int y) const{ int s=m_list.size(), count=0; for(int i=0; iy==y) count++; return count; } int PadSelection::index_at_x(int absindex) const { int x = absindex%m_width; int y = absindex/m_width; int s=m_list.size(), count=0; for(int i=0; iy==y && m_list[i]->xy==y && m_list[i]->xexecute((PadSelection*)this, m, i)) return NULL; } return m; } } return m; }*/ MidiMessage* PadSelection::execute(AbsInput* in, MidiMessage* m) const { int s = m_list.size(), i, count=0; for(int y=m_height-1; y>=in->y; y--){ for(int x=0; xexecute((PadSelection*)this, m, count)) return NULL; } return m; } else{ count++; } } } } return m; }