⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toc.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/************************************************** * * toc.h * * CVS ID:   $Id: toc.h,v 1.13 2007/09/26 15:02:45 dellorto Exp $ * Author:   Fabio Dell'Orto [FD] - STM * Date:     $Date: 2007/09/26 15:02:45 $ * Revision: $Revision: 1.13 $ * * Description: * * *************************************************** * * COPYRIGHT (C) ST Microelectronics  2005 *            All Rights Reserved * **************************************************** * * STM CVS Log: * * $Log: toc.h,v $ * Revision 1.13  2007/09/26 15:02:45  dellorto * added defines for pause handling * * Revision 1.12  2006/11/27 19:43:09  belardi * Re-introduced #HAVE_UPDATE for FLASH_UPDATE flag * * Revision 1.11  2006/11/01 14:51:09  trubac * HAVE_FLASH_UPDATE always defined * * Revision 1.10  2006/09/18 09:55:21  belardi * Corrected CVS keyword usage * * Revision 1.9  2006/09/18 09:22:36  belardi * Added Log CVS keyword into file header * * Revision 1.8  2006/09/15 20:17:25  belardi * Added Log CVS keyword into file header * * ***************************************************/#ifndef _TOC_H_#define _TOC_H_#include "srvmat.h"#define READ_TOC_LEVEL                     LEVEL_1#define READ_FIRST_TOC_LEVEL               LEVEL_0#define READ_RESTOF_TOC_LEVEL              LEVEL_0#define JUMP_TO_START_DATA_AREA_LEVEL      LEVEL_0#define TOC_IDLE                0x00#define READ_FIRST_TOC          0x01#define READ_REST_OF_TOC        0x03#define JUMP_TO_START_DATA_AREA 0x05#define TOC_WAIT_FOR_SERVO      0x06#define MODE1  (uint8) 0x01#define MODE2  (uint8) 0x02#define MODE5  (uint8) 0x05#define TOC_RESET_TOC_READING       0x01#define TOC_RESET_CALIB_JUMP        0x02#define TOC_RESET_ALL               0xFF// Control profile values:#ifdef APM_PICKUP#define TOC_ACCESS_TIMEOUT          T300ms#define TOC_MAX_SUBCODE               620#define TOC_MAX_RETRY                 0x10#define TRACKS_INTO_FIRST_LEADIN      -400#define TRACKS_OUT_LEADIN              400#define CONTINUITY_SKIP_TRACKS         100#define PAUSE_TRACKS                    -1#define NO_SKIP                          0#define TRACKS_20MIN                  7500#else#define TOC_ACCESS_TIMEOUT          T300ms#define TOC_MAX_SUBCODE             (uint16)  620#define TOC_MAX_RETRY               (uint8)     5#define TRACKS_INTO_FIRST_LEADIN    (sint16)  -200#define TRACKS_OUT_LEADIN           (sint16)    50#define CONTINUITY_SKIP_TRACKS      (sint16)   100#define PAUSE_TRACKS                (sint16)    -1#define PAUSE_TRACKS_LOWER_THS      (sint16)    -2#define PAUSE_DRIFT_SECTORS_TRK_REC (sint32)    -3#define NO_SKIP                     (sint16)     0#endif// global variable CDinfo:#define HAVE_AUDIO_TRACK            0x0001#define HAVE_DATA_TRACK             0x0002#define MS_R_RW                     0x0004#define LOW_REFLECTIVE              0x0008    /*set outside TOC reading*/#define DISC_12CM                   0x0010    /*set outside TOC reading*/#define DISC_8CM                    0x0020    /*set outside TOC reading*/#define MULTISESSION                0x0040#define OPEN_MULTISESSION           0x0080#define DIGITAL_COPY_PROHIBITED     0x0100#define COPY_PROTECTED              0x0200#define FIRST_TOC_READABLE          0x0400#define ALL_TOC_READ                0x0800    /*set when TOC evaluation is finished, even with error*/#if (0 != HAVE_UPDATE)#define HAVE_FLASH_IMAGE            0x8000#endif// local variable Session:// flags#define MIN_TRACK_FOUND             0x0001#define MAX_TRACK_FOUND             0x0002#define LEAD_OUT_FOUND              0x0004#define ALL_TRACK_FOUND             0x0008#define MODE_5_FOUND                0x0010#define B0_FOUND                    0x0020#define C0_FOUND                    0x0040#define NEXT_SESSION                0x0080// warnings#define MODE_2_FOUND                 0x01#define UNSUPPORTED_MODE             0x02#define UNSUPPORTED_MOD1_POINT       0x04#define UNSUPPORTED_MOD5_POINT       0x08typedef struct{  uint8 min[99];  uint8 sec[99];  uint8 frame[99];  uint8 type[99]; // [RB] for mixed-mode disc,                  //   0x00 = CDDA or CDROM mode1                  //   0x10 = CD-I session                  //   0x20 = CDROM XA session (mode2)} TRACK_DATA_STRUCT;typedef struct{  uint8 min_track;  uint8 max_track;  uint8 num_of_audio_track;  uint8 num_of_sessions;  uint8 max_track_in_1_toc;  uint8 num_of_audio_track_in_1_toc;  uint8 Tmsf_lead_out_in_1_toc[3];  uint8 Tmsf_lead_out[3];  TRACK_DATA_STRUCT track_data;} TOC_DATA_STRUCT;typedef struct{  UInt toc_fsm_started            : 1;  UInt reading_first_toc          : 1;  UInt force_toc_reading          : 1;  UInt force_calibrate_jump       : 1;  UInt calibration_jump_executed : 1;  UInt wait_for_set_speed         : 1;} TOC_FLAGS_STRUCT;typedef union{  uint8 all;  TOC_FLAGS_STRUCT field;} TOC_FLAGS_UNION;extern TOC_FLAGS_UNION toc_flags;extern uint8 toc_state;extern TOC_DATA_STRUCT TOC_data;extern uint16 CDinfo;uint32 toc_get_track_time(uint8 track);void reset_toc(uint8 flags);void stop_toc(void);RETVAL toc_fsm(void);uint32 msf2lba(uint16); // [RB]#define toc_get_min_track()           (TOC_data.min_track)#define toc_get_max_track()           (TOC_data.max_track)#define toc_get_track_min(_track)     ((uint8)(TOC_data.track_data.min[(_track)-1] & 0x7F))#define toc_get_track_sec(_track)     ((uint8)(TOC_data.track_data.sec[(_track)-1] & 0x7F))#define toc_get_track_frame(_track)   ((uint8)(TOC_data.track_data.frame[(_track)-1] & 0x7F))#define toc_get_track_type(_track)    ((uint8)(TOC_data.track_data.type[(_track)-1]))  // [RB]#define toc_is_track_rom(_track)          (0 != (TOC_data.track_data.min[(_track)-1] & 0x80))#define toc_is_track_preemphases(_track)  (0 != (TOC_data.track_data.sec[(_track)-1] & 0x80))#define toc_is_track_startsession(_track) (0 != (TOC_data.track_data.frame[(_track)-1] & 0x80))#define toc_get_leadout_min()         (TOC_data.Tmsf_lead_out[MIN])#define toc_get_leadout_sec()         (TOC_data.Tmsf_lead_out[SEC])#define toc_get_leadout_frame()       (TOC_data.Tmsf_lead_out[FRAME])#define toc_get_leadout_time()        (msf_2_sid(TOC_data.Tmsf_lead_out[MIN],       \                                                 TOC_data.Tmsf_lead_out[SEC],       \                                                 TOC_data.Tmsf_lead_out[FRAME], HEX))#define toc_get_num_of_sessions()     (TOC_data.num_of_sessions)#define toc_get_num_of_audio_track()    (TOC_data.num_of_audio_track)#define toc_get_CD_info()               (CDinfo)#define toc_is_toc_known()              (0 != (CDinfo & ALL_TOC_READ))#define toc_is_first_toc_readable()     (0 != (CDinfo & FIRST_TOC_READABLE))uint32 toc_get_track_time(uint8 track);#endif //_TOC_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -