///////////////////////////////////////////////////////////////////////////// // 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; }
///////////////////////////////////////////////////////////////////////////// // 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; }