示例#1
0
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;
    }
}
示例#2
0
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 "";
}