void VSCDeviceList::DiskTreeUpdated() { /* Delete all the disk */ QTreeWidgetItem *qtreewidgetitem = ui.treeWidget->topLevelItem(VSC_DEVICE_INDEX_DSIK); qDeleteAll(qtreewidgetitem->takeChildren()); VDBDiskStatus pStatus; gFactory->GetDiskStatus(pStatus); VDBDiskStatus::iterator it = pStatus.begin(); for(; it!=pStatus.end(); ++it) { astring strName = (*it).first; VdbDiskStatus diskStatus = (*it).second; s8 DiskTitle[1024]; memset(DiskTitle, 0, sizeof(DiskTitle)); sprintf(DiskTitle, " %lld%%", ((diskStatus.totalSize - diskStatus.freeSize)* 100)/diskStatus.totalSize); strName = diskStatus.path + DiskTitle; AddDisk(strName); } ui.treeWidget->topLevelItem(VSC_DEVICE_INDEX_DSIK)->setExpanded(true); }
void DM::DiskMaster::ProcessDetectInfo( DM_DETECT_INFO &di, BYTE task_code ) { DMDisk *disk = NULL; ULONGLONG size = 0; if ((task_code == kTaskUsb1Sata1Copy) || (task_code == kTaskUsb1Usb2Copy) || (task_code == kTaskUsb1Read)) { memcpy(&size, &di.usb1_num_lba, sizeof(di.usb1_num_lba)); if (size && di.usb1_block_size) { disk = new DMDisk(&ports[kUsb1], &di.usb1_id, size, di.usb1_block_size); if (disks[kUsb1] == NULL) AddDisk(disk, kUsb1); else { if (*disks[kUsb1] == *disk) delete disk; else { RemoveDisk(kUsb1); AddDisk(disk, kUsb1); } } } } if ((task_code == kTaskUsb1Usb2Copy) || (task_code == kTaskUsb2Read) || (task_code == kTaskUsb2_00_Erase) || (task_code == kTaskUsb2_FF_Erase) || (task_code == kTaskUsb2_Random_Erase)) { size = 0; memcpy(&size, &di.usb2_num_lba, sizeof(di.usb2_num_lba)); if (size && di.usb2_block_size) { disk = new DMDisk(&ports[kUsb2], &di.usb2_id, size, di.usb2_block_size); if (disks[kUsb2] == NULL) AddDisk(disk, kUsb2); else { if (*disks[kUsb2] == *disk) delete disk; else { RemoveDisk(kUsb2); AddDisk(disk, kUsb2); } } } } if ((task_code == kTaskUsb1Sata1Copy) || (task_code == kTaskSata1Read) || (task_code == kTaskSata1Verify) || (task_code == kTaskSata1_00_Erase) || (task_code == kTaskSata1_FF_Erase) || (task_code == kTaskSata1_Random_Erase)) { size = 0; memcpy(&size, &di.sata1_native_max, sizeof(di.sata1_native_max)); disk = new DMDisk(&ports[kSata1], &di.sata1_id, size); if (disk->Size() && disk->BlockSize()) { if (disks[kSata1] == NULL) AddDisk(disk, kSata1); else { if (*disks[kSata1] == *disk) delete disk; else { RemoveDisk(kSata1); AddDisk(disk, kSata1); } } } else delete disk; } }