📄 setup.c
字号:
/* look if this is the currently selected writer */ if (setupdata.writer_devnr == scsidevices[i]->devnr) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); } } i++; } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); /* set the preselected writer */ if (menuhistory != -1) { gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory); } else { /* nothing valid preselected */ setupdata.writer_devnr = firstdevnr; } gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,8,0,1); gtk_widget_show(omenu); define_tooltip(omenu,help(8)); l1 = rightjust_gtk_label_new(text(20)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,1,2); gtk_widget_show(l1); /* list of cdrecord drivers */ omenu = gtk_option_menu_new(); menu = gtk_menu_new(); menuidx = 0; menuhistory = 0; menu_item = gtk_menu_item_new_with_label(text(23)); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(writermode_selected), GINT_TO_POINTER(-1)); gtk_menu_append (GTK_MENU (menu), menu_item); if (setupdata.writer_mode == -1) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); i = 0; while(drivers[i] != NULL) { menu_item = gtk_menu_item_new_with_label(drivers[i]->desc); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(writermode_selected), GINT_TO_POINTER(i)); gtk_menu_append (GTK_MENU (menu), menu_item); if (setupdata.writer_mode == i) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); i++; } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory); gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,8,1,2); gtk_widget_show(omenu); define_tooltip(omenu,help(9)); l1 = rightjust_gtk_label_new(text(21)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,2,3); gtk_widget_show(l1); f1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN); gtk_container_border_width(GTK_CONTAINER(f1),3); gtk_table_attach_defaults(GTK_TABLE(tbl),f1,4,5,2,3); gtk_widget_show(f1); spdlabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(f1),spdlabel); gtk_widget_show(spdlabel); adj1 = gtk_adjustment_new(0.0,0.0,33.0,1.0,1.0,1.0); gtk_signal_connect(GTK_OBJECT(adj1), "value_changed", GTK_SIGNAL_FUNC(speed_changed), spdlabel); scale = gtk_hscale_new(GTK_ADJUSTMENT (adj1)); gtk_scale_set_value_pos (GTK_SCALE(scale), GTK_POS_LEFT); gtk_scale_set_digits(GTK_SCALE(scale),0); gtk_scale_set_draw_value(GTK_SCALE(scale),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),scale,5,8,2,3); /* set current value. We add 0.1 because otherwise the value of zero is ignored. Very strange */ gtk_adjustment_set_value(GTK_ADJUSTMENT (adj1), (gfloat)setupdata.writer_speed+0.1); gtk_widget_show(scale); define_tooltip(scale,help(10)); l1 = rightjust_gtk_label_new(text(22)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,3,4); gtk_widget_show(l1); f1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN); gtk_container_border_width(GTK_CONTAINER(f1),3); gtk_table_attach_defaults(GTK_TABLE(tbl),f1,4,5,3,4); gtk_widget_show(f1); fifolabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(f1),fifolabel); gtk_widget_show(fifolabel); adj2 = gtk_adjustment_new(1.0,1.0,16.0,0.5,0.5,0.0); gtk_signal_connect(GTK_OBJECT(adj2), "value_changed", GTK_SIGNAL_FUNC(fifo_changed), fifolabel); scale = gtk_hscale_new(GTK_ADJUSTMENT (adj2)); gtk_scale_set_value_pos (GTK_SCALE(scale), GTK_POS_LEFT); gtk_scale_set_digits(GTK_SCALE(scale),0); gtk_scale_set_draw_value(GTK_SCALE(scale),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),scale,5,8,3,4); /* next line is to fix a bug in adj_set_value */ gtk_label_set_text(GTK_LABEL(fifolabel),"1.0MB"); gtk_adjustment_set_value(GTK_ADJUSTMENT (adj2), (gfloat)(setupdata.writer_fifo/1024)); gtk_widget_show(scale); define_tooltip(scale,help(151)); /* ------------------------------ */ f1 = gtk_frame_new(text(29)); set_font_and_color(f1,BOLDFONT,NULL); gtk_box_pack_start(GTK_BOX(vbox),f1,FALSE,TRUE,10); gtk_widget_show(f1); tbl = gtk_table_new(6,8,TRUE); gtk_table_set_col_spacing(GTK_TABLE(tbl),3,10); gtk_container_set_border_width(GTK_CONTAINER (tbl),5); gtk_container_add(GTK_CONTAINER(f1),tbl); gtk_widget_show(tbl); l1 = rightjust_gtk_label_new(text(30)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,0,1); gtk_widget_show(l1); omenu = gtk_option_menu_new (); menu = gtk_menu_new(); menuidx = 0; menuhistory = -1; firstdevnr = -1; i = 0; while(scsidevices[i] != NULL) { if (scsidevices[i]->type == 4 || scsidevices[i]->type == 5 ) { if (firstdevnr == -1) { firstdevnr = scsidevices[i]->devnr; } if (convert_devnr2devstring(scsidevices[i]->devnr,tmp) == 0) { menu_item = gtk_menu_item_new_with_label(tmp); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(readdev1_selected), GINT_TO_POINTER(scsidevices[i]->devnr)); gtk_menu_append (GTK_MENU (menu), menu_item); if (setupdata.readdev1_devnr == scsidevices[i]->devnr) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); } } i++; } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); if (menuhistory != -1) { gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory); } else { setupdata.readdev1_devnr = firstdevnr; } gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,8,0,1); gtk_widget_show(omenu); define_tooltip(omenu,help(12)); l1 = rightjust_gtk_label_new(text(31)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,1,2); gtk_widget_show(l1); omenu = gtk_option_menu_new (); menu = gtk_menu_new(); menuidx = 0; menuhistory = -1; firstdevnr = -1; i = 0; while(scsidevices[i] != NULL) { if (scsidevices[i]->type == 4 || scsidevices[i]->type == 5 ) { if (firstdevnr == -1) { firstdevnr = scsidevices[i]->devnr; } if (convert_devnr2devstring(scsidevices[i]->devnr,tmp) == 0) { menu_item = gtk_menu_item_new_with_label(tmp); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(readdev2_selected), GINT_TO_POINTER(scsidevices[i]->devnr)); gtk_menu_append (GTK_MENU (menu), menu_item); if (setupdata.readdev2_devnr == scsidevices[i]->devnr) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); } } i++; } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); if (menuhistory != -1) { gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory); } else { setupdata.readdev2_devnr = firstdevnr; } gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,8,1,2); gtk_widget_show(omenu); define_tooltip(omenu,help(13)); /* audio-interface selector */#ifdef WEWANTUSEAUDIOINTERFACESELECTOR l1 = rightjust_gtk_label_new(text(32)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,5,6); gtk_widget_show(l1); btn = gtk_radio_button_new_with_label(NULL,text(36)); gtk_table_attach_defaults(GTK_TABLE(tbl),btn,4,6,5,6); gtk_widget_show(btn); group = gtk_radio_button_group (GTK_RADIO_BUTTON(btn)); btn = gtk_radio_button_new_with_label(group,text(37)); gtk_signal_connect(GTK_OBJECT(btn),"clicked", GTK_SIGNAL_FUNC(audiointerface_selected),NULL); gtk_table_attach_defaults(GTK_TABLE(tbl),btn,6,8,5,6); gtk_widget_show(btn); /* set current value */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),setupdata.audioread_interface);#endif l1 = rightjust_gtk_label_new(text(33)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,2,3); gtk_widget_show(l1); f1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN); gtk_container_border_width(GTK_CONTAINER(f1),3); gtk_table_attach_defaults(GTK_TABLE(tbl),f1,4,5,2,3); gtk_widget_show(f1); spdlabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(f1),spdlabel); gtk_widget_show(spdlabel); adj3 = gtk_adjustment_new(0.0,0.0,65.0,1.0,1.0,1.0); gtk_signal_connect(GTK_OBJECT(adj3), "value_changed", GTK_SIGNAL_FUNC(audio_speed_changed), spdlabel); scale = gtk_hscale_new(GTK_ADJUSTMENT (adj3)); gtk_scale_set_value_pos (GTK_SCALE(scale), GTK_POS_LEFT); gtk_scale_set_digits(GTK_SCALE(scale),0); gtk_scale_set_draw_value(GTK_SCALE(scale),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),scale,5,8,2,3); gtk_adjustment_set_value(GTK_ADJUSTMENT(adj3), (gfloat)setupdata.audioread_speed+0.1); gtk_widget_show(scale); define_tooltip(scale,help(14)); l1 = rightjust_gtk_label_new(text(34)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,3,4); gtk_widget_show(l1); f1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN); gtk_container_border_width(GTK_CONTAINER(f1),3); gtk_table_attach_defaults(GTK_TABLE(tbl),f1,4,5,3,4); gtk_widget_show(f1); spdlabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(f1),spdlabel); gtk_widget_show(spdlabel); adj4 = gtk_adjustment_new(0.0,0.0,31.0,1.0,1.0,1.0); gtk_signal_connect(GTK_OBJECT(adj4), "value_changed", GTK_SIGNAL_FUNC(sectors_changed), spdlabel); scale = gtk_hscale_new(GTK_ADJUSTMENT (adj4)); gtk_scale_set_value_pos (GTK_SCALE(scale), GTK_POS_LEFT); gtk_scale_set_digits(GTK_SCALE(scale),0); gtk_scale_set_draw_value(GTK_SCALE(scale),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),scale,5,8,3,4); gtk_adjustment_set_value(GTK_ADJUSTMENT(adj4), (gfloat)setupdata.audioread_overlap+0.1); gtk_widget_show(scale); define_tooltip(scale,help(15)); l1 = rightjust_gtk_label_new(text(35)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,4,5); gtk_widget_show(l1); f1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN); gtk_container_border_width(GTK_CONTAINER(f1),3); gtk_table_attach_defaults(GTK_TABLE(tbl),f1,4,5,4,5); gtk_widget_show(f1); spdlabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(f1),spdlabel); gtk_widget_show(spdlabel); adj5 = gtk_adjustment_new(0.0,0.0,151.0,1.0,1.0,1.0); gtk_signal_connect(GTK_OBJECT(adj5), "value_changed", GTK_SIGNAL_FUNC(sectors2_changed), spdlabel); scale = gtk_hscale_new(GTK_ADJUSTMENT (adj5)); gtk_scale_set_value_pos (GTK_SCALE(scale), GTK_POS_LEFT); gtk_scale_set_digits(GTK_SCALE(scale),0); gtk_scale_set_draw_value(GTK_SCALE(scale),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),scale,5,8,4,5); gtk_adjustment_set_value(GTK_ADJUSTMENT(adj5), (gfloat)setupdata.audioread_sectorburst+0.1); gtk_widget_show(scale); define_tooltip(scale,help(16));}/* check if the filesystem-device is already in use of another image-path. return 1 if yes, 0 if not. returns also the other image-path in busypath. return -1 if not yet any path was updated */gint fs_in_use(GtkCList *clist, gchar *fs, gchar *busypath) {gint i;gchar tmp[MAXLINE];gchar *mnt;gchar *data[2]; for (i = 0; i < clist->rows; i++) { mnt = (gchar *)gtk_clist_get_row_data(clist,i); if (mnt == NULL) { return -1; } strcpy(tmp,mnt); if (strcmp(tmp,fs) == 0) { if (busypath != NULL) { gtk_clist_get_text(clist,i,0,data); strcpy(busypath,data[0]); } return 1; } } return 0;}/* check if the filesystem-device is already in use of another image-path. Skip the row "skiprow". return 1 if hit found */ gint fs_in_use2(GtkCList *clist, gchar *fs, gint skiprow) {gint i;gchar *mnt; for (i = 0; i < clist->rows; i++) { mnt = (gchar *)gtk_clist_get_row_data(clist,i); if (mnt == NULL) { /* ignore not updated lines */ continue; } if (i == skiprow) { /* ignore the row marked to skip */ continue; } if (strcmp(mnt,fs) == 0) { /* we found a match */ return 1; } } return 0;}/* callbacks for hd-setup-menu */void entry_imagepath_callback(GtkWidget *widget, GtkCList *clist) {gchar dir[MAXLINE];gchar *data[2];gchar tmp[MAXLINE];gchar tmp2[MAXLINE];gchar fs[MAXLINE];gint free;gint row;gint fsuse; strcpy(dir,gtk_entry_get_text(GTK_ENTRY(clist_entry))); check_tilde(dir); gtk_entry_set_text(GTK_ENTRY(clist_entry), dir); /* valid directory? */ if (is_directory(dir) == 0) { show_dialog(ICO_INFO,text(78),T_OK,NULL,NULL,0); return; } /* now run update to get all partitions */ gtk_button_clicked(GTK_BUTTON(updatebutton)); /* last character a /? remove */ if (dir[strlen(dir)-1] == '/') { dir[strlen(dir)-1] = '\0'; } free = get_free_space(dir,fs); /* now check if this directory is on a filesystem which you already added */ fsuse = fs_in_use(clist,fs,tmp); if (fsuse == 1) { g_snprintf(tmp2,MAXLINE,text(79),tmp); show_dialog(ICO_WARN,tmp2,T_OK,NULL,NULL,0); return; } else if (fsuse == -1) { /* no updated sizes yet - press update first */ show_dialog(ICO_INFO,text(80),T_OK,NULL,NULL,0); return; } data[0] = dir; data[1] = "N.A."; if (free != -1) { convert_kbytes2mbminstring(free,tmp); data[1] = tmp; } row = gtk_clist_append(clist,data); /* save the filesystem-device into row-data */ gtk_clist_set_row_data(clist,row,g_strdup(fs)); gtk_entry_set_text(GTK_ENTRY(clist_entry),""); /* now update again to have all registered paths updated */ gtk_button_clicked(GTK_BUTTON(updatebutton));}void button_imagepath_callback(GtkWidget *widget, gpointer data) {gchar tmp[MAXLINE]; show_dir_tree(tmp); if (strcmp(tmp,"") != 0) { gtk_entry_set_text(GTK_ENTRY(clist_entry),tmp); }}void update_imagepath_callback(GtkWidget *widget, GtkCList *clist) {gchar *data[2];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -