/* assumes cur_file is already pointing to proper file */ static void start_next_file() { printf("Starting next file: %s\n", cur_file->src_filename); struct stat s; if (stat(cur_file->src_filename, &s) != 0) { pz_error("Cannot stat %s\n", cur_file->src_filename); return; } /* If track is being transferred, get a new destination filename */ if (cur_file->src_track) { if (cur_file->dst_filename) { pz_error("Track shouldn't already have dst_filename\n"); abort_transfer(); return; } cur_file->dst_filename = (char *)malloc(256); char *dst_base = ((ipod_p)(trans_list_dst_ipod))->basePath; char *extension, *p; extension = (char*)ipod_extension_of(cur_file->src_filename,".mp3"); cur_file->dst_location = ipod_unique_track_location_wrapper(trans_list_dst_ipod, extension); strcpy(cur_file->dst_filename, dst_base); strcat(cur_file->dst_filename, cur_file->dst_location); while((p=strpbrk(cur_file->dst_filename,":"))!=NULL) *p='/'; /* convert ':'s to '/' */ } if (!cur_file->dst_filename) { pz_error("No destination filename given!\n"); abort_transfer(); return; } srcFile = fopen(cur_file->src_filename, "r"); if (!srcFile) { pz_error("Could not open %s for reading\n", cur_file->src_filename); abort_transfer(); return; } dstFile = fopen(cur_file->dst_filename, "w"); if (!dstFile) { pz_error("Could not open %s for writing\n", cur_file->dst_filename); fclose(srcFile); srcFile = NULL; abort_transfer(); return; } }
int transfer_widget_event (PzEvent *ev) { switch (ev->type) { case PZ_EVENT_BUTTON_DOWN: // if (ev->arg == PZ_BUTTON_ACTION) // pz_dialog("title", "no press", 2, 0, "but a", "but b"); // else if (ev->arg == PZ_BUTTON_MENU) { if (rip_status == STATUS_TRANSFERRING) { if (pz_dialog("Alert!", "Really abort transfer?", 2, 0, "No", "Yes") == 1) abort_transfer(); } else close_transfer(); //pz_close_window(ev->wid->win); } break; case PZ_EVENT_BUTTON_UP: //pz_close_window (ev->wid->win); break; case PZ_EVENT_DESTROY: // ttk_free_surface (image); // free (text); break; } return 0; }
static void do_copy() { unsigned long bytesRead,bytesWritten; bytesRead = fread(transfer_buffer,1,BUFFER_SIZE,srcFile); if (bytesRead==0) { pz_error("Zero bytes read!\n"); abort_transfer(); return; } bytesWritten = fwrite(transfer_buffer,1,bytesRead,dstFile); if (bytesRead != bytesWritten) { pz_error("bytesRead != bytesWritten!\n"); abort_transfer(); return; } file_bytes_transferred += bytesWritten; total_bytes_transferred += bytesWritten; return; }
void SPI::abort_all_transfers() { clear_transfer_buffer(); abort_transfer(); }