|
|
|
@ -54,14 +54,14 @@ add_window *add_setup_window(char* glade_path) {
|
|
|
|
|
}
|
|
|
|
|
// flag_check_array = 0 READ
|
|
|
|
|
// flag_check_array = 1 WRITE
|
|
|
|
|
void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button, GtkWidget *spin, int flag_check_array) {
|
|
|
|
|
void update_device_to_entry(GtkWidget *combo_box, GtkWidget *combo_box_size, GtkWidget *check_button, GtkWidget *spin, int flag_check_array) {
|
|
|
|
|
int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(combo_box));
|
|
|
|
|
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
|
|
|
|
|
disk = yon_char_divide_search(disk, " ", -1);
|
|
|
|
|
if (disk_id != -1) {
|
|
|
|
|
int index_find = -1;
|
|
|
|
|
for (int index = 0; index < obj_add_config.size; index++) {
|
|
|
|
|
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
|
|
|
|
|
char* disk_cfg = obj_add_config.disk[index];
|
|
|
|
|
if (strstr(disk_cfg, disk) != NULL) {
|
|
|
|
|
index_find = index;
|
|
|
|
|
break;
|
|
|
|
@ -72,35 +72,43 @@ void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button, GtkWi
|
|
|
|
|
if (strstr(obj_add_config.i_o_limit_read[index_find],"-")) {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_read[index_find]));
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), obj_add_config.i_o_limit_read_size[index_find]);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (flag_check_array==1) {
|
|
|
|
|
if (strstr(obj_add_config.i_o_limit_write[index_find],"-")) {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_write[index_find]));
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), obj_add_config.i_o_limit_write_size[index_find]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -108,8 +116,8 @@ void add_config_init() {
|
|
|
|
|
if (obj_add_config.size != 0) {
|
|
|
|
|
philos_free_string_array(&obj_add_config.disk, obj_add_config.size);
|
|
|
|
|
philos_free_string_array(&obj_add_config.i_o_limit_read, obj_add_config.size);
|
|
|
|
|
philos_free_string_array(&obj_add_config.i_o_limit_write, obj_add_config.size);
|
|
|
|
|
philos_free_int_array(&obj_add_config.i_o_limit_read_size, obj_add_config.size);
|
|
|
|
|
philos_free_string_array(&obj_add_config.i_o_limit_write, obj_add_config.size);
|
|
|
|
|
philos_free_int_array(&obj_add_config.i_o_limit_write_size, obj_add_config.size);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.disk = NULL;
|
|
|
|
@ -229,7 +237,7 @@ void add_disk_all(){
|
|
|
|
|
if (disk_id >= 0 && obj_add_config.size !=0) {
|
|
|
|
|
int index_find = -1;
|
|
|
|
|
for (int index = 0; index < obj_add_config.size; index++) {
|
|
|
|
|
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
|
|
|
|
|
char* disk_cfg = obj_add_config.disk[index];
|
|
|
|
|
if (strstr(disk_cfg, disk) != NULL) {
|
|
|
|
|
index_find = index;
|
|
|
|
|
break;
|
|
|
|
@ -237,7 +245,6 @@ void add_disk_all(){
|
|
|
|
|
}
|
|
|
|
|
if (index_find == -1) {
|
|
|
|
|
// Добавление
|
|
|
|
|
puts("hhhhhhh1");
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
|
|
|
|
@ -270,7 +277,6 @@ void add_disk_all(){
|
|
|
|
|
else {
|
|
|
|
|
// Редактирование
|
|
|
|
|
//obj_add_config.disk[index_find] = yon_char_new(disk);
|
|
|
|
|
puts("hhhhhhh2");
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
|
|
|
|
|
obj_add_config.i_o_limit_read_size[index_find] =(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead));
|
|
|
|
|
obj_add_config.i_o_limit_read[index_find] = yon_char_from_int(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead)));
|
|
|
|
@ -291,11 +297,8 @@ void add_disk_all(){
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (bool_read == 1 || bool_write == 1) {
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)) ||
|
|
|
|
|
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) {
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
}
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
@ -336,8 +339,8 @@ void event_check_io_device() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void combo_box_device() {
|
|
|
|
|
update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->spinAddRead, 0);
|
|
|
|
|
update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddWrite, add_widgets->spinAddWrite, 1);
|
|
|
|
|
update_device_to_entry(add_widgets->cbtAddDevice,add_widgets->cbtAddRead, add_widgets->chbAddRead, add_widgets->spinAddRead, 0);
|
|
|
|
|
update_device_to_entry(add_widgets->cbtAddDevice,add_widgets->cbtAddWrite, add_widgets->chbAddWrite, add_widgets->spinAddWrite, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void add_event(add_window *widgets) {
|
|
|
|
@ -422,43 +425,28 @@ char* add_get_select_device_to_level_2() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char*** add_get_read_device() {
|
|
|
|
|
int index = 0;
|
|
|
|
|
if (!obj_add_config.i_o_limit_read) {
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&index, "-");
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&index, NULL);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size, NULL);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
return &obj_add_config.i_o_limit_read;
|
|
|
|
|
}
|
|
|
|
|
int** add_get_read_device_size_pow() {
|
|
|
|
|
int index = 0;
|
|
|
|
|
if (!obj_add_config.i_o_limit_read_size) {
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&index, -1);
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&index, -2);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size, -2);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
return &obj_add_config.i_o_limit_read_size;
|
|
|
|
|
}
|
|
|
|
|
char*** add_get_write_device() {
|
|
|
|
|
int index = 0;
|
|
|
|
|
if (!obj_add_config.i_o_limit_write) {
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &index, "-");
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &index, NULL);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &obj_add_config.size, NULL);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
return &obj_add_config.i_o_limit_write;
|
|
|
|
|
}
|
|
|
|
|
int** add_get_write_device_size_pow() {
|
|
|
|
|
int index = 0;
|
|
|
|
|
if (!obj_add_config.i_o_limit_write_size) {
|
|
|
|
|
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&index, -1);
|
|
|
|
|
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&index, -2);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size, -2);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
return &obj_add_config.i_o_limit_write_size;
|
|
|
|
|
}
|
|
|
|
|
char*** add_get_select_device() {
|
|
|
|
|
int index = 0;
|
|
|
|
|
if (!obj_add_config.disk) {
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&index, "-");
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&index, NULL);
|
|
|
|
|
}
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, NULL);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
return &obj_add_config.disk;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|