static void file_monome_in(rove_file_t *self, rove_monome_t *monome, const int x, const int y, const int type) { unsigned int cols; rove_monome_position_t pos = {x, y - self->y}; switch( type ) { case MONOME_BUTTON_DOWN: if( y < self->y || y > ( self->y + self->row_span - 1) ) return; cols = (self->columns) ? self->columns : monome->cols; if( x > cols - 1 ) return; self->new_offset = calculate_play_pos(self->file_length, pos.x, pos.y, (self->play_direction == FILE_PLAY_DIRECTION_REVERSE), self->row_span, cols); rove_pattern_append_step(CMD_LOOP_SEEK, self, self->new_offset); rove_file_on_quantize(self, rove_file_seek); break; case MONOME_BUTTON_UP: break; } }
static void process_file(rove_file_t *f) { if( !f ) return; if( f->quantize_cb ) { f->quantize_cb(f); rove_file_on_quantize(f, NULL); } }