Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
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;
}
Exemplo n.º 5
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;
}