handle user input
This commit is contained in:
@ -31,7 +31,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Logic
|
// Logic
|
||||||
// #define DRYRUN // don't touch the drives
|
#define DRYRUN // don't touch the drives
|
||||||
#define FROZEN_ALERT // show alert if drive is frozen
|
#define FROZEN_ALERT // show alert if drive is frozen
|
||||||
#define ZERO_CHECK // check drive after shred if all bytes are zero, show alert if this fails
|
#define ZERO_CHECK // check drive after shred if all bytes are zero, show alert if this fails
|
||||||
|
|
||||||
@ -90,6 +90,8 @@ private:
|
|||||||
static void filterInvalidDrives(list<Drive> *plistDrives);
|
static void filterInvalidDrives(list<Drive> *plistDrives);
|
||||||
static void filterNewDrives(list<Drive> *plistOldDrives, list<Drive> *plistNewDrives);
|
static void filterNewDrives(list<Drive> *plistOldDrives, list<Drive> *plistNewDrives);
|
||||||
static void addSMARTData(list<Drive> *plistDrives);
|
static void addSMARTData(list<Drive> *plistDrives);
|
||||||
|
static void printAllDrives(list<Drive> *plistDrives);
|
||||||
|
static void printDrive(Drive *const pDrive);
|
||||||
static void ThreadScanDevices();
|
static void ThreadScanDevices();
|
||||||
static void ThreadUserInput();
|
static void ThreadUserInput();
|
||||||
static void ThreadShred(Drive *const pDrive);
|
static void ThreadShred(Drive *const pDrive);
|
||||||
|
|||||||
@ -216,12 +216,59 @@ void reHDD::ThreadUserInput()
|
|||||||
sleep(5); // sleep 5 sec
|
sleep(5); // sleep 5 sec
|
||||||
std::exit(1); // Terminates main, doesn't wait for threads
|
std::exit(1); // Terminates main, doesn't wait for threads
|
||||||
break;
|
break;
|
||||||
|
case TUI::UserInput::Print:
|
||||||
|
// cout << "Print" << endl;
|
||||||
|
Logger::logThis()->info("User print single");
|
||||||
|
if (tmpSelectedDrive != nullptr)
|
||||||
|
{
|
||||||
|
// printDrive(tmpSelectedDrive);
|
||||||
|
}
|
||||||
|
// ui->updateTUI(&listDrives, u16SelectedEntry);
|
||||||
|
break;
|
||||||
|
case TUI::UserInput::PrintAll:
|
||||||
|
// cout << "PrintAll" << endl;
|
||||||
|
Logger::logThis()->info("User print all");
|
||||||
|
// printAllDrives(&listDrives);
|
||||||
|
// ui->updateTUI(&listDrives, u16SelectedEntry);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief start shred for all drives
|
||||||
|
* \param pointer of list <Drive>* plistDrives
|
||||||
|
* \return void
|
||||||
|
*/
|
||||||
|
void reHDD::printAllDrives(list<Drive> *plistDrives)
|
||||||
|
{
|
||||||
|
list<Drive>::iterator it;
|
||||||
|
mxDrives.lock();
|
||||||
|
for (it = plistDrives->begin(); it != plistDrives->end(); ++it)
|
||||||
|
{
|
||||||
|
Drive *pTmpDrive = iterator_to_pointer<Drive, std::list<Drive>::iterator>(it);
|
||||||
|
printDrive(pTmpDrive);
|
||||||
|
}
|
||||||
|
mxDrives.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
void reHDD::printDrive(Drive *const pDrive)
|
||||||
|
{
|
||||||
|
if (pDrive->bWasShredded)
|
||||||
|
{
|
||||||
|
#ifdef ZERO_CHECK
|
||||||
|
if (pDrive->bWasChecked && (pDrive->u32DriveChecksumAfterShredding != 0U))
|
||||||
|
{
|
||||||
|
return; // Drive was shredded&checked but checksum failed, don't print label
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
Logger::logThis()->info("User print for: " + pDrive->getModelName() + "-" + pDrive->getSerial());
|
||||||
|
// TODO: Trigger printer for this drive
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void reHDD::ThreadShred(Drive *const pDrive)
|
void reHDD::ThreadShred(Drive *const pDrive)
|
||||||
{
|
{
|
||||||
if (pDrive != nullptr)
|
if (pDrive != nullptr)
|
||||||
|
|||||||
Reference in New Issue
Block a user