home *** CD-ROM | disk | FTP | other *** search
/ Pleasure 76 / OTACD76.bin / archive / game / PsrSDK16a / PsrSDK16a.lzh / Include / CdAccess.h next >
C/C++ Source or Header  |  2000-07-06  |  7KB  |  191 lines

  1. /*******************************************************************************
  2. *                                           *
  3. * [CDアクセス機能ライブラリ]                               *
  4. *                                           *
  5. *    FILE NAME    : CdAccess.h                            *
  6. *                                           *
  7. *    History        | Comment                Name           *
  8. *     ------------------+--------------------------------------------------    *
  9. *    2000.04.24    | 新規作成                ふぃろ           *
  10. *                                           *
  11. *                (C) Copyright ふぃろ 2000. All rights reserved.*
  12. *******************************************************************************/
  13.  
  14.  
  15. #ifndef PSXMC_CDACCESS
  16. #define PSXMC_CDACCESS
  17.  
  18. #ifndef CEXPORT
  19. #define CEXPORT    extern __declspec (dllexport)
  20. #endif
  21.  
  22.  
  23. #define SizeSECTOR    2048        // セクタサイズ
  24. #define SizeSECTORFULL    2352        // ヘッダなどを含むセクタサイズ
  25.  
  26.  
  27. typedef struct {    // TOCエントリ -----------------------------------------
  28.     BYTE        bTrackNo;    // トラック番号
  29.     BYTE        bAdr;        // ADR : サブチャネルQに含まれる情報
  30.                     //    0x00 モード情報なし
  31.                     //    0x10 カレントポジションデータ
  32.                     //    0x20 メディアカタログ番号
  33.                     //    0x30 トラック国際標準録音コード
  34.                     // コントロール    .... DCBA  0     1
  35.                     //    A プリエンファシス なし     あり
  36.                     //    B デジタルコピー   禁止  許可
  37.                     //    C トラック種別       Audio Data
  38.                     //    D チャンネル数       2     4
  39.     DWORD        nBegin;        // 開始セクタ
  40.     DWORD        nNumSector;    // セクタ数
  41. } TOCENTRY, *LPTOCENTRY;
  42.  
  43.  
  44.             // CDドライブ数の取得 ----------------------------------
  45. CEXPORT INT    CdGetDriveNum(VOID);
  46.  
  47.  
  48.             // CDドライブ情報の取得 --------------------------------
  49. CEXPORT BOOL    CdGetDriveInfo(
  50.     INT        iDriveNo,    // (I) ドライブ番号
  51.     PINT        piHost,        // (O) ホストアダプタ番号    NULL可
  52.     PINT        piTarget,    // (O) ターゲットのSCSI ID    NULL可
  53.     PINT        piLun,        // (O) 論理ユニット番号        NULL可
  54.     PSZ        pszVendor,    // (O) ベンダID            NULL可
  55.     PSZ        pszProduct,    // (O) プロダクトID        NULL可
  56.     PSZ        pszRevision);    // (O) プロダクト版数        NULL可
  57.  
  58.  
  59.             // CDドライブ状態のチェック ----------------------------
  60. CEXPORT BOOL    CdCheckDriveStat(
  61.     INT        iDriveNo);    // (I) ドライブ番号
  62.  
  63.  
  64.             // TOCの読み込み ---------------------------------------
  65. CEXPORT INT    CdReadToc(
  66.     INT        iDriveNo,    // (I) ドライブ番号
  67.     INT        iNumBuff,    // (I) TOC取得バッファ数
  68.     LPTOCENTRY    lptoc);        // (O) TOC
  69.  
  70.  
  71.  
  72.             // トラックタイプの取得 --------------------------------
  73. CEXPORT    INT    CdGetTrackType(
  74.     INT        iDriveNo,    // (I) ドライブ番号
  75.     LPTOCENTRY    lptoc);        // (I) TOCエントリ
  76.  
  77.  
  78. enum {            // トラックタイプ --------------------------------------
  79.     TrackUNKNOW,        // エラー
  80.     TrackCDDA,        // CD-DA
  81.     TrackMODE1,        // CD-ROM Mode-1
  82.     TrackMODE2,        // CD-ROM Mode-2
  83.     NumTRACKTYPE
  84. } EnumTRACKTYPE;
  85.  
  86.  
  87.             // CDの回転速度の設定 ----------------------------------
  88. CEXPORT BOOL    CdSetSpinSpeed(
  89.     INT        iDriveNo,    // (I) ドライブ番号
  90.     INT        iSpinSpeed);    // (I) 読み取り速度(倍数) -1:最高速
  91.  
  92.  
  93.             // CDドライブ・キャパビリティの取得 --------------------
  94. CEXPORT    BOOL    CdGetCapabilities(
  95.     INT        iDriveNo,    // (I) ドライブ番号
  96.     INT        iGetType,    // (I) 取得タイプ    GetCapaXXXX
  97.     LPDWORD        lpdwCapaFlags,    // (O) キャパビリティフラグ
  98.     PINT        piMaxReadSpeed,    // (O) 最大読み取りスピード  KB   NULL可
  99.     PINT        piMaxWriteSpeed);// (O) 最大書き込みスピード KBps NULL可
  100.  
  101.  
  102. enum {                // 取得タイプ - - - - - - - - - - - - - - - - -
  103.     GetCapaCURRENT,            // カレント
  104.     GetCapaCHANGED,            // 変更可能パラメータ
  105.     GetCapaDEFAULT,            // デフォルトパラメータ
  106.     GetCapaSAVEPARA            // セーブパラメータ
  107. };
  108.  
  109.  
  110.                 // CDドライブ・キャパビリティ - - - - - - - - -
  111. #define CapaMETHOD2        0x40000000 // Method2アドレッシングのパケット
  112.                        //   ライトされたディスクの読み込み
  113. #define CapaCDRW_READ        0x20000000 // CD-RWメディアの読み込み
  114. #define CapaCDR_READ        0x10000000 // CD-Rメディアの読み込み
  115. #define CapaTESTWRITE        0x04000000 // Test Writeをサポート (CD-R/RW)
  116. #define CapaCDRW_WRITE        0x02000000 // CD-RWメディア書き込み
  117. #define CapaCDR_WRITE        0x01000000 // CD-Rメディア書き込み
  118. #define CapaMULTISESSION    0x00400000 // マルチセッションの読み込み
  119. #define CapaMODE2_FORM1        0x00200000 // CD-ROM XA Mode2 Form1の読み込み
  120. #define CapaMODE2_FORM2        0x00100000 // CD-ROM XA Mode2 Form2の読み込み
  121. #define CapaDIGITALPORT2    0x00080000 // デジタル出力のポート2をサポート
  122. #define CapaDIGITALPORT1    0x00040000 // デジタル出力のポート1をサポート
  123. #define CapaCOMPOSITE        0x00020000 // オーディオとビデオデータストリーム
  124.                        //   の混合配送が可能
  125. #define CapaAUDIOPLAY        0x00010000 // オーディオ再生と再生中のサブチャネ
  126.                        //   ル情報読み込みが可能
  127. #define CapaREAD_BARCODE    0x00008000 // ReadBAR CODE識別コードの読み出し
  128. #define CapaUPC            0x00004000 // UPC識別コードの読み出し
  129. #define CapaISRC        0x00002000 // ISRC識別コードの読み出し
  130. #define CapaC2_POINTERS        0x00001000 // C2エラーポインタをサポートし、
  131.                        //  READ CDコマンドでCDエラーポインタ
  132.                        //  とCDブロックエラーの転送をサポート
  133. #define CapaRW_DE_INTERLEAVED    0x00000800 // R-Wサブチャネルのインターリーブが
  134.                        //   分れ、エラー訂正されて戻す
  135. #define CapaRW_SUPPORTED    0x00000400 // R-Wサブチャネルのひとまとまりのサ
  136.                        //   ブチャネルデータを転送するコマン
  137.                        //   ドをサポート
  138. #define CapaDA_ACCURATE        0x00000200 // 拡張機能として連続したREAD CDコマ
  139.                        //  ンドを発行しても位置を見失うこと
  140.                        //  なくオーディオ位置を返すことが
  141.                        //  できる
  142. #define CapaDA_COMMANDS        0x00000100 // READ CDコマンドを使用してオーディ
  143.                        //   オデータの読み出しが可能
  144. #define CapaEJECT        0x00000008 // EJECTコマンドをサポートする
  145. #define CapaPREVENT_JUMPER    0x00000004 // PREVENT/ALLOWジャンパの状態
  146. #define CapaLOCK_STATE        0x00000002 // ロック状態
  147. #define CapaLOCK        0x00000001 // PREVENT/ALLOWコマンドにより
  148.                        //   メディアのロックが可能
  149.  
  150.  
  151.             // メディアカタログ番号の取得 --------------------------
  152. CEXPORT BOOL    CdGetUpcEanCode(
  153.     INT        iDriveNo,    // (I) ドライブ番号
  154.     PBYTE        pbUpcEanCode);    // (O) メディアカタログ番号    len:15
  155.  
  156.  
  157.             // CD読み取り環境のオープン ----------------------------
  158. CEXPORT HANDLE    CdReadOpen(
  159.     INT        iDriveNo,    // (I) ドライブ番号
  160.     LPTOCENTRY    lptoc,        // (I) TOCエントリ        NULL可
  161.     DWORD        nBegin,        // (I) 読み取り開始セクタ番号
  162.     DWORD        nNumSector,    // (I) 読み取りセクタ数
  163.     INT        iSpinSpeed);    // (I) 読み取り速度(倍数) -1:最高速
  164.  
  165.  
  166.             // CD読み取り環境のクローズ ----------------------------
  167. CEXPORT BOOL    CdReadClose(
  168.     HANDLE        hCdRead);    // (I) CD読み取りハンドル
  169.  
  170.  
  171.             // CD読み取り位置セクタの設定 --------------------------
  172. CEXPORT DWORD    CdSetReadPointer(
  173.     HANDLE        hCdRead,    // (I) CD読み取りハンドル
  174.     LONG        lDistanceToMove,// (I) 読み取り位置移動量
  175.     DWORD        dwMoveMethod);    // (I) 移動開始点    FILE_XXXX
  176.  
  177.  
  178.             // セクタの読み取り ------------------------------------
  179. CEXPORT PVOID    CdReadSector(
  180.     HANDLE        hCdRead,    // (I) CD読み取りハンドル
  181.     PVOID        pvBuffer);    // (O) セクタ読み取りバッファ    NULL可
  182.  
  183.  
  184.             // セクタ読み取りバッファの解放 ------------------------
  185. CEXPORT BOOL    CdUnlockReadBuffer(
  186.     HANDLE        hCdRead,    // (I) CD読み取りハンドル
  187.     PVOID        pvBuffer);    // (I) セクタ読み取りバッファ NULL:全セクタ
  188.  
  189.  
  190. #endif
  191.