openshot-audio  0.1.4
Classes | Namespaces | Macros | Enumerations | Functions | Variables
juce_win32_AudioCDReader.cpp File Reference

Classes

struct  CDReaderHelpers::SCSI_PASS_THROUGH
 
struct  CDReaderHelpers::SCSI_PASS_THROUGH_DIRECT
 
struct  CDReaderHelpers::SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER
 
struct  CDReaderHelpers::SCSI_ADDRESS
 
struct  CDReaderHelpers::SRB_GDEVBlock
 
struct  CDReaderHelpers::SRB_ExecSCSICmd
 
struct  CDReaderHelpers::SRB
 
struct  CDReaderHelpers::TOCTRACK
 
struct  CDReaderHelpers::TOC
 
struct  CDReaderHelpers::CDDeviceDescription
 
class  CDReaderHelpers::CDReadBuffer
 
class  CDReaderHelpers::CDController
 
class  CDReaderHelpers::CDDeviceHandle
 
class  CDReaderHelpers::ControllerType1
 
class  CDReaderHelpers::ControllerType2
 
class  CDReaderHelpers::ControllerType3
 
class  CDReaderHelpers::ControllerType4
 
struct  CDReaderHelpers::CDDeviceWrapper
 

Namespaces

 CDReaderHelpers
 

Macros

#define FILE_ANY_ACCESS   0
 
#define FILE_READ_ACCESS   1
 
#define FILE_WRITE_ACCESS   2
 
#define METHOD_BUFFERED   0
 
#define IOCTL_SCSI_BASE   4
 
#define SCSI_IOCTL_DATA_OUT   0
 
#define SCSI_IOCTL_DATA_IN   1
 
#define SCSI_IOCTL_DATA_UNSPECIFIED   2
 
#define CTL_CODE2(DevType, Function, Method, Access)   (((DevType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
 
#define IOCTL_SCSI_PASS_THROUGH_DIRECT   CTL_CODE2( IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )
 
#define IOCTL_SCSI_GET_ADDRESS   CTL_CODE2( IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS )
 
#define SENSE_LEN   14
 
#define SRB_ENABLE_RESIDUAL_COUNT   0x04
 
#define SRB_DIR_IN   0x08
 
#define SRB_DIR_OUT   0x10
 
#define SRB_EVENT_NOTIFY   0x40
 
#define SC_HA_INQUIRY   0x00
 
#define SC_GET_DEV_TYPE   0x01
 
#define SC_EXEC_SCSI_CMD   0x02
 
#define SS_PENDING   0x00
 
#define SS_COMP   0x01
 
#define SS_ERR   0x04
 

Enumerations

enum  {
  CDReaderHelpers::READTYPE_ANY = 0, CDReaderHelpers::READTYPE_ATAPI1 = 1, CDReaderHelpers::READTYPE_ATAPI2 = 2, CDReaderHelpers::READTYPE_READ6 = 3,
  CDReaderHelpers::READTYPE_READ10 = 4, CDReaderHelpers::READTYPE_READ_D8 = 5, CDReaderHelpers::READTYPE_READ_D4 = 6, CDReaderHelpers::READTYPE_READ_D4_1 = 7,
  CDReaderHelpers::READTYPE_READ10_2 = 8
}
 

Functions

HANDLE CDReaderHelpers::createSCSIDeviceHandle (const char driveLetter)
 
void CDReaderHelpers::findCDDevices (Array< CDDeviceDescription > &list)
 
DWORD CDReaderHelpers::performScsiPassThroughCommand (SRB_ExecSCSICmd *const srb, const char driveLetter, HANDLE &deviceHandle, const bool retryOnFailure)
 
int CDReaderHelpers::getAddressOfTrack (const TOCTRACK &t) noexcept
 

Variables

const int CDReaderHelpers::samplesPerFrame = 44100 / 75
 
const int CDReaderHelpers::bytesPerFrame = samplesPerFrame * 4
 
const int CDReaderHelpers::framesPerIndexRead = 4
 

Macro Definition Documentation

◆ CTL_CODE2

#define CTL_CODE2 (   DevType,
  Function,
  Method,
  Access 
)    (((DevType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))

◆ FILE_ANY_ACCESS

#define FILE_ANY_ACCESS   0

◆ FILE_READ_ACCESS

#define FILE_READ_ACCESS   1

◆ FILE_WRITE_ACCESS

#define FILE_WRITE_ACCESS   2

◆ IOCTL_SCSI_BASE

#define IOCTL_SCSI_BASE   4

◆ IOCTL_SCSI_GET_ADDRESS

#define IOCTL_SCSI_GET_ADDRESS   CTL_CODE2( IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS )

◆ IOCTL_SCSI_PASS_THROUGH_DIRECT

#define IOCTL_SCSI_PASS_THROUGH_DIRECT   CTL_CODE2( IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )

◆ METHOD_BUFFERED

#define METHOD_BUFFERED   0

◆ SC_EXEC_SCSI_CMD

#define SC_EXEC_SCSI_CMD   0x02

◆ SC_GET_DEV_TYPE

#define SC_GET_DEV_TYPE   0x01

◆ SC_HA_INQUIRY

#define SC_HA_INQUIRY   0x00

◆ SCSI_IOCTL_DATA_IN

#define SCSI_IOCTL_DATA_IN   1

◆ SCSI_IOCTL_DATA_OUT

#define SCSI_IOCTL_DATA_OUT   0

◆ SCSI_IOCTL_DATA_UNSPECIFIED

#define SCSI_IOCTL_DATA_UNSPECIFIED   2

◆ SENSE_LEN

#define SENSE_LEN   14

◆ SRB_DIR_IN

#define SRB_DIR_IN   0x08

◆ SRB_DIR_OUT

#define SRB_DIR_OUT   0x10

◆ SRB_ENABLE_RESIDUAL_COUNT

#define SRB_ENABLE_RESIDUAL_COUNT   0x04

◆ SRB_EVENT_NOTIFY

#define SRB_EVENT_NOTIFY   0x40

◆ SS_COMP

#define SS_COMP   0x01

◆ SS_ERR

#define SS_ERR   0x04

◆ SS_PENDING

#define SS_PENDING   0x00