Exemplo n.º 1
0
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);

	
}
Exemplo n.º 2
0
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;
	}
}