📄 otgmsapp.c
字号:
if(fp>0) fclose(fp);
else
{
sprintf(printbuffer, "Selected file %s does NOT exists\n", filename);
addlist_otgapp(printbuffer);
}
if( (strncmp(filename,otg_local_disk,strlen(otg_local_disk)) != 0 ) &&
(strncmp(filename,otg_rmt_disk,strlen(otg_rmt_disk)) != 0 ) ) {
sprintf(printbuffer, "%s is not from OTG disk, use normal cp Command \n", filename);
addlist_otgapp(printbuffer);
goto RET1 ;
}
else if(fp>0)
destfile_select=1;
addlist_otgapp("Destination file selection is okay\n");
gtk_entry_set_text (GTK_ENTRY (entry_destdisk), filename);
RET1:
gtk_widget_destroy (GTK_WIDGET (fs));
}
void
file_selection_sourcedisk (void)
{
static GtkWidget *window = NULL;
if (!window)
{
window = gtk_file_selection_new ("ISP1362 SourceDisk File selection");
gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (window));
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_MOUSE);
gtk_file_selection_set_filename(GTK_FILE_SELECTION (window), fnamebuffer_sourcedisk);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC(gtk_widget_destroyed),
&window);
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (window)->ok_button),
"clicked", GTK_SIGNAL_FUNC(file_selection_ok_source),
window);
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (window)->cancel_button),
"clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy),
GTK_OBJECT (window));
}
if (!GTK_WIDGET_VISIBLE (window))
gtk_widget_show (window);
else
gtk_widget_destroy (window);
}
void
file_selection_destdisk (void)
{
static GtkWidget *window = NULL;
if (!window)
{
window = gtk_file_selection_new ("ISP1362 DestinationDisk File selection");
gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (window));
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_MOUSE);
gtk_file_selection_set_filename(GTK_FILE_SELECTION (window), fnamebuffer_destdisk);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC(gtk_widget_destroyed),
&window);
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (window)->ok_button),
"clicked", GTK_SIGNAL_FUNC(file_selection_ok_dest),
window);
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (window)->cancel_button),
"clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy),
GTK_OBJECT (window));
}
if (!GTK_WIDGET_VISIBLE (window))
gtk_widget_show (window);
else
gtk_widget_destroy (window);
}
static void
otg_clicked_idle (GtkButton *button,
gpointer data)
{
// unmount the disk
umount_device();
otgtool_idle(otgfsm_fd, &get_otg_info, otgmsapp_display);
display_current_state();
if(get_otg_info.state == OTG_B_IDLE) {
sprintf(printbuffer, "ISP1362 has gone into B-Idle state \n");
addlist_otgapp(printbuffer);
} else if(get_otg_info.state == OTG_A_IDLE) {
sprintf(printbuffer, "ISP1362 has gone into A-Idle state \n");
addlist_otgapp(printbuffer);
}
}
static void
otg_clicked_host (GtkButton *button,
gpointer data)
{
otgtool_host(otgfsm_fd, &get_otg_info, otgmsapp_display);
display_current_state();
// add code to mount the disk if device is enumerated.
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");
}
}
}
static void
otg_clicked_copy (GtkButton *button,
gpointer data)
{
gchar cppointer[200];
gchar* filename;
gchar* filenamedest;
gint filenamesize=0, filenamedestsize=0;
int result;
if(sourcefile_select==1)
{
filename = gtk_editable_get_chars (GTK_EDITABLE (entry_sourcedisk), 0, -1);
filenamesize = gtk_editable_get_position (GTK_EDITABLE (entry_sourcedisk));
memcpy(cppointer, "cp -f ", 6);
memcpy(cppointer+6, filename, filenamesize );
memcpy(cppointer+6+filenamesize, " ", 1);
filenamedest = gtk_editable_get_chars (GTK_EDITABLE (entry_destdisk), 0, -1);
filenamedestsize = gtk_editable_get_position (GTK_EDITABLE (entry_destdisk));
memcpy(cppointer+6+filenamesize+1, filenamedest,filenamedestsize);
memcpy(cppointer+6+filenamesize+1+filenamedestsize , "\n",2);
// g_print ("OTG:%s\n",cppointer);
result = system(cppointer );
if(result == 0)
{
system("sync");
sprintf(printbuffer, "Copying of %s into %s Successful\n",filename, filenamedest);
addlist_otgapp(printbuffer);
}
else
{
sprintf(printbuffer, "Copying of %s into %s NOT successful\n",filename, filenamedest);
addlist_otgapp(printbuffer);
}
g_free(filename);
g_free(filenamedest);
}
else
addlist_otgapp("Source file is not selected to copy\n");
}
static void
otg_clicked_move (GtkButton *button,
gpointer data)
{
gchar cppointer[200];
gchar* filename;
gchar* filenamedest;
gint filenamesize=0, filenamedestsize=0;
int result;
if(sourcefile_select==1)
{
filename = gtk_editable_get_chars (GTK_EDITABLE (entry_sourcedisk), 0, -1);
filenamesize = gtk_editable_get_position (GTK_EDITABLE (entry_sourcedisk));
memcpy(cppointer, "mv -f ", 6);
memcpy(cppointer+6, filename, filenamesize );
memcpy(cppointer+6+filenamesize, " ", 1);
filenamedest = gtk_editable_get_chars (GTK_EDITABLE (entry_destdisk), 0, -1);
filenamedestsize = gtk_editable_get_position (GTK_EDITABLE (entry_destdisk));
memcpy(cppointer+6+filenamesize+1, filenamedest,filenamedestsize);
memcpy(cppointer+6+filenamesize+1+filenamedestsize , "\n",2);
//g_print ("OTG:%s\n",cppointer);
result = system(cppointer );
if(result == 0)
{
system("sync");
sprintf(printbuffer, "Moving of %s into %s Successful\n",filename, filenamedest);
addlist_otgapp(printbuffer);
while(filename[filenamesize-1] != '/')
filenamesize--;
filename[filenamesize] = '\0';
gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), filename);
sourcefile_select=0;
}
else
{
sprintf(printbuffer, "Moving of %s into %s NOT successful\n",filename, filenamedest);
addlist_otgapp(printbuffer);
}
g_free(filename);
g_free(filenamedest);
}
else
addlist_otgapp("Source file is not selected to move\n");
}
static void
otg_clicked_sourcedelete(GtkButton *button,
gpointer data)
{
gchar cppointer[200];
gchar* filename;
gint filenamesize=0;
int result;
if(sourcefile_select==1)
{
filename = gtk_editable_get_chars (GTK_EDITABLE (entry_sourcedisk), 0, -1);
filenamesize = gtk_editable_get_position (GTK_EDITABLE (entry_sourcedisk));
memcpy(cppointer, "rm ", 3);
memcpy(cppointer+3, filename, filenamesize );
memcpy(cppointer+3+filenamesize, " \n",3);
result = system(cppointer );
if(result == 0)
{
system("sync");
sprintf(printbuffer, "Deleting %s Successful\n",filename);
addlist_otgapp(printbuffer);
while(filename[filenamesize-1] != '/')
filenamesize--;
filename[filenamesize] = '\0';
gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), filename);
sourcefile_select=0;
}
else
{
sprintf(printbuffer, "Deleting %s NOT successful\n",filename);
addlist_otgapp(printbuffer);
}
g_free(filename);
}
else
addlist_otgapp("File is not selected to delete\n");
}
static void
otg_clicked_destdelete (GtkButton *button,
gpointer data)
{
gchar cppointer[200];
gchar* filename;
gint filenamesize=0;
int result;
if(destfile_select==1)
{
filename = gtk_editable_get_chars (GTK_EDITABLE (entry_destdisk), 0, -1);
filenamesize = gtk_editable_get_position (GTK_EDITABLE (entry_destdisk));
memcpy(cppointer, "rm ", 3);
memcpy(cppointer+3, filename, filenamesize );
memcpy(cppointer+3+filenamesize, " \n",3);
result = system(cppointer );
if(result == 0)
{
system("sync");
sprintf(printbuffer, "Deleting %s Successful\n",filename);
addlist_otgapp(printbuffer);
while(filename[filenamesize-1] != '/')
filenamesize--;
filename[filenamesize] = '\0';
gtk_entry_set_text (GTK_ENTRY (entry_destdisk), filename);
destfile_select=0;
}
else
{
sprintf(printbuffer, "Deleting %s NOT successful\n",filename);
addlist_otgapp(printbuffer);
}
g_free(filename);
}
else
addlist_otgapp("File is not selected to delete\n");
}
static void menusource_response (gchar *string)
{
if(mount_flag==1)
{
if(strncmp(string,"Local Disk",strlen("Local Disk")) != 0) //Remote Disk is selcted
sprintf(fnamebuffer_sourcedisk, "%s/",RMT_OTG_DISK);
else
sprintf(fnamebuffer_sourcedisk, "%s/",LOCAL_OTG_DISK);
gtk_entry_set_text (GTK_ENTRY (entry_sourcedisk), fnamebuffer_sourcedisk);
}
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 void
otg_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 void
otg_clicked_filesel_destdisk (GtkButton *button,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -