home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pleasure 76
/
OTACD76.bin
/
archive
/
game
/
PsrSDK16a
/
PsrSDK16a.lzh
/
Include
/
CdAccess.h
next >
Wrap
C/C++ Source or Header
|
2000-07-06
|
7KB
|
191 lines
/*******************************************************************************
* *
* [CDアクセス機能ライブラリ] *
* *
* FILE NAME : CdAccess.h *
* *
* History | Comment Name *
* ------------------+-------------------------------------------------- *
* 2000.04.24 | 新規作成 ふぃろ *
* *
* (C) Copyright ふぃろ 2000. All rights reserved.*
*******************************************************************************/
#ifndef PSXMC_CDACCESS
#define PSXMC_CDACCESS
#ifndef CEXPORT
#define CEXPORT extern __declspec (dllexport)
#endif
#define SizeSECTOR 2048 // セクタサイズ
#define SizeSECTORFULL 2352 // ヘッダなどを含むセクタサイズ
typedef struct { // TOCエントリ -----------------------------------------
BYTE bTrackNo; // トラック番号
BYTE bAdr; // ADR : サブチャネルQに含まれる情報
// 0x00 モード情報なし
// 0x10 カレントポジションデータ
// 0x20 メディアカタログ番号
// 0x30 トラック国際標準録音コード
// コントロール .... DCBA 0 1
// A プリエンファシス なし あり
// B デジタルコピー 禁止 許可
// C トラック種別 Audio Data
// D チャンネル数 2 4
DWORD nBegin; // 開始セクタ
DWORD nNumSector; // セクタ数
} TOCENTRY, *LPTOCENTRY;
// CDドライブ数の取得 ----------------------------------
CEXPORT INT CdGetDriveNum(VOID);
// CDドライブ情報の取得 --------------------------------
CEXPORT BOOL CdGetDriveInfo(
INT iDriveNo, // (I) ドライブ番号
PINT piHost, // (O) ホストアダプタ番号 NULL可
PINT piTarget, // (O) ターゲットのSCSI ID NULL可
PINT piLun, // (O) 論理ユニット番号 NULL可
PSZ pszVendor, // (O) ベンダID NULL可
PSZ pszProduct, // (O) プロダクトID NULL可
PSZ pszRevision); // (O) プロダクト版数 NULL可
// CDドライブ状態のチェック ----------------------------
CEXPORT BOOL CdCheckDriveStat(
INT iDriveNo); // (I) ドライブ番号
// TOCの読み込み ---------------------------------------
CEXPORT INT CdReadToc(
INT iDriveNo, // (I) ドライブ番号
INT iNumBuff, // (I) TOC取得バッファ数
LPTOCENTRY lptoc); // (O) TOC
// トラックタイプの取得 --------------------------------
CEXPORT INT CdGetTrackType(
INT iDriveNo, // (I) ドライブ番号
LPTOCENTRY lptoc); // (I) TOCエントリ
enum { // トラックタイプ --------------------------------------
TrackUNKNOW, // エラー
TrackCDDA, // CD-DA
TrackMODE1, // CD-ROM Mode-1
TrackMODE2, // CD-ROM Mode-2
NumTRACKTYPE
} EnumTRACKTYPE;
// CDの回転速度の設定 ----------------------------------
CEXPORT BOOL CdSetSpinSpeed(
INT iDriveNo, // (I) ドライブ番号
INT iSpinSpeed); // (I) 読み取り速度(倍数) -1:最高速
// CDドライブ・キャパビリティの取得 --------------------
CEXPORT BOOL CdGetCapabilities(
INT iDriveNo, // (I) ドライブ番号
INT iGetType, // (I) 取得タイプ GetCapaXXXX
LPDWORD lpdwCapaFlags, // (O) キャパビリティフラグ
PINT piMaxReadSpeed, // (O) 最大読み取りスピード KB NULL可
PINT piMaxWriteSpeed);// (O) 最大書き込みスピード KBps NULL可
enum { // 取得タイプ - - - - - - - - - - - - - - - - -
GetCapaCURRENT, // カレント
GetCapaCHANGED, // 変更可能パラメータ
GetCapaDEFAULT, // デフォルトパラメータ
GetCapaSAVEPARA // セーブパラメータ
};
// CDドライブ・キャパビリティ - - - - - - - - -
#define CapaMETHOD2 0x40000000 // Method2アドレッシングのパケット
// ライトされたディスクの読み込み
#define CapaCDRW_READ 0x20000000 // CD-RWメディアの読み込み
#define CapaCDR_READ 0x10000000 // CD-Rメディアの読み込み
#define CapaTESTWRITE 0x04000000 // Test Writeをサポート (CD-R/RW)
#define CapaCDRW_WRITE 0x02000000 // CD-RWメディア書き込み
#define CapaCDR_WRITE 0x01000000 // CD-Rメディア書き込み
#define CapaMULTISESSION 0x00400000 // マルチセッションの読み込み
#define CapaMODE2_FORM1 0x00200000 // CD-ROM XA Mode2 Form1の読み込み
#define CapaMODE2_FORM2 0x00100000 // CD-ROM XA Mode2 Form2の読み込み
#define CapaDIGITALPORT2 0x00080000 // デジタル出力のポート2をサポート
#define CapaDIGITALPORT1 0x00040000 // デジタル出力のポート1をサポート
#define CapaCOMPOSITE 0x00020000 // オーディオとビデオデータストリーム
// の混合配送が可能
#define CapaAUDIOPLAY 0x00010000 // オーディオ再生と再生中のサブチャネ
// ル情報読み込みが可能
#define CapaREAD_BARCODE 0x00008000 // ReadBAR CODE識別コードの読み出し
#define CapaUPC 0x00004000 // UPC識別コードの読み出し
#define CapaISRC 0x00002000 // ISRC識別コードの読み出し
#define CapaC2_POINTERS 0x00001000 // C2エラーポインタをサポートし、
// READ CDコマンドでCDエラーポインタ
// とCDブロックエラーの転送をサポート
#define CapaRW_DE_INTERLEAVED 0x00000800 // R-Wサブチャネルのインターリーブが
// 分れ、エラー訂正されて戻す
#define CapaRW_SUPPORTED 0x00000400 // R-Wサブチャネルのひとまとまりのサ
// ブチャネルデータを転送するコマン
// ドをサポート
#define CapaDA_ACCURATE 0x00000200 // 拡張機能として連続したREAD CDコマ
// ンドを発行しても位置を見失うこと
// なくオーディオ位置を返すことが
// できる
#define CapaDA_COMMANDS 0x00000100 // READ CDコマンドを使用してオーディ
// オデータの読み出しが可能
#define CapaEJECT 0x00000008 // EJECTコマンドをサポートする
#define CapaPREVENT_JUMPER 0x00000004 // PREVENT/ALLOWジャンパの状態
#define CapaLOCK_STATE 0x00000002 // ロック状態
#define CapaLOCK 0x00000001 // PREVENT/ALLOWコマンドにより
// メディアのロックが可能
// メディアカタログ番号の取得 --------------------------
CEXPORT BOOL CdGetUpcEanCode(
INT iDriveNo, // (I) ドライブ番号
PBYTE pbUpcEanCode); // (O) メディアカタログ番号 len:15
// CD読み取り環境のオープン ----------------------------
CEXPORT HANDLE CdReadOpen(
INT iDriveNo, // (I) ドライブ番号
LPTOCENTRY lptoc, // (I) TOCエントリ NULL可
DWORD nBegin, // (I) 読み取り開始セクタ番号
DWORD nNumSector, // (I) 読み取りセクタ数
INT iSpinSpeed); // (I) 読み取り速度(倍数) -1:最高速
// CD読み取り環境のクローズ ----------------------------
CEXPORT BOOL CdReadClose(
HANDLE hCdRead); // (I) CD読み取りハンドル
// CD読み取り位置セクタの設定 --------------------------
CEXPORT DWORD CdSetReadPointer(
HANDLE hCdRead, // (I) CD読み取りハンドル
LONG lDistanceToMove,// (I) 読み取り位置移動量
DWORD dwMoveMethod); // (I) 移動開始点 FILE_XXXX
// セクタの読み取り ------------------------------------
CEXPORT PVOID CdReadSector(
HANDLE hCdRead, // (I) CD読み取りハンドル
PVOID pvBuffer); // (O) セクタ読み取りバッファ NULL可
// セクタ読み取りバッファの解放 ------------------------
CEXPORT BOOL CdUnlockReadBuffer(
HANDLE hCdRead, // (I) CD読み取りハンドル
PVOID pvBuffer); // (I) セクタ読み取りバッファ NULL:全セクタ
#endif