void sync_mixers() { switch(mp->cur_template) { case MIXERTEMPLATE_NONE: case MIXERTEMPLATE_CYC1: case MIXERTEMPLATE_CYC2: case MIXERTEMPLATE_CYC3: mp->num_mixers = 0; break; case MIXERTEMPLATE_SIMPLE: mp->mixer[0].sw = 0; MIXER_SET_MUX(&mp->mixer[0], MUX_REPLACE); mp->num_mixers = 1; break; case MIXERTEMPLATE_COMPLEX: mp->num_mixers = mp->num_complex_mixers; break; case MIXERTEMPLATE_EXPO_DR: mp->num_mixers = 1; if (MIXER_SRC(mp->mixer[1].sw)) { mp->num_mixers++; mp->mixer[1].src = mp->mixer[0].src; mp->mixer[1].dest = mp->mixer[0].dest; MIXER_SET_MUX(&mp->mixer[1], MUX_REPLACE); mp->mixer[1].offset = 0; MIXER_SET_APPLY_TRIM(&mp->mixer[1], MIXER_APPLY_TRIM(&mp->mixer[0])); } else { mp->mixer[1].src = 0; } if (mp->link_curves & 0x01) mp->mixer[1].curve = mp->mixer[0].curve; if (MIXER_SRC(mp->mixer[2].sw)) { mp->num_mixers++; mp->mixer[2].src = mp->mixer[0].src; mp->mixer[2].dest = mp->mixer[0].dest; MIXER_SET_MUX(&mp->mixer[2], MUX_REPLACE); mp->mixer[2].offset = 0; MIXER_SET_APPLY_TRIM(&mp->mixer[2], MIXER_APPLY_TRIM(&mp->mixer[0])); } else { mp->mixer[2].src = 0; } if (mp->link_curves & 0x02) mp->mixer[2].curve = mp->mixer[0].curve; MIXER_SET_MUX(&mp->mixer[0], MUX_REPLACE); mp->mixer[0].offset = 0; mp->mixer[0].sw = 0; break; } }
const char *set_mux_cb(guiObject_t *obj, int dir, void *data) { (void)obj; (void)data; u8 changed; u8 mux = MIXER_MUX(mp->cur_mixer); mux = GUI_TextSelectHelper(mux, MUX_REPLACE, MUX_LAST-1, dir, 1, 1, &changed); if (changed) { MIXER_SET_MUX(mp->cur_mixer, mux); MIXPAGE_RedrawGraphs(); sync_mixers(); } switch(mux) { case MUX_REPLACE: return _tr("replace"); case MUX_MULTIPLY: return _tr("mult"); case MUX_ADD: return _tr("add"); case MUX_MAX: return _tr("max"); case MUX_MIN: return _tr("min"); case MUX_DELAY: return _tr("delay"); case MUX_LAST: break; } return ""; }