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

📄 otgmsapp.c

📁 linux下的usb开发
💻 C
📖 第 1 页 / 共 3 页
字号:
	else		addlist_otgapp("OTG Disks not available, so no point selecting this Disk\n ");}static void menudest_response (gchar *string){	if(mount_flag==1)	{		if(strncmp(string,"Local Disk",strlen("Local Disk")) != 0)  //Remote Disk is selcted		  sprintf(fnamebuffer_destdisk, "%s/",RMT_OTG_DISK);		else		  sprintf(fnamebuffer_destdisk, "%s/",LOCAL_OTG_DISK);		gtk_entry_set_text (GTK_ENTRY (entry_destdisk), fnamebuffer_destdisk);	}	else		addlist_otgapp("OTG Disks not available, so no point selecting this Disk\n ");}static voidotg_clicked_filesel_sourcedisk (GtkButton   *button,		  gpointer   data){	if(mount_flag==1)	{		file_selection_sourcedisk();	}	else		addlist_otgapp("OTG device is not available, so cannot select the file in the Source Disk\n ");		}static voidotg_clicked_filesel_destdisk (GtkButton   *button,		  gpointer   data){	if(mount_flag==1)			file_selection_destdisk();	else		addlist_otgapp("OTG device is not available, so cannot select the file in Destination disk\n ");}int main( int argc,          char *argv[] ){	GtkWidget *window;	GtkWidget *box1;	GtkWidget *statusbox;	GtkWidget *frame;	GtkWidget *bbox;	GtkWidget *hbox1;	GtkWidget *label11;	GtkWidget *hbox2;	GtkWidget *label21;	GtkWidget *button21;	GtkWidget *button22;	GtkWidget *boxa;	GtkWidget *vbox3;	GtkWidget *hbox3;	GtkWidget *button31;	GtkWidget *arrow31;	GtkWidget *button32;	GtkWidget *button33;	GtkWidget *button34;	GtkWidget *vbox5;	GtkWidget *vbox4;	GtkWidget *hbox4;	GtkWidget *button41;	GtkWidget *arrow41;	GtkWidget *button44;	GtkWidget *menu;	GtkWidget *menu_bar;	GtkWidget *root_menu;	GtkWidget *menu_items;						 	GdkColormap *cmap;	GtkWidget *button;	long	flags;   	otgfsm_fd = open(OTG_FSM_FILE, O_RDONLY);	if(otgfsm_fd < 0) {		printf("Error in opening file: %s\n",OTG_FSM_FILE);		exit(0);	}	gtk_init (&argc, &argv); 	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);	gtk_widget_set_usize (window, 500, 540);	gtk_window_set_policy (GTK_WINDOW(window), FALSE, FALSE, TRUE);  	gtk_signal_connect (GTK_OBJECT (window), "destroy",			  GTK_SIGNAL_FUNC(close_otgapp),			  NULL);	gtk_window_set_title (GTK_WINDOW (window), "OTG Test Application");	gtk_container_set_border_width (GTK_CONTAINER (window), 0);	box1 = gtk_vbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (box1), 5);	gtk_container_add (GTK_CONTAINER (window), box1);	/* show the different menu items here */	/* An option menu to show the status of 1362 */	frame = gtk_frame_new("ISP1362 Status");	gtk_box_pack_start(GTK_BOX(box1), frame, TRUE, TRUE, 0);	hbox1 = gtk_hbox_new(FALSE, DEF_PAD);	gtk_container_set_border_width (GTK_CONTAINER (hbox1), DEF_PAD_SMALL);	gtk_container_add (GTK_CONTAINER(frame), hbox1);	label11 = gtk_label_new ("ISP1362 is used as:");	gtk_box_pack_start (GTK_BOX (hbox1), label11, FALSE, FALSE,DEF_PAD);	isp1362statuslabel = gtk_label_new ("HOST");	//Sub: change the text color as well 	gtk_box_pack_start (GTK_BOX (hbox1), isp1362statuslabel, FALSE, FALSE, 0);	/* Menu to show the 1362 mode change */	frame = gtk_frame_new("ISP1362 Change Mode");	gtk_box_pack_start(GTK_BOX(box1), frame, TRUE, TRUE, 0);	hbox2 = gtk_hbox_new(FALSE, DEF_PAD);	gtk_container_set_border_width (GTK_CONTAINER (hbox2), DEF_PAD_SMALL);	gtk_container_add (GTK_CONTAINER(frame), hbox2);	label21 = gtk_label_new ("ISP1362 Change Mode:");	gtk_box_pack_start (GTK_BOX (hbox2), label21, FALSE, FALSE, DEF_PAD);	button21 = gtk_button_new_with_label (" IDLE ");    	gtk_signal_connect_object (GTK_OBJECT (button21), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_idle),				 NULL);	gtk_box_pack_start (GTK_BOX (hbox2), button21, FALSE, FALSE, 0);	button22 = gtk_button_new_with_label (" HOST ");	gtk_signal_connect_object (GTK_OBJECT (button22), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_host),				 NULL );	gtk_box_pack_start (GTK_BOX (hbox2), button22, FALSE, FALSE, 0);	//Peripheral Button	/*  button23 = gtk_button_new_with_label (" PERIPHERAL ");	gtk_signal_connect (GTK_OBJECT (button23), "clicked",			  GTK_SIGNAL_FUNC (otg_clicked_peripheral), NULL);	gtk_box_pack_start (GTK_BOX (hbox2), button23, FALSE, FALSE, 0);	*/	/* Create a file selection widget */	frame = gtk_frame_new("ISP1362 File Transfer Menu");	gtk_box_pack_start(GTK_BOX(box1), frame, TRUE, TRUE, 0);	boxa = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (boxa), 5);	gtk_container_add (GTK_CONTAINER (frame), boxa);	//Create Source Disk File selection widget	frame = gtk_frame_new("Source Disk");	gtk_box_pack_start(GTK_BOX(boxa), frame, TRUE, TRUE, 0);	vbox3 = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (vbox3), DEF_PAD_SMALL);	gtk_container_add (GTK_CONTAINER(frame), vbox3);	//Menu Item	menu = gtk_menu_new();	menu_items = gtk_menu_item_new_with_label("Local Disk");	gtk_menu_append(GTK_MENU (menu), menu_items);	gtk_signal_connect_object(GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC(menusource_response), (gpointer) g_strdup("Local Disk"));	menu_items = gtk_menu_item_new_with_label("Remote Disk");	gtk_menu_append(GTK_MENU (menu), menu_items);	gtk_signal_connect_object(GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC(menusource_response), (gpointer) g_strdup("Remote Disk"));	gtk_widget_show(menu_items);	root_menu = gtk_menu_item_new_with_label("  Select Disk  ");	gtk_widget_show(root_menu);	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox3), frame, TRUE, FALSE, 0);	hbox3 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox3), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox3);	gtk_menu_item_set_submenu(GTK_MENU_ITEM (root_menu), menu);	menu_bar = gtk_menu_bar_new();	gtk_box_pack_start(GTK_BOX(hbox3), menu_bar, TRUE, FALSE, 2);	gtk_widget_show(menu_bar);	gtk_menu_bar_append(GTK_MENU_BAR (menu_bar), root_menu);	//Source File selection	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox3), frame, TRUE, TRUE, 5);	hbox3 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox3), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox3);	entry_sourcedisk = gtk_entry_new ();	gtk_entry_set_max_length (GTK_ENTRY (entry_sourcedisk), 100);	gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), "Local Disk not Available");	gtk_box_pack_start (GTK_BOX (hbox3), entry_sourcedisk, TRUE, TRUE, 0);	//gtk_widget_show (entry_sourcedisk);	button31 = gtk_button_new();	arrow31  = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);	gtk_container_add (GTK_CONTAINER(button31), arrow31);    	gtk_signal_connect_object (GTK_OBJECT (button31), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_filesel_sourcedisk),				 NULL);	gtk_box_pack_start (GTK_BOX (hbox3), button31, FALSE, FALSE, 0);	//DELETE Button	  	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox3), frame, TRUE, FALSE, 0);	hbox3 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox3), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox3);	button34 = gtk_button_new_with_label ("   DELETE    ");    	gtk_signal_connect_object (GTK_OBJECT (button34), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_sourcedelete),				 NULL);	gtk_box_pack_start (GTK_BOX (hbox3), button34, TRUE, FALSE, 2);	//Create Operations widget	frame = gtk_frame_new(NULL);	gtk_box_pack_start(GTK_BOX(boxa), frame, TRUE, TRUE, 0);	vbox5 = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (vbox5), DEF_PAD_SMALL);	gtk_container_add (GTK_CONTAINER(frame), vbox5);	button32 = gtk_button_new_with_label (" COPY  ");    	gtk_signal_connect_object (GTK_OBJECT (button32), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_copy),				 NULL);	gtk_box_pack_start (GTK_BOX (vbox5), button32, FALSE, FALSE, DEF_PAD);	button33 = gtk_button_new_with_label (" MOVE  ");    	gtk_signal_connect_object (GTK_OBJECT (button33), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_move),				 NULL);	gtk_box_pack_start (GTK_BOX (vbox5), button33, FALSE, FALSE, DEF_PAD);	//Create Destination File selection widget	frame = gtk_frame_new("Destination Disk");	gtk_box_pack_start(GTK_BOX(boxa), frame, TRUE, TRUE, 0);	vbox4 = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (vbox4), DEF_PAD_SMALL);	gtk_container_add (GTK_CONTAINER(frame), vbox4);	//Menu Item	menu = gtk_menu_new();	menu_items = gtk_menu_item_new_with_label("Local Disk");	gtk_menu_append(GTK_MENU (menu), menu_items);	gtk_signal_connect_object(GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC(menudest_response), (gpointer) g_strdup("Local Disk"));	menu_items = gtk_menu_item_new_with_label("Remote Disk");	gtk_menu_append(GTK_MENU (menu), menu_items);	gtk_signal_connect_object(GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC(menudest_response), (gpointer) g_strdup("Remote Disk"));	gtk_widget_show(menu_items);	root_menu = gtk_menu_item_new_with_label("  Select Disk  ");	gtk_widget_show(root_menu);	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox4), frame, TRUE, FALSE, 0);	hbox4 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox4), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox4);	gtk_menu_item_set_submenu(GTK_MENU_ITEM (root_menu), menu);	menu_bar = gtk_menu_bar_new();	gtk_box_pack_start(GTK_BOX(hbox4), menu_bar, TRUE, FALSE, 2);	gtk_widget_show(menu_bar);	gtk_menu_bar_append(GTK_MENU_BAR (menu_bar), root_menu);	//Dest File selection	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox4), frame, TRUE, TRUE, 5);	hbox4 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox4), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox4);	entry_destdisk = gtk_entry_new ();	gtk_entry_set_max_length (GTK_ENTRY (entry_destdisk), 100);	gtk_entry_set_text (GTK_ENTRY (entry_destdisk), "Remote Disk not Available");	gtk_box_pack_start (GTK_BOX (hbox4), entry_destdisk, TRUE, TRUE, 0);	//gtk_widget_show (entry_sourcedisk);	button41 = gtk_button_new();	arrow41  = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);	gtk_container_add (GTK_CONTAINER(button41), arrow41);    	gtk_signal_connect_object (GTK_OBJECT (button41), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_filesel_destdisk),				 NULL);	gtk_box_pack_start (GTK_BOX (hbox4), button41, FALSE, FALSE, 0);	//Dest DELETE Button	  	frame = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME (frame), GTK_SHADOW_NONE);	gtk_box_pack_start(GTK_BOX(vbox4), frame, TRUE, FALSE, 0);	hbox4 = gtk_hbox_new (FALSE, 0);	gtk_container_set_border_width (GTK_CONTAINER (hbox4), 0);	gtk_container_add (GTK_CONTAINER (frame), hbox4);	button44 = gtk_button_new_with_label ("   DELETE    ");    	gtk_signal_connect_object (GTK_OBJECT (button44), "clicked",				 GTK_SIGNAL_FUNC (otg_clicked_destdelete),				 NULL);	gtk_box_pack_start (GTK_BOX (hbox4), button44, TRUE, FALSE, 2);	cmap = gdk_colormap_get_system();	colorarray[0].red = 0xffff;	colorarray[0].green = 0;	colorarray[0].blue = 0;	if (!gdk_color_alloc(cmap, &colorarray[0])) {		g_error("couldn't allocate red color");	}	colorarray[1].red = 0;	colorarray[1].green = 0xffff;	colorarray[1].blue = 0;	if (!gdk_color_alloc(cmap, &colorarray[1])) {		g_error("couldn't allocate blue color");	}	colorarray[2].red = 0;	colorarray[2].green = 0;	colorarray[2].blue = 0xffff;	if (!gdk_color_alloc(cmap, &colorarray[2])) {		g_error("couldn't allocate green color");	}	/* Create the Status box */	frame = gtk_frame_new("Status pad");	gtk_box_pack_start(GTK_BOX(box1), frame, TRUE, TRUE, 0);	statusbox = gtk_vbox_new(FALSE, DEF_PAD);	gtk_container_add (GTK_CONTAINER(frame), statusbox);	//  gtk_widget_show (statusbox);	scrolled_window = create_text ();	gtk_box_pack_start (GTK_BOX (statusbox), scrolled_window, 	TRUE, TRUE, 0);	bbox = gtk_hbutton_box_new ();	gtk_box_pack_start (GTK_BOX (box1), bbox, FALSE, FALSE, 0);	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);	button = gtk_button_new_with_label ("Close");	gtk_signal_connect (GTK_OBJECT (button), "clicked", 			  GTK_SIGNAL_FUNC (close_otgapp), 			  NULL);	gtk_container_add (GTK_CONTAINER (bbox), button);	GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);	gtk_widget_grab_default (button);	gtk_widget_show_all (window);  	if(otgfsm_fd > 0) {		fcntl(otgfsm_fd, F_SETOWN, getpid());		flags = fcntl(otgfsm_fd, F_GETFL);		fcntl(otgfsm_fd, F_SETFL, (flags|FASYNC));		get_otg_info.state = OTG_INV_STATE;		ioctl(otgfsm_fd, OTG_IOC_GET_STATE, &get_otg_info);		signal(SIGIO, &sig_handler);		if((shmid = shmget(SHM_KEY, sizeof(shm_struct_t), IPC_CREAT|0666)) < 0) {			printf("child error in shmget\n");			addlist_otgapp( "child error in shmget\n");		}		if((shm = shmat(shmid, NULL, 0)) == (shm_struct_t*)-1){			printf("child error in attaching shm\n");			addlist_otgapp( "child error in attaching shm\n");		}		shm->signal_count = 0;		shm->signal = 0;		shm->flag = 0;		ioctl(otgfsm_fd, OTG_IOC_GET_STATE, &get_otg_info);		if( (mount_flag == 0) && 		( get_otg_info.state == OTG_A_HOST || 		  get_otg_info.state == OTG_B_HOST ) &&			get_otg_info.status_code == OTG_STATUS_ENUM_SUCCESS) {			mount_device();			if(mount_flag==1)			{				sprintf(fnamebuffer_sourcedisk,"%s/",LOCAL_OTG_DISK);  				gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), fnamebuffer_sourcedisk);				sprintf(fnamebuffer_destdisk,"%s/",RMT_OTG_DISK);  				gtk_entry_set_text (GTK_ENTRY (entry_destdisk), fnamebuffer_destdisk);			}			else			{				gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), "Local Disk not Available");				gtk_entry_set_text (GTK_ENTRY (entry_destdisk), "Remote Disk not Available");			}					}		display_current_state();	}  gtk_main ();  return(0);       }/* code-end */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -