Beispiel #1
0
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);
}
Beispiel #2
0
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, &note);
            m_seq->play_note_on(note);
            m_keying_note = note;
        }
    }
    return true;
}
Beispiel #3
0
bool
seqkeys::on_motion_notify_event (GdkEventMotion * a_p0)
{
    int note;
    int y = (int) a_p0->y + m_scroll_offset_y;
    convert_y(y, &note);
    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;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}
Beispiel #6
0
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