2012-06-03 15:48:14 +00:00
|
|
|
#ifndef __MDFN_CDROMFILE_H
|
|
|
|
#define __MDFN_CDROMFILE_H
|
|
|
|
|
2020-10-03 10:40:06 +00:00
|
|
|
#include <stdint.h>
|
2020-10-04 14:43:04 +00:00
|
|
|
#include <string>
|
2012-06-03 15:48:14 +00:00
|
|
|
|
|
|
|
#include "CDUtility.h"
|
|
|
|
|
|
|
|
class CDAccess
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
CDAccess();
|
|
|
|
virtual ~CDAccess();
|
|
|
|
|
2016-08-14 15:16:18 +00:00
|
|
|
virtual bool Read_Raw_Sector(uint8_t *buf, int32_t lba) = 0;
|
2012-06-03 15:48:14 +00:00
|
|
|
|
2016-08-14 09:57:54 +00:00
|
|
|
// Returns false if the read wouldn't be "fast"(i.e. reading from a disk),
|
|
|
|
// or if the read can't be done in a thread-safe re-entrant manner.
|
|
|
|
//
|
|
|
|
// Writes 96 bytes into pwbuf, and returns 'true' otherwise.
|
2016-08-14 12:21:22 +00:00
|
|
|
virtual bool Fast_Read_Raw_PW_TSRE(uint8_t* pwbuf, int32_t lba) = 0;
|
2013-09-08 11:41:01 +00:00
|
|
|
|
2016-08-14 15:16:18 +00:00
|
|
|
virtual bool Read_TOC(TOC *toc) = 0;
|
2013-09-08 11:41:01 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
CDAccess(const CDAccess&); // No copy constructor.
|
|
|
|
CDAccess& operator=(const CDAccess&); // No assignment operator.
|
2012-06-03 15:48:14 +00:00
|
|
|
};
|
|
|
|
|
2016-08-14 09:57:54 +00:00
|
|
|
CDAccess* CDAccess_Open(const std::string& path, bool image_memcache);
|
2012-06-03 15:48:14 +00:00
|
|
|
|
|
|
|
#endif
|