static void generic_history_msg_number(User *usr, char c, PList *root, PList **pointer) { int r; if (usr == NULL || pointer == NULL) return; Enter(state_hist_msg_number); if (c == INIT_STATE) Put(usr, "<green>Enter message number: <yellow>"); r = edit_number(usr, c); if (r == EDIT_BREAK) { RET(usr); Return; } if (r == EDIT_RETURN) { int num; PList *pl; num = atoi(usr->edit_buf); if (num <= 0) { *pointer = root; RET(usr); Return; } num--; for(pl = root; pl != NULL && pl->next != NULL && num > 0; pl = pl->next) num--; if (pl == NULL) Put(usr, "<red>No such message\n"); else *pointer = pl; RETX(usr, INIT_PROMPT); } Return; }
static void generic_history_plus(User *usr, char c, PList **pointer) { int r; if (usr == NULL || pointer == NULL) return; Enter(state_enter_plus_msg); if (c == INIT_STATE) Put(usr, "<green>Enter number of messages to skip: <yellow>"); r = edit_number(usr, c); if (r == EDIT_BREAK) { RET(usr); Return; } if (r == EDIT_RETURN) { int i; PList *pl; i = atoi(usr->edit_buf); if (i <= 0) { RET(usr); Return; } for(pl = *pointer; pl != NULL && pl->next != NULL && i > 0; pl = pl->next) i--; if (pl == NULL) Put(usr, "<red>No messages\n"); else *pointer = pl; RETX(usr, INIT_PROMPT); } Return; }
static uint8_t model_sysid_edit (char *name, float x, float y, int8_t button, float data, uint8_t action) { edit_number(setup.view_mode, NUMBER_TYPE_UINT8, &ModelData[ModelActive].mavlink_sysid, 0.0, 255.0); return 0; }
static uint8_t model_port_edit (char *name, float x, float y, int8_t button, float data, uint8_t action) { edit_number(setup.view_mode, NUMBER_TYPE_UINT16, &ModelData[ModelActive].netport, 1000.0, 60000.0); return 0; }
uint8_t swarm_set(char *name, float x, float y, int8_t button, float data, uint8_t action) { int n = 0; if (strcmp(name, "swarm_setup") == 0) { map_show_swarm_setup = 1 - map_show_swarm_setup; } else if (strncmp(name, "swarm_yawmode", 13) == 0) { SwarmSetup.yaw_mode = 1 - SwarmSetup.yaw_mode; } else if (strncmp(name, "swarm_rotate", 12) == 0) { SwarmSetup.rotate = 1 - SwarmSetup.rotate; } else if (strcmp(name, "swarm_setup_done") == 0) { map_show_swarm_setup = 0; } else if (strcmp(name, "swar_active") == 0) { SwarmSetup.active = 1 - SwarmSetup.active; } else if (strcmp(name, "SwarmSetup.options0") == 0) { SwarmSetup.options = 0; } else if (strcmp(name, "SwarmSetup.options1") == 0) { SwarmSetup.options = 1; } else if (strcmp(name, "SwarmSetup.selected") == 0) { if (button == 5) { if (SwarmSetup.selected > 0) { SwarmSetup.selected--; } else { SwarmSetup.selected = 4 - 1; } } else { if (SwarmSetup.selected < 4 - 1) { SwarmSetup.selected++; } else { SwarmSetup.selected = 0; } } } else if (strncmp(name, "SwarmSetup.offx", 15) == 0) { int n = atoi(name + 15); if (button == 5) { if (SwarmSetup.offset_x[n] > -50) { SwarmSetup.offset_x[n]--; } } else if (button == 4) { if (SwarmSetup.offset_x[n] < 50) { SwarmSetup.offset_x[n]++; } } else { edit_number(setup.view_mode, NUMBER_TYPE_INT16, &SwarmSetup.offset_x[n], -50.0, 50.0); } } else if (strncmp(name, "SwarmSetup.offy", 15) == 0) { int n = atoi(name + 15); if (button == 5) { if (SwarmSetup.offset_y[n] > -50) { SwarmSetup.offset_y[n]--; } } else if (button == 4) { if (SwarmSetup.offset_y[n] < 50) { SwarmSetup.offset_y[n]++; } } else { edit_number(setup.view_mode, NUMBER_TYPE_INT16, &SwarmSetup.offset_y[n], -50.0, 50.0); } } else if (strncmp(name, "SwarmSetup.offz", 15) == 0) { int n = atoi(name + 15); if (button == 5) { if (SwarmSetup.offset_z[n] > -10) { SwarmSetup.offset_z[n]--; } } else if (button == 4) { if (SwarmSetup.offset_z[n] < 10) { SwarmSetup.offset_z[n]++; } } else { edit_number(setup.view_mode, NUMBER_TYPE_INT16, &SwarmSetup.offset_z[n], -50.0, 50.0); } } else if (strncmp(name, "SwarmSetup.master", 17) == 0) { if (button == 4) { if (SwarmSetup.master > -1) { SwarmSetup.master--; } else { SwarmSetup.master = MODELS_MAX - 1; } } else if (button == 5) { if (SwarmSetup.master < MODELS_MAX - 1) { SwarmSetup.master++; } else { SwarmSetup.master = -1; } } else { if (pd_openm == 1) { if (data > 0.0) { SwarmSetup.master = (int8_t)data - 2; } pd_openm = 0; } else { pd_openm = 1; } } } else if (strncmp(name, "SwarmSetup.slave", 16) == 0) { n = atoi(name + 16); if (button == 4) { if (SwarmSetup.slave[n] > -1) { SwarmSetup.slave[n]--; } else { SwarmSetup.slave[n] = MODELS_MAX - 1; } } else if (button == 5) { if (SwarmSetup.slave[n] < MODELS_MAX - 1) { SwarmSetup.slave[n]++; } else { SwarmSetup.slave[n] = -1; } } else { if (pd_open[n] == 1) { if (data > 0.0) { SwarmSetup.slave[n] = (int8_t)data - 2; } pd_open[n] = 0; } else { pd_open[n] = 1; } } } return 0; }