diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index de1c735..76ce027 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -996,17 +996,17 @@ char* save_format_value(int index) { split_simvol[0] = 0; split_simvol[1] = 0; if (strstr(main_config.soft_raw_limit[index], "-") == NULL) { - value = yon_char_unite(philos_format_cfg_str_size_memory("MemoryHigh", main_config.soft_raw_limit[index],main_config.soft_raw_limit_size[index]),NULL); + value = yon_char_unite(philos_format_cfg_str_size_memory("MemoryHigh=", main_config.soft_raw_limit[index],main_config.soft_raw_limit_size[index]),NULL); split_simvol[0] = ','; split_simvol[1] = '\0'; } if (strstr(main_config.hard_raw_limit[index], "-") == NULL) { - value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemoryMax", main_config.hard_raw_limit[index],main_config.hard_raw_limit_size[index]), NULL); + value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemoryMax=", main_config.hard_raw_limit[index],main_config.hard_raw_limit_size[index]), NULL); split_simvol[0] = ','; split_simvol[1] = '\0'; } if (strstr(main_config.swap[index], "-") == NULL) { - value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemorySwapMax", main_config.swap[index],main_config.swap_size[index]), NULL); + value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemorySwapMax=", main_config.swap[index],main_config.swap_size[index]), NULL); split_simvol[0] = ','; split_simvol[1] = '\0'; } diff --git a/source/ubl-utils.c b/source/ubl-utils.c index f6c6ee7..df891cb 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -674,22 +674,22 @@ char* philos_format_cfg_str_size_memory(char* str_key, char* str_source_value, i char* str_value = yon_char_new(str_source_value); str_value = yon_char_divide_search(str_value, " ", -1); if (pow_size_memory==0) { - return yon_char_unite(str_key, "=" , str_value, "K" ,NULL); + return yon_char_unite(str_key, str_value, "K" ,NULL); } else if (pow_size_memory==1) { - return yon_char_unite(str_key, "=" , str_value, "M" ,NULL); + return yon_char_unite(str_key, str_value, "M" ,NULL); } else if (pow_size_memory==2){ - return yon_char_unite(str_key, "=" , str_value, "G" ,NULL); + return yon_char_unite(str_key, str_value, "G" ,NULL); } else if (pow_size_memory== 3) { - return yon_char_unite(str_key, "=" , str_value, "T" ,NULL); + return yon_char_unite(str_key, str_value, "T" ,NULL); } else if (pow_size_memory== -1) { - return yon_char_unite(str_key, "=" , str_value, "%" ,NULL); + return yon_char_unite(str_key, str_value, "%" ,NULL); } else { - return yon_char_unite(str_key, "=" , str_value, "-" ,NULL); + return yon_char_unite(str_key, str_value, "-" ,NULL); } } diff --git a/source/view_add.c b/source/view_add.c index b8254d3..1163a8a 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -77,8 +77,6 @@ void add_init_windows() { philos_set_active_widgets(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd, add_widgets->cmbSevereRestrictionAdd,0 , CMD_RAW); philos_set_active_widgets(add_widgets->chkPaddingFLAdd, add_widgets->spinPaddingFLAdd, add_widgets->cmbPaddingFLAdd,0 , CMD_SWAP); philos_set_active_widgets(add_widgets->chkCPULimitAdd, add_widgets->spinCPULimitAdd, add_widgets->lblCPULimitAdd,1 , CMD_CPU); - philos_set_active_widgets_device_io(add_widgets->cbtAddDevice, add_widgets->chbAddWrite, add_widgets->spinAddWrite, add_widgets->cbtAddWrite); - philos_set_active_widgets_device_io(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead); add_generate_cmd(); } else { @@ -89,7 +87,7 @@ void add_init_windows() { } int check_activ_disk() { - char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(&add_widgets->cbtAddDevice)); + char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); disk = yon_char_divide_search(disk," ", -1); int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)); int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite)); @@ -101,12 +99,13 @@ int check_activ_disk() { void add_del_disk() { char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); + disk = yon_char_divide_search(disk, " ", -1); int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)); int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite)); if (check_activ_disk() == 0) { return; } - if (obj_add_config.disk != NULL && obj_add_config.size != 0) { + if (obj_add_config.disk && obj_add_config.size) { int index_find = 0; for (int index = 0; index < obj_add_config.size; index++) { char* disk_cfg = yon_char_new(obj_add_config.disk[index]); @@ -116,24 +115,52 @@ void add_del_disk() { } } if ((bool_read == 0 && bool_write == 0 && index_find != 0)) { - yon_char_parsed_shrink(obj_add_config.disk,&obj_add_config.size, index_find); + obj_add_config.disk = yon_char_parsed_shrink(obj_add_config.disk,&obj_add_config.size, index_find); obj_add_config.size++; - remove_element_int_array(obj_add_config.i_o_limit_read_size,&obj_add_config.size, index_find); + obj_add_config.i_o_limit_read_size = remove_element_int_array(obj_add_config.i_o_limit_read_size,&obj_add_config.size, index_find); obj_add_config.size++; - remove_element_int_array(obj_add_config.i_o_limit_write_size,&obj_add_config.size, index_find); + obj_add_config.i_o_limit_write_size = remove_element_int_array(obj_add_config.i_o_limit_write_size,&obj_add_config.size, index_find); obj_add_config.size++; - yon_char_parsed_shrink(obj_add_config.i_o_limit_read,&obj_add_config.size, index_find); + obj_add_config.i_o_limit_read = yon_char_parsed_shrink(obj_add_config.i_o_limit_read,&obj_add_config.size, index_find); obj_add_config.size++; - yon_char_parsed_shrink(obj_add_config.i_o_limit_write,&obj_add_config.size, index_find); + obj_add_config.i_o_limit_write = yon_char_parsed_shrink(obj_add_config.i_o_limit_write,&obj_add_config.size, index_find); } } } + +char* pard_array_edit_cmd(char* cmd, char* key, char** array_io, int* array_io_pow_size) { + char* split_simvol = g_malloc0(sizeof(char)*2); + if (obj_add_config.disk && obj_add_config.size && array_io && array_io_pow_size) { + int index_find = 0; + for (int index = 0; index < obj_add_config.size; index++) { + if (index==0) { + if (strlen(cmd)>1) { + cmd = yon_char_unite(cmd, ",", key, NULL); + } + else { + cmd = yon_char_unite(cmd, key, NULL); + } + + } + if (array_io_pow_size[index] != -1) { + cmd = yon_char_unite(cmd, split_simvol, obj_add_config.disk[index], philos_format_cfg_str_size_memory(" ", array_io[index], array_io_pow_size[index]), NULL); + split_simvol[0] = ','; + split_simvol[1] = '\0'; + } + + } + } + free(split_simvol); + return cmd; +} + void add_disk_all(){ char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); - if (check_activ_disk() == 0) { - return; - } - if (obj_add_config.disk != NULL && obj_add_config.size !=0) { + disk = yon_char_divide_search(disk, " ", -1); + int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice)); + int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)); + int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite)); + if (disk_id >= 0 && obj_add_config.size !=0) { int index_find = 0; for (int index = 0; index < obj_add_config.size; index++) { char* disk_cfg = yon_char_new(obj_add_config.disk[index]); @@ -143,29 +170,32 @@ void add_disk_all(){ } } if (index_find == 0) { - yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); + obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); obj_add_config.size--; - philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead))); + 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--; - philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); + obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); obj_add_config.size--; - yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead,add_widgets->cbtAddRead)); + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead))); obj_add_config.size--; - yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,add_widgets->cbtAddWrite)); + obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite))); } } else { - yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); - obj_add_config.size--; - philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead))); - obj_add_config.size--; - philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); - obj_add_config.size--; - yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead)); - obj_add_config.size--; - yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,add_widgets->cbtAddWrite)); + if (bool_read == 1 || bool_write == 1) { + obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); + obj_add_config.size--; + 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--; + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead))); + obj_add_config.size--; + obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); + obj_add_config.size--; + obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); + obj_add_config.size--; + obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite))); + } } - } void event_check_io_device() { @@ -190,15 +220,15 @@ void add_event(add_window *widgets) { g_signal_connect(G_OBJECT(widgets->spinSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->spinPaddingFLAdd),"changed",G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->spinCPULimitAdd),"changed",G_CALLBACK(add_init_windows), NULL); - g_signal_connect(G_OBJECT(widgets->spinAddRead),"changed",G_CALLBACK(add_init_windows), NULL); - g_signal_connect(G_OBJECT(widgets->spinAddWrite),"changed",G_CALLBACK(add_init_windows), NULL); + g_signal_connect(G_OBJECT(widgets->spinAddRead),"changed",G_CALLBACK(event_check_io_device), NULL); + g_signal_connect(G_OBJECT(widgets->spinAddWrite),"changed",G_CALLBACK(event_check_io_device), NULL); g_signal_connect(G_OBJECT(widgets->cmSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->cmbSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->cmbPaddingFLAdd),"changed",G_CALLBACK(add_init_windows), NULL); - g_signal_connect(G_OBJECT(widgets->cbtAddRead),"changed",G_CALLBACK(add_init_windows), NULL); - g_signal_connect(G_OBJECT(widgets->cbtAddWrite),"changed",G_CALLBACK(add_init_windows), NULL); - g_signal_connect(G_OBJECT(widgets->cbtAddDevice),"changed",G_CALLBACK(add_init_windows), NULL); + g_signal_connect(G_OBJECT(widgets->cbtAddRead),"changed",G_CALLBACK(event_check_io_device), NULL); + g_signal_connect(G_OBJECT(widgets->cbtAddWrite),"changed",G_CALLBACK(event_check_io_device), NULL); + g_signal_connect(G_OBJECT(widgets->cbtAddDevice),"changed",G_CALLBACK(event_check_io_device), NULL); } @@ -405,33 +435,9 @@ void add_generate_cmd() { split_simvol[0] = ','; split_simvol[1] = '\0'; } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) { - int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice)); - if (menu_id != -1) { - size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead)); - str_cmd = yon_char_unite(str_cmd, split_simvol, - "IOReadBandwidthMax=\"", - get_device_cfg()->name_disk[menu_id], - " ", - yon_char_from_int(size_bite), - philos_str_size_pow_byte(add_widgets->cbtAddRead),"\"", NULL); - } - split_simvol[0] = ','; - split_simvol[1] = '\0'; - - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) { - int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice)); - if (menu_id != -1) { - size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddWrite)); - str_cmd = yon_char_unite(str_cmd, split_simvol, - "IOWriteBandwidthMax=\"", - get_device_cfg()->name_disk[menu_id], - " ", - yon_char_from_int(size_bite), - philos_str_size_pow_byte(add_widgets->cbtAddWrite),"\"", NULL); - } - } + str_cmd = pard_array_edit_cmd(str_cmd, "IOReadBandwidthMax=", obj_add_config.i_o_limit_read, obj_add_config.i_o_limit_read_size); + + str_cmd = pard_array_edit_cmd(str_cmd, "IOWriteBandwidthMax=", obj_add_config.i_o_limit_write, obj_add_config.i_o_limit_write_size); gtk_entry_set_text(GTK_ENTRY(add_widgets->entryAddCmd), str_cmd); free(split_simvol); }