Example #1
0
const char *_set_src_cb(guiTextSelect_t *obj, u8 *src, int dir, int idx, int source)
{
    u8 changed;
    if (Model.mixer_mode == MIXER_STANDARD && Model.type == MODELTYPE_HELI)  { //Improvement: only to intelligent switch setting for heli type in standard mode
        int is_neg = MIXER_SRC_IS_INV(*src);
        int step = mapped_std_channels.throttle + NUM_INPUTS +1;
        int newsrc = GUI_TextSelectHelper(MIXER_SRC(*src), 0, step, dir, step, step, &changed);
        MIXER_SET_SRC_INV(newsrc, is_neg);
        *src = newsrc;
    } else {
        if (source <= INP_NONE)
            *src = INPUT_SelectSource(*src, dir, &changed);
        else
            *src = INPUT_SelectInput(*src, source, &changed);
    }
    if (changed) {
        TIMER_Reset(idx);
    }
    GUI_TextSelectEnablePress(obj, MIXER_SRC(*src));
    return INPUT_SourceName(tempstring, *src);
}
Example #2
0
const char *set_drsource_cb(guiObject_t *obj, int dir, void *data)
{
    (void) obj;
    u8 *source = (u8 *)data;
    u8 changed;
    u8 oldsrc = *source;
    *source = INPUT_SelectSource(*source, dir, &changed);
    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(tempstring, *source);
}
Example #3
0
const char *set_source_cb(guiObject_t *obj, int dir, void *data)
{
    u8 changed;
    *(u8 *)data = INPUT_SelectSource(*(u8 *)data, dir, &changed);
    return set_source_helper(obj, data, changed);
}