示例#1
0
/////////////////////////////////////////////////////////////////////////////
// Sends all mixer values for a specified Channel
/////////////////////////////////////////////////////////////////////////////
s32 SEQ_MIXER_SendAllByChannel(u8 chn)
{
    seq_mixer_par_t par;
    s32 status = 0;

    MUTEX_MIDIOUT_TAKE;

    // CCs before PC?
    for(par=0; par<4; ++par) {
        if( seq_mixer_cc1234_before_pc & (1 << par) ) {
            status |= SEQ_MIXER_Send(chn, SEQ_MIXER_PAR_CC1 + par);
        }
    }

    for(par=SEQ_MIXER_PAR_PRG; par<=SEQ_MIXER_PAR_MODWHEEL; ++par)
        status |= SEQ_MIXER_Send(chn, par);

    // CCs after PC?
    for(par=0; par<4; ++par) {
        if( !(seq_mixer_cc1234_before_pc & (1 << par)) ) {
            status |= SEQ_MIXER_Send(chn, SEQ_MIXER_PAR_CC1 + par);
        }
    }

    MUTEX_MIDIOUT_GIVE;

    return status;
}
示例#2
0
/////////////////////////////////////////////////////////////////////////////
// Sends all mixer values
/////////////////////////////////////////////////////////////////////////////
s32 SEQ_MIXER_SendAll(void)
{
  u8 chn;
  seq_mixer_par_t par;
  s32 status = 0;

  for(chn=0; chn<SEQ_MIXER_NUM_CHANNELS; ++chn)
    for(par=SEQ_MIXER_PAR_PRG; par<=SEQ_MIXER_PAR_CC4; ++par)
      status |= SEQ_MIXER_Send(chn, par);

  return status;
}