⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 4 页
字号:
				/* 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 + -