DumpDVD/DumpDVD/Gui/DumpDVD.hpp

62 lines
1.1 KiB
C++

#ifndef _LI_DUMP_DVD_H
#define _LI_DUMP_DVD_H 1
#include <iostream>
#include <string>
#include <vector>
#include <thread>
#include <mutex>
#include "Renderer.hpp"
#include "DvdSpin/RenderDvdSpin.hpp"
#include "../Scsi/OpticalDrive.hpp"
#include "../Dvd/DvdRipper.hpp"
namespace Li::Gui {
class DumpDVD {
private:
bool keepPolling;
bool showDemoWindow;
bool imRippinIt; // dodododo do do!
std::mutex* lock;
int sectorsAtOnce;
bool decrypt;
bool discInserted;
int selectedDrive;
int selectedDriveSpeed;
char outputFile[0x8000];
std::vector<Li::Scsi::OpticalDrive*>* drivesList;
std::thread* pollDrives;
Li::Dvd::DvdRipper* dvdRipper;
DvdSpin::RenderDvdSpin* dvdSpin;
void pollDrivesThread();
void updateSpinTexture();
void freeOldDriveList();
void refreshDriveList();
std::string getDrivesStr();
void reset();
void startRip();
void endRipNow();
void endRipAndGoBackToMenu();
void showRipMenu();
void showStarting();
void showRippingStatus();
public:
Li::Scsi::OpticalDrive* GetCurrentSelectedDrive();
DumpDVD(Renderer* renderer);
~DumpDVD();
void RenderUI();
};
}
#endif