示例#1
0
/*            Advanced                     Standard
   Row1       Timer                        Timer
   Row2       Switch                       Switch
   Row3       Reset(perm)/ResetSwitch      Reset(perm)/Start
   Row4       Start/Set-to                 Set-to
*/
static int row_cb(int absrow, int relrow, int y, void *data)
{
    (void)data;
    (void)relrow;
    u8 space = LINE_SPACE;
    //Row 1
    GUI_CreateLabelBox(&gui->name, LABEL_X, y,
            LABEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, timer_str_cb, NULL, (void *)(long)absrow);
    GUI_CreateTextSelectPlate(&gui->type, TEXTSEL_X, y,
            TEXTSEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, NULL, set_timertype_cb, (void *)(long)absrow);

    //Row 2
    y += space;
    GUI_CreateLabelBox(&gui->switchlbl, LABEL_X, y,
            LABEL_WIDTH, LINE_HEIGHT,&DEFAULT_FONT, switch_str_cb, NULL, (void *)(long)absrow);
    GUI_CreateTextSourcePlate(&gui->src, TEXTSEL_X, y,
            TEXTSEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, toggle_source_cb, set_source_cb, set_input_source_cb, (void *)(long)absrow);
    //Row 3
    y += space;
    /*prem-timer reset */
    GUI_CreateLabelBox(&gui->resetpermlbl, LABEL_X, y  ,
            LABEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Reset"));
    GUI_CreateButtonPlateText(&gui->resetperm, RESET_X, y ,
            RESET_WIDTH, LINE_HEIGHT,&DEFAULT_FONT, show_timerperm_cb, 0x0000, reset_timerperm_cb,(void *)(long)absrow);
    if(Model.mixer_mode != MIXER_STANDARD) {
        /* or Reset switch */
    	GUI_CreateLabelBox(&gui->resetlbl, LABEL_X, y ,
            LABEL_WIDTH, LINE_HEIGHT,&DEFAULT_FONT, NULL, NULL, _tr("Reset sw"));
    	GUI_CreateTextSourcePlate(&gui->resetsrc, TEXTSEL_X, y ,
            TEXTSEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, toggle_resetsrc_cb, set_resetsrc_cb, set_input_rstsrc_cb, (void *)(long)absrow);
	y += space;
    }
    //Row 4
    GUI_CreateLabelBox(&gui->startlbl, LABEL_X, y,
            START_WIDTH, // bug fix: label width and height can't be 0, otherwise, the label couldn't be hidden dynamically
            LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Start"));
    GUI_CreateTextSelectPlate(&gui->start, TEXTSEL_X, y,
            TEXTSEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT,NULL, set_start_cb, (void *)(long)absrow);
// don't include this in Devo7e due to memory restrictions
#if HAS_PERMANENT_TIMER
    if(Model.mixer_mode == MIXER_STANDARD)
        y+= space;
    GUI_CreateButtonPlateText(&gui->setperm, RESET_X, y,
        RESET_WIDTH, LINE_HEIGHT,&DEFAULT_FONT, show_timerperm_cb, 0x0000, reset_timerperm_cb,(void *)(long)(absrow | 0x80));
#endif

    update_countdown(absrow);

    int selectable = (Model.timer[absrow].type < TIMER_COUNTDOWN) ? 2 : 3;
    if (Model.mixer_mode == MIXER_ADVANCED)
        selectable++;
#if HAS_PERMANENT_TIMER
    if (Model.timer[absrow].type == TIMER_PERMANENT)
        selectable = 4;
#endif
    return selectable;
 }
示例#2
0
static int row4_cb(int absrow, int relrow, int y, void *data)
{
    (void)data;
    void *ts = NULL;
    void *input_ts = NULL;
    void *ts_press = NULL;
    void *ts_data = NULL;
    char *label = NULL;

    switch (absrow) {
    case 0:
        label = _tr_noop("Video Enable");
        ts = set_source_cb; ts_press = sourceselect_cb; ts_data = (void *)&Model.videosrc; input_ts = set_input_source_cb;
        break;
    case 1:
        label = _tr_noop("Video Channel");
        ts = set_videoch_cb;
        break;
    case 2:
        label = _tr_noop("Contrast");
        ts = set_videocontrast_cb;
        break;
    case 3:
        label = _tr_noop("Brightness");
        ts = set_videobrightness_cb;
        break;
    }
    GUI_CreateLabelBox(&gui->label[relrow], LABEL_X, y,
            LABEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr(label));
    GUI_CreateTextSourcePlate(&gui->value[relrow], SELECT_X, y,
            SELECT_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, ts_press, ts, input_ts, ts_data);
    return 1;
}
示例#3
0
static int row2_cb(int absrow, int relrow, int y, void *data)
{
    data = NULL;
    const void *label = "";
    void *value = NULL;
    void *input_value = NULL;

    switch(absrow) {
        case ITEM_INPUT:
            label = _tr_noop("Input");
            value = set_source_cb; data = &tp->trim.src; input_value = set_input_source_cb;
            break;
        case ITEM_TRIMNEG:
            label = _tr_noop("Trim -");
            value = set_trim_cb; data = &tp->trim.neg;
            break;
        case ITEM_TRIMPOS:
            label = _tr_noop("Trim +");
            value = set_trim_cb; data = &tp->trim.pos;
            break;
        case ITEM_TRIMSTEP:
            label = _tr_noop("Trim Step");
            value = set_trimstep_cb; data = (void *)(long)(tp->index + 0x100); //0x100: Use tp->trim
            break;
        case ITEM_TRIMSWITCH:
            label = _tr_noop("Switch");
            value = set_switch_cb; data = &tp->trim.sw; input_value = set_input_switch_cb;
            break;
    }
    GUI_CreateLabelBox(&guit->label[relrow], LABEL2_X, y, LABEL2_WIDTH, LINE_HEIGHT,
            &LABEL_FONT, GUI_Localize, NULL, label);
    GUI_CreateTextSourcePlate(&guit->value[relrow], TEXTSEL2_X, y,
            TEXTSEL2_WIDTH, LINE_HEIGHT, &TEXTSEL_FONT,  NULL, value, input_value, data);
    return 1;
} 
示例#4
0
static int row_cb(int absrow, int relrow, int y, void *data)
{
    (void)data;
    void * tgl = NULL;
    void * label_cb = NULL;
    const void * label = NULL;
    void * disp = NULL;
    void * input_disp = NULL;
    void * value = NULL;
    switch(absrow) {
        case ITEM_REVERSE:
            label = _tr("Reverse");
            tgl = toggle_reverse_cb; disp = reverse_cb; value = (void *)((long)mp->channel);
            break;
        case ITEM_FAILSAFE:
            label = _tr("Fail-safe");
            tgl = toggle_failsafe_cb; disp = set_failsafe_cb;
            break;
        case ITEM_SAFETY:
            label = _tr("Safety");
            tgl = sourceselect_cb; disp = set_source_cb; value = &mp->limit->safetysw; input_disp = set_input_source_cb;
            break;
        case ITEM_SAFEVAL:
            label = _tr("Safe Val");
            disp = set_safeval_cb;
            break;
        case ITEM_MINLIMIT:
            label = _tr("Min Limit");
            disp = set_limits_cb; value = &mp->limit->min;
            break;
        case ITEM_MAXLIMIT:
            label = _tr("Max Limit");        
            disp = set_limits_cb; value = &mp->limit->max;
            break;
        case ITEM_SCALEPOS:
            label_cb = scalestring_cb; label = (void *)1L;
            disp = set_limitsscale_cb; value = &mp->limit->servoscale;
            break;
        case ITEM_SCALENEG:
            label_cb = scalestring_cb; label = (void *)0L;
            disp = set_limitsscale_cb; value = &mp->limit->servoscale_neg;
            break;
        case ITEM_SUBTRIM:
            label = _tr("Subtrim");
            disp = set_trimstep_cb; value = &mp->limit->subtrim;
            break;
        case ITEM_SPEED:
            label = _tr("Speed");
            disp = set_limits_cb; value = &mp->limit->speed;
            break;
    }
    GUI_CreateLabelBox(&gui->label[relrow], LABEL_X, y, LABEL_W, LINE_HEIGHT, &LABEL_FONT, label_cb, NULL, label);
    GUI_CreateTextSourcePlate(&gui->value[relrow], TEXTSEL_X, y, TEXTSEL_W, LINE_HEIGHT, &TEXTSEL_FONT, tgl, disp, input_disp, value);

    if(absrow == ITEM_SAFEVAL)
        GUI_TextSelectEnable(&gui->value[relrow], mp->limit->safetysw);

    return 1;
}
示例#5
0
static int row3_cb(int absrow, int relrow, int y, void *data)
{
    (void)data;
    void *ts;
    void *input_ts = NULL;
    void *ts_press = NULL;
    void *ts_data = NULL;
    char *label = NULL;
    void *label_cmd = NULL;

    switch (absrow) {
    case 0:
        label = _tr_noop("Center PW");
        ts = set_train_cb; ts_data = (void *)1L;
        break;
    case 1:
        label = _tr_noop("Delta PW");
        ts = set_train_cb; ts_data = (void *)2L;
        break;
    case 2:
        if (PPMin_Mode() != PPM_IN_SOURCE) {
            label = _tr_noop("Trainer Sw");
            ts = set_source_cb; ts_press = sourceselect_cb; ts_data = (void *)&Model.train_sw; input_ts = set_input_source_cb;
        } else {
            label = _tr_noop("Num Channels");
            ts = set_train_cb; ts_data = (void *)0L;
        }
        break;
    default:
        label_cmd = input_chname_cb; label = (void *)((long)absrow - 3);
        ts = set_chmap_cb; ts_data = label;
        break;
    }
    GUI_CreateLabelBox(&gui->label[relrow], LABEL_X, y,
            LABEL_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, label_cmd, NULL, label_cmd ? label : _tr(label));
    GUI_CreateTextSourcePlate(&gui->value[relrow], SELECT_X, y,
            SELECT_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, ts_press, ts, input_ts, ts_data);
    return 1;
}