#ifndef _LI_OPTICAL_DRIVE_H
#define _LI_OPTICAL_DRIVE_H 1
#include <vector>
#include <iostream>
namespace Li::Scsi {
	class OpticalDrive {
	private:
		std::string drivePath;
		std::string volumeName;

		bool hasCss;
		std::byte* discKey;

		bool discInDrive;
		std::vector<uint32_t>* supportedSpeeds;
		uint32_t sectors;

		void getDriveInformation(std::string drv);
	public:
		OpticalDrive(std::string drv);
		~OpticalDrive();

		std::vector<uint32_t>* SupportedSpeeds();
		std::string DrivePath();
		std::string VolumeName();
		uint32_t Sectors();
		std::byte* DiscKey();
		bool HasCss();
		bool DiscInDrive();

		static std::vector<OpticalDrive*>* ListOpticalDrives();
	};

}
#endif