IOCDBlockStorageDevice.h [plain text]
#ifndef _IOCDBLOCKSTORAGEDEVICE_H
#define _IOCDBLOCKSTORAGEDEVICE_H
#include <IOKit/IOTypes.h>
#include <IOKit/storage/IOCDTypes.h>
#include <IOKit/storage/IOBlockStorageDevice.h>
#define kIOBlockStorageDeviceTypeCDROM "CDROM"
class IOMemoryDescriptor;
class IOCDBlockStorageDevice : public IOBlockStorageDevice {
OSDeclareAbstractStructors(IOCDBlockStorageDevice)
protected:
struct ExpansionData { };
ExpansionData * _expansionData;
public:
virtual bool init(OSDictionary * properties);
virtual IOReturn doAsyncReadCD(IOMemoryDescriptor *buffer,
UInt32 block,UInt32 nblks,
CDSectorArea sectorArea,
CDSectorType sectorType,
IOStorageCompletion completion) = 0;
virtual UInt32 getMediaType(void) = 0;
virtual IOReturn readISRC(UInt8 track,CDISRC isrc) = 0;
virtual IOReturn readMCN(CDMCN mcn) = 0;
virtual IOReturn readTOC(IOMemoryDescriptor * buffer) = 0;
virtual IOReturn audioPause(bool pause) = 0;
virtual IOReturn audioPlay(CDMSF timeStart,CDMSF timeStop) = 0;
virtual IOReturn audioScan(CDMSF timeStart,bool reverse) = 0;
virtual IOReturn audioStop() = 0;
virtual IOReturn getAudioStatus(CDAudioStatus *status) = 0;
virtual IOReturn getAudioVolume(UInt8 *leftVolume,UInt8 *rightVolume) = 0;
virtual IOReturn setAudioVolume(UInt8 leftVolume,UInt8 rightVolume) = 0;
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 0);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 1);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 2);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 3);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 4);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 5);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 6);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 7);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 8);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 9);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 10);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 11);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 12);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 13);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 14);
OSMetaClassDeclareReservedUnused(IOCDBlockStorageDevice, 15);
};
#endif