const char *set_source_cb(guiObject_t *obj, int dir, void *data) { (void) obj; u8 *source = (u8 *)data; if (!GUI_IsTextSelectEnabled(obj) ) { strcpy(mp->tmpstr, _tr("None")); return mp->tmpstr; } u8 is_neg = MIXER_SRC_IS_INV(*source); u8 changed; *source = GUI_TextSelectHelper(MIXER_SRC(*source), 1, NUM_SOURCES, dir, 1, 1, &changed); MIXER_SET_SRC_INV(*source, is_neg); if (changed) { if(mp->cur_template == MIXERTEMPLATE_COMPLEX) { guiObject_t *trim = _get_obj(COMPLEX_TRIM, 0); if(trim) { if (MIXER_SourceHasTrim(MIXER_SRC(mp->mixer[0].src))) GUI_SetHidden(trim, 0); else GUI_SetHidden(trim, 1); } } sync_mixers(); MIXPAGE_RedrawGraphs(); } GUI_TextSelectEnablePress((guiTextSelect_t *)obj, MIXER_SRC(*source)); return INPUT_SourceName(mp->tmpstr, *source); }
const char *set_drsource_cb(guiObject_t *obj, int dir, void *data) { (void) obj; u8 *source = (u8 *)data; u8 is_neg = MIXER_SRC_IS_INV(*source); u8 changed; u8 oldsrc = *source; *source = GUI_TextSelectHelper(MIXER_SRC(*source), 0, NUM_SOURCES, dir, 1, 1, &changed); MIXER_SET_SRC_INV(*source, is_neg); if (changed) { sync_mixers(); if ((!! MIXER_SRC(oldsrc)) ^ (!! MIXER_SRC(*source))) { // bug fix (issues #191) : only invoke _update_rate_widgets() for expo template if (mp->cur_template == MIXERTEMPLATE_EXPO_DR) { if(data == &mp->mixer[1].sw) _update_rate_widgets(0); else if(data == &mp->mixer[2].sw) _update_rate_widgets(1); } } else { MIXPAGE_RedrawGraphs(); } } GUI_TextSelectEnablePress((guiTextSelect_t *)obj, MIXER_SRC(*source)); return INPUT_SourceName(mp->tmpstr, *source); }
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 ""; }
void sourceselect_cb(guiObject_t *obj, void *data) { u8 *source = (u8 *)data; if (MIXER_SRC(*source)) { MIXER_SET_SRC_INV(*source, ! MIXER_SRC_IS_INV(*source)); GUI_Redraw(obj); MIXPAGE_RedrawGraphs(); } }
void toggle_link_cb(guiObject_t *obj, const void *data) { (void)obj; if(data) { mp->link_curves ^= 0x02; if (mp->link_curves & 0x02) { //Redraw graphs when re-linking sync_mixers(); set_src_enable(CURVE_TYPE(&mp->mixer[0].curve)); MIXPAGE_RedrawGraphs(); } } else { mp->link_curves ^= 0x01; if (mp->link_curves & 0x01) { //Redraw graphs when re-linking sync_mixers(); set_src_enable(CURVE_TYPE(&mp->mixer[0].curve)); MIXPAGE_RedrawGraphs(); } } _update_rate_widgets(data ? 1 : 0); }
static const char *set_curvename_cb(guiObject_t *obj, int dir, void *data) { if (!GUI_IsTextSelectEnabled(obj)) { strcpy(mp->tmpstr, _tr("Linked")); return mp->tmpstr; } u8 changed; struct Mixer *mix = (struct Mixer *)data; u8 type = CURVE_TYPE(&mix->curve); type = GUI_TextSelectHelper(type, 0, CURVE_MAX, dir, 1, 1, &changed); if (changed) { CURVE_SET_TYPE(&mix->curve, type); sync_mixers(); set_src_enable(type); MIXPAGE_RedrawGraphs(); } GUI_TextSelectEnablePress((guiTextSelect_t *)obj, type > CURVE_FIXED); return CURVE_GetName(mp->tmpstr, &mix->curve); }
const char *set_number100_cb(guiObject_t *obj, int dir, void *data) { (void)obj; u8 changed; s8 *value = (s8 *)data; if (!GUI_IsTextSelectEnabled(obj) ) { sprintf(mp->tmpstr, "%d", *value); return mp->tmpstr; } s8 min = -125; //(value == &mp->limit.max) ? mp->limit.min : -100; s8 max = 125; //(value == &mp->limit.min) ? mp->limit.max : 100; *value = GUI_TextSelectHelper(*value, min, max, dir, 1, 5, &changed); sprintf(mp->tmpstr, "%d", *value); if (changed) { sync_mixers(); MIXPAGE_RedrawGraphs(); } return mp->tmpstr; }
const char *set_nummixers_cb(guiObject_t *obj, int dir, void *data) { (void)obj; (void)data; u8 changed; int old = mp->num_mixers; mp->num_mixers = GUI_TextSelectHelper( mp->num_mixers, 1 + (mp->cur_mixer - mp->mixer), NUM_COMPLEX_MIXERS, dir, 1, 1, &changed); if (changed) { if (mp->num_mixers > old) { //initialize mixer mp->mixer[mp->num_mixers-1].src = 1; } mp->num_complex_mixers = mp->num_mixers; MIXPAGE_RedrawGraphs(); sync_mixers(); } sprintf(mp->tmpstr, "%d", mp->num_mixers); return mp->tmpstr; }
static const char *set_source_helper(guiObject_t *obj, void *data, int changed) { (void) obj; u8 *source = (u8 *)data; if (!GUI_IsTextSelectEnabled(obj) ) { tempstring_cpy(_tr("None")); return tempstring; } if (changed) { if(mp->cur_template == MIXERTEMPLATE_COMPLEX) { guiObject_t *trim = _get_obj(COMPLEX_TRIM, 0); if(trim) { if (MIXER_SourceHasTrim(MIXER_SRC(mp->mixer[0].src))) GUI_SetHidden(trim, 0); else GUI_SetHidden(trim, 1); } } sync_mixers(); MIXPAGE_RedrawGraphs(); } GUI_TextSelectEnablePress((guiTextSelect_t *)obj, MIXER_SRC(*source)); return INPUT_SourceName(tempstring, *source); }