interface.h
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:3k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)interface.h 1.2 99/12/19 Copyright 1998,1999 Heiko Eissfeldt */
  2. /***
  3.  * CopyPolicy: GNU Public License 2 applies
  4.  * Copyright (C) by Heiko Eissfeldt
  5.  *
  6.  * header file interface.h for cdda2wav */
  7. #ifndef CD_FRAMESIZE
  8. #define CD_FRAMESIZE 2048
  9. #endif
  10. #ifndef CD_FRAMESIZE_RAW
  11. #define CD_FRAMESIZE_RAW 2352
  12. #endif
  13. #define CD_FRAMESAMPLES (CD_FRAMESIZE_RAW / 4)
  14. #define MAXTRK 100 /* maximum of audio tracks */
  15. typedef struct TOC { /* structure of table of contents (cdrom) */
  16.   unsigned char reserved1;
  17.   unsigned char bFlags;
  18.   unsigned char bTrack;
  19.   unsigned char reserved2;
  20.   unsigned int dwStartSector;
  21.   unsigned char ISRC[15];
  22. } TOC;
  23. extern TOC g_toc [MAXTRK]; /* 100 */
  24. extern unsigned char MCN[14];
  25. #define IS_AUDIO(i) (!(g_toc[i].bFlags & 0x04))
  26. extern unsigned interface;
  27. extern int trackindex_disp;
  28. #ifndef NSECTORS
  29. #define NSECTORS 75
  30. #endif
  31. /* interface types */
  32. #define GENERIC_SCSI 0
  33. #define COOKED_IOCTL 1
  34. /* constants for sub-q-channel info */
  35. #define GET_ALL 0
  36. #define GET_POSITIONDATA 1
  37. #define GET_CATALOGNUMBER 2
  38. #define GET_TRACK_ISRC 3
  39. typedef struct subq_chnl {
  40.     unsigned char reserved;
  41.     unsigned char audio_status;
  42.     unsigned short subq_length;
  43.     unsigned char format;
  44.     unsigned char control_adr;
  45.     unsigned char track;
  46.     unsigned char index;
  47.     unsigned char data[40]; /* this has subq_all, subq_position,
  48.    subq_catalog or subq_track_isrc format */
  49. } subq_chnl;
  50. typedef struct subq_all {
  51.     unsigned char abs_min;
  52.     unsigned char abs_sec;
  53.     unsigned char abs_frame;
  54.     unsigned char abs_reserved;
  55.     unsigned char trel_min;
  56.     unsigned char trel_sec;
  57.     unsigned char trel_frame;
  58.     unsigned char trel_reserved;
  59.     unsigned char mc_valid;     /* MSB */
  60.     unsigned char media_catalog_number[13];
  61.     unsigned char zero;
  62.     unsigned char aframe;
  63.     unsigned char tc_valid; /* MSB */
  64.     unsigned char track_ISRC[15];
  65. } subq_all;
  66. typedef struct subq_position {
  67.     unsigned char abs_reserved;
  68.     unsigned char abs_min;
  69.     unsigned char abs_sec;
  70.     unsigned char abs_frame;
  71.     unsigned char trel_reserved;
  72.     unsigned char trel_min;
  73.     unsigned char trel_sec;
  74.     unsigned char trel_frame;
  75. } subq_position;
  76. typedef struct subq_catalog {
  77.     unsigned char mc_valid; /* MSB */
  78.     unsigned char media_catalog_number[13];
  79.     unsigned char zero;
  80.     unsigned char aframe;
  81. } subq_catalog;
  82. typedef struct subq_track_isrc {
  83.     unsigned char tc_valid; /* MSB */
  84.     unsigned char track_isrc[15];
  85. } subq_track_isrc;
  86. /* cdrom access function pointer */
  87. extern void     (*EnableCdda) __PR((SCSI *scgp, int Switch));
  88. extern unsigned (*ReadToc) __PR(( SCSI *scgp, TOC *ptoc ));
  89. extern void (*ReadTocText) __PR(( SCSI *scgp ));
  90. extern unsigned (*ReadLastAudio) __PR(( SCSI *scgp, unsigned tracks ));
  91. extern void     (*ReadCdRom) __PR((SCSI *scgp, UINT4 *p, unsigned lSector, unsigned SectorBurstVal ));
  92. extern void     (*ReadCdRomData) __PR((SCSI *scgp, unsigned char *p, unsigned lSector, unsigned SectorBurstVal ));
  93. extern subq_chnl *(*ReadSubQ) __PR(( SCSI *scgp, unsigned char sq_format, unsigned char track ));
  94. extern void     (*SelectSpeed) __PR(( SCSI *scgp, unsigned speed ));
  95. extern int (*Play_at) __PR(( SCSI *scgp, unsigned from_sector, unsigned sectors));
  96. extern int (*StopPlay) __PR(( SCSI *scgp));
  97. extern void (*trash_cache) __PR((UINT4 *p, unsigned lSector, unsigned SectorBurstVal));
  98. extern unsigned char *bufferTOC;
  99. extern subq_chnl *SubQbuffer;
  100. void SetupInterface __PR(( void ));
  101. int Toshiba3401 __PR(( void ));
  102. SCSI    *get_scsi_p __PR(( void ));