int Projector::select (int X, int Y) { if (in_stereo) { //select viewport if (X > W) { //left side X -= static_cast<int>(W); drawing->reproject(animator->twist_theta(TWIST_ANGLE)); } else { drawing->reproject(animator->twist_theta(-TWIST_ANGLE)); } } float x = convert_x(X); float y = convert_y(Y); return drawing->select(x,y); }
bool seqkeys::on_button_press_event (GdkEventButton * a_e) { if (a_e->type == GDK_BUTTON_PRESS) { if (a_e->button == 1) { int y = int(a_e->y + m_scroll_offset_y); int note; m_keying = true; convert_y(y, ¬e); m_seq->play_note_on(note); m_keying_note = note; } } return true; }
bool seqkeys::on_motion_notify_event (GdkEventMotion * a_p0) { int note; int y = (int) a_p0->y + m_scroll_offset_y; convert_y(y, ¬e); set_hint_key(note); if (m_keying) { if (note != m_keying_note) { m_seq->play_note_off(m_keying_note); m_seq->play_note_on(note); m_keying_note = note; } } return false; }
bool perfnames::on_button_press_event (GdkEventButton * ev) { int y = int(ev->y); int seqnum = convert_y(y); current_seq(seqnum); if (SEQ64_CLICK_LEFT(ev->button)) { if (perf().is_active(seqnum)) { guint modifiers; /* for filtering out caps/num lock etc. */ modifiers = gtk_accelerator_get_default_mod_mask(); if ((ev->state & modifiers) == SEQ64_SHIFT_MASK) { /* * \new ca 2016-03-15 * If the Shift key is pressed, mute all other sequences. * Inactive sequences are skipped. */ for (int s = 0; s < m_sequence_max; ++s) { if (s != seqnum) { sequence * seq = perf().get_sequence(s); if (not_nullptr(seq)) { bool muted = seq->get_song_mute(); seq->set_song_mute(! muted); } } } } else { sequence * seq = perf().get_sequence(seqnum); bool muted = seq->get_song_mute(); seq->set_song_mute(! muted); } enqueue_draw(); } } return true; }
static int PeMGetEvent(PeMData *event){ PeMReadPacket(event->fd, packet); /* Sync bit always must be set to 1 */ if ((*packet & PeM_PANEL_SYNC_MASK) == 0) return 0; if (*packet & PeM_PANEL_TOUCH_MASK) event->action = PEM_PANEL_TOUCH; else event->action = PEM_PANEL_UNTOUCH; event->y = convert_y( WORD_ASSEMBLY(packet[2], packet[1]),event); event->x = convert_x( WORD_ASSEMBLY(packet[4], packet[3]),event); if (event->min_x) event->x = event->min_x - event->x; if (event->min_y) event->y = event->min_y - event->y; return 1; }
do_calc_data() { int b, p, prelim, tampaw, tampax; register int i, j, w, x; if (lastb != eb || lastp != ep) { j = tampaw = w = 0; tampax = x = lmarg; domainflgs[6] = TRUE; for (i = 0; i < stasys; i++) { if (clefs[i]) { ptr_to_bp( clefs[i], &b, &p ); currscreen[j++] = x + 4; currscreen[j++] = convert_y( i, ((short*)clefs[i])[4] ); currscreen[j++] = b; currscreen[j++] = p; domain_x( currscreen[j-2], currscreen[j-1], &tampax, &tampaw ); tampax = currscreen[j-4]; } } w = tampaw; x = tampax; for (i = 0; i < stasys; i++) { if (keys[i] && ((char*)(keys[i]))[6]) { /* keysig not natural? */ ptr_to_bp( keys[i], &b, &p ); currscreen[j++] = x + w + 4; currscreen[j++] = (-1); currscreen[j++] = b; currscreen[j++] = p; domain_x( currscreen[j-2], currscreen[j-1], &tampax, &tampaw ); tampax = currscreen[j-4]; } } w = tampaw; x = tampax; for (i = 0; i < stasys; i++) { if (times[i]) { ptr_to_bp( times[i], &b, &p ); currscreen[j++] = x + w + 4; currscreen[j++] = (-1); currscreen[j++] = b; currscreen[j++] = p; domain_x( currscreen[j-2], currscreen[j-1], &tampax, &tampaw ); tampax = currscreen[j-4]; } } w = tampaw; x = tampax; if (bartypes[1] == S_START || bartypes[1] == S_STARTEND) { ptr_to_bp( bars[1], &b, &p ); currscreen[j++] = (x > lmarg)? x + w + 4: x + w; currscreen[j++] = (-1); currscreen[j++] = b; currscreen[j++] = p; domain_x( currscreen[j-2], currscreen[j-1], &tampax, &tampaw ); w = tampaw; x = currscreen[j-4]; } ts_startpt = (x > lmarg)? x + w + 2: x; prelim = j >> 2; currscreen = (int*)((long)currscreen + (j << 1)); maxnsymb -= prelim; nsymbonscr = calc_data( lastb, lastp, eb, ep, x + w, rmarg ); maxnsymb += prelim; currscreen = (int*)((long)currscreen - (j << 1)); if (nsymbonscr) nsymbonscr += prelim; } else