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

📄 events.h

📁 本程序为ST公司开发的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* capture use common type for subcode and endplay event, so we are making   one unique TEP event type */typedef enum{  /* types common to time and end of play event */  _EVENT_TEP_NOEVENT          = 0,  _EVENT_TEP_LEADIN           = (1 << 0),  _EVENT_TEP_LEADOUT          = (1 << 1),  _EVENT_TEP_LEADINOUT        = (_EVENT_TEP_LEADIN | _EVENT_TEP_LEADOUT),  _EVENT_TEP_DATA_TRACK       = (1 << 2),  _EVENT_TEP_AUDIO_TRACK      = (1 << 3),  _EVENT_TEP_NEW_TRACK        = (1 << 4),  /* end of play only event types */  _EVENT_TEP_TARGET_TIME  = (1 << 5),  _EVENT_TEP_PAUSE_CMD    = (1 << 6),  /* time only event types */  _EVENT_TEP_NEW_T         = (1 << 7),  _EVENT_TEP_CRCOK         = (1 << 8),  _EVENT_TEP_ABS_TIME      = (1 << 9),  _EVENT_TEP_REL_TIME      = (1 << 10),  _EVENT_TEP_INTERPOLATED  = (1 << 11),  _EVENT_TEP_END_OF_SEEK   = (1 << 12),  _EVENT_TEP_AFTER_RECOVER = (1 << 13),  /* TODO following are sent by capture, it is not clear if time or endplay */  _EVENT_CT_END_OF_READ        = (1 << 14),  _EVENT_CT_END_OF_SONG        = (1 << 15),  _EVENT_CT_END_OF_TARGET_TIME = (1 << 16),  _EVENT_CT_BEGIN_OF_SONG      = (1 << 17),  _EVENT_CT_SECTORS_PAUSE      = (1 << 18),  /* DR060926b - BEGIN */  _EVENT_CT_END_OF_CHUNK         = (1 << 19),         _EVENT_CT_END_OF_BUFFER        = (1 << 20),       _EVENT_CT_BEGIN_OF_DISCONTINUITY = (1 << 21),       _EVENT_CT_BEGIN_OF_CHUNK       = (1 << 22),    _EVENT_TEP_HAD_TIME_BEFORE     = (1 << 23),  /* BB070110a *//* DR060926b - END */} tTEPEvent_type;/********************************//*  Time event definition       *//********************************/typedef tTEPEvent_type tTimeEvent_type;typedef struct{  uint8   q_cadr;#ifdef APM_PICKUP  uint8   q_tno;#else  // [RB] improper use of the SUBCODE type, we use this same field to store the CDROM  // track number, which can be higher than 99, so we need uint16  uint16   q_tno;#endif  uint8   q_point;  uint16  q_min; 	//for long CA songs  uint8   q_sec;  uint8   q_frame;  uint8   q_zero;  uint8   q_amin;  uint8   q_asec;  uint8   q_aframe;#ifndef APM_PICKUP   // [RB] another improper use of the SUBCODE to avoid recalculations in MsgTimeInfo  uint16  xid;#endif} STRUCT_Q_SUBCODE;typedef enum{  CAP_READ_OK,  CAP_READ_NOT_OK}t_read_status; typedef struct{  uint32 sector_diff;  UInt underflow :1;  UInt write_status :1;  UInt buffer_status :1;  UInt sector_status : 2;}t_read_error;  /**BEGIN DR061122************************* * sector_status 00 good sector CAP_READ_OK * sector_status 01 bad sector  CAP_READ_OK * sector_status 02 missing sector CAP_READ_NOT_OK * **END DR061122***/typedef struct{  UInt event_subcode : 1;  tTimeEvent_type event_type;  int32   T_actual;    /* BB070110a */  STRUCT_Q_SUBCODE q_subcode;  uint16 bytes_xfered;  t_read_status read_status; // DR061114...new  t_read_error read_error;// DR061114...new} tQsubcode_event;typedef struct{  UInt event_subcode : 1;  tTimeEvent_type event_type;  uint32 rel_time;  uint32 xid;} tMiliSec_event;typedef union{  // subcode (CDDA) and miliseconds (MP3/WMA) in one type  tQsubcode_event subcode;  tMiliSec_event ms; // in miliseconds} tDecoderTime_event;/******************************//*  Endplay events definition *//******************************/typedef tTEPEvent_type tEndPlay_type;/***********************//*  Servo events       *//***********************//*  Aquisition subcode event */#define ACQ_EVENT_SUBCODE_NONE            _EVENT_TEP_NOEVENT#define ACQ_EVENT_SUBCODE_LEADIN          _EVENT_TEP_LEADIN#define ACQ_EVENT_SUBCODE_LEADOUT         _EVENT_TEP_LEADOUT#define ACQ_EVENT_SUBCODE_CRCOK           _EVENT_TEP_CRCOK#define ACQ_EVENT_SUBCODE_INTERPOLATED    _EVENT_TEP_INTERPOLATED#define ACQ_EVENT_SUBCODE_NEW_T           _EVENT_TEP_NEW_T#define ACQ_EVENT_SUBCODE_NEW_TRACK       _EVENT_TEP_NEW_TRACK#define ACQ_EVENT_SUBCODE_ABS_TIME        _EVENT_TEP_ABS_TIME#define ACQ_EVENT_SUBCODE_REL_TIME        _EVENT_TEP_REL_TIMEtypedef struct{  tQsubcode_event subcode_event;  int32           T_actual;  uint32          freq_1T;} t_acq_subcode_event;extern t_acq_subcode_event acq_subcode_event[EVENT_MAX_STAGES];/*  Servo subcode event */#define SERVO_EVENT_SUBCODE_NONE                 _EVENT_TEP_NOEVENT#define SERVO_EVENT_SUBCODE_CRCOK                _EVENT_TEP_CRCOK#define SERVO_EVENT_SUBCODE_AFTER_RECOVER        _EVENT_TEP_AFTER_RECOVER#define SERVO_EVENT_SUBCODE_END_OF_SEEK          _EVENT_TEP_END_OF_SEEKextern tQsubcode_event servo_subcode_event[EVENT_MAX_STAGES];/* Servo Status Events */#if (HAVE_CD_MECHA == 1)#define event_set_servo(__event)          (event_out[SERVO_STATUS_EVENT].event = (t_event)(__event))#define SERVO_STATUS                event_in[SERVO_STATUS_EVENT].event#define IS_SERVO_EVENT              (NO_EVENT != SERVO_STATUS)#define IS_SERVO_EVENT_READY        (READY == SERVO_STATUS)#define IS_SERVO_EVENT_RECOVER      (SERVO_RECOVER == SERVO_STATUS)#define IS_SERVO_EVENT_ERROR        ((READY != SERVO_STATUS) && (SERVO_RECOVER != SERVO_STATUS))#endif/*  Servo endplay event */#define SERVO_EVENT_ENDPLAY_AUDIO_TRACK       _EVENT_TEP_AUDIO_TRACK#define SERVO_EVENT_ENDPLAY_DATA_TRACK        _EVENT_TEP_DATA_TRACK#define SERVO_EVENT_ENDPLAY_LEADIN            _EVENT_TEP_LEADIN#define SERVO_EVENT_ENDPLAY_LEADOUT           _EVENT_TEP_LEADOUT#define SERVO_EVENT_ENDPLAY_NOEVENT           _EVENT_TEP_NOEVENT#define SERVO_EVENT_ENDPLAY_TARGET_TIME       _EVENT_TEP_TARGET_TIME#define SERVO_EVENT_ENDPLAY_TRACK_CHANGED     _EVENT_TEP_NEW_TRACK#define SERVO_EVENT_ENDPLAY_PAUSE_CMD         _EVENT_TEP_PAUSE_CMD//#define IS_SERVO_EVENT_ENDPLAY()          (0 != (event_in[SERVO_ENDPLAY_EVENT].event))#if (HAVE_CD_MECHA == 1)#define event_set_servo_endplay(__event)  (event_out[SERVO_ENDPLAY_EVENT].event |= (t_event)(__event))#endif // #if (HAVE_CD_MECHA == 1)/*************************//* Capture Events        *//*************************//* Capture Status Event */#define event_set_capture(__event)    (event_out[CAPTURE_STATUS_EVENT].event = (t_event)(__event))#define CAPTURE_STATUS                event_in[CAPTURE_STATUS_EVENT].event#define IS_CAPTURE_EVENT              (NO_EVENT != CAPTURE_STATUS)#define IS_CAPTURE_EVENT_READY        (READY == CAPTURE_STATUS)#define IS_CAPTURE_EVENT_ERROR        (READY != CAPTURE_STATUS)/* Controller Wake up event from Capture */#define event_set_ctr_wakeup(__event)    (event_out[CAPTURE_CTR_WAKEUP_EVENT].event = (t_event)(__event))#define CONTROLLER_WAKEUP                 event_in[CAPTURE_CTR_WAKEUP_EVENT].event#define IS_CONTROLLER_WAKEUP_EVENT        (NO_EVENT != CONTROLLER_WAKEUP)#define IS_CONTROLLER_WAKEUP_EVENT_READY  (READY == CONTROLLER_WAKEUP)#define IS_CONTROLLER_WAKEUP_EVENT_ERROR  (READY != CONTROLLER_WAKEUP)/* Capture Read Event */#define event_set_capture_read(__event)    (event_out[CAPTURE_READ_EVENT].event = (t_event)(__event))#define CAPTURE_READ                  event_in[CAPTURE_READ_EVENT].event#define IS_CAPTURE_READ_EVENT         (NO_EVENT != CAPTURE_READ)#define IS_CAPTURE_READ_EVENT_READY   (READY == CAPTURE_READ)#define IS_CAPTURE_READ_EVENT_ERROR   (READY != CAPTURE_READ)/* Capture Endplay Event */#define CAPTURE_EVENT_PAUSE_NONE              _EVENT_TEP_NOEVENT#define CAPTURE_EVENT_PAUSE_TARGET_TIME       _EVENT_TEP_TARGET_TIME#define CAPTURE_EVENT_PAUSE_TRACK_CHANGED     _EVENT_TEP_NEW_TRACK#define CAPTURE_EVENT_PAUSE_AUDIO_TRACK       _EVENT_TEP_AUDIO_TRACK#define CAPTURE_EVENT_PAUSE_DATA_TRACK        _EVENT_TEP_DATA_TRACK#define CAPTURE_EVENT_PAUSE_LEADINOUT         _EVENT_TEP_LEADINOUT#define CAPTURE_EVENT_PAUSE_MASKALL           (CAPTURE_EVENT_PAUSE_DATA_TRACK    \                                             | CAPTURE_EVENT_PAUSE_AUDIO_TRACK   \                                             | CAPTURE_EVENT_PAUSE_LEADINOUT     \                                             | CAPTURE_EVENT_PAUSE_TRACK_CHANGED \                                             | CAPTURE_EVENT_PAUSE_TARGET_TIME)typedef struct{  UInt event_subcode : 1;  tTimeEvent_type event_type;  STRUCT_Q_SUBCODE q_subcode;} tCaptEndPlay_event;/* pre endplay event */#define IS_CAPTURE_PRE_ENDPLAY_EVENT         (NO_EVENT != (event_in[CAPTURE_PRE_ENDPLAY_EVENT].event))#define IS_CAPTURE_PRE_ENDPLAY_EVENT_READY  \    (IS_CAPTURE_PRE_ENDPLAY_EVENT ? (((tCaptEndPlay_event *)(event_in[CAPTURE_PRE_ENDPLAY_EVENT].pevent))->event_type) & CAPTURE_EVENT_PAUSE_MASKALL : 0)#define IS_CAPTURE_PRE_ENDPLAY_TARGET_TIME_EVENT_READY  \    (IS_CAPTURE_PRE_ENDPLAY_EVENT ? (((tCaptEndPlay_event *)(event_in[CAPTURE_PRE_ENDPLAY_EVENT].pevent))->event_type) & CAPTURE_EVENT_PAUSE_TARGET_TIME : 0)#define IS_CAPTURE_PRE_ENDPLAY_SUBCODE_ALL_SECTORS_PAUSE  ((((tQsubcode_event *)(event_in[CAPTURE_PRE_ENDPLAY_EVENT].pevent))->event_type) & CAPTURE_EVENT_SUBCODE_ALL_SECTORS_PAUSE)/* Capture Subcode Event */#define CAPTURE_EVENT_SUBCODE_NONE                _EVENT_TEP_NOEVENT#define CAPTURE_EVENT_SUBCODE_LEADIN              _EVENT_TEP_LEADIN#define CAPTURE_EVENT_SUBCODE_LEADOUT             _EVENT_TEP_LEADOUT#define CAPTURE_EVENT_SUBCODE_LEADINOUT           _EVENT_TEP_LEADINOUT#define CAPTURE_EVENT_SUBCODE_CRCOK               _EVENT_TEP_CRCOK#define CAPTURE_EVENT_SUBCODE_NEW_T               _EVENT_TEP_NEW_T#define CAPTURE_EVENT_SUBCODE_ABS_TIME            _EVENT_TEP_ABS_TIME#define CAPTURE_EVENT_SUBCODE_REL_TIME            _EVENT_TEP_REL_TIME#define CAPTURE_EVENT_SUBCODE_NEW_TRACK           _EVENT_TEP_NEW_TRACK#define CAPTURE_EVENT_SUBCODE_END_OF_READ         _EVENT_CT_END_OF_READ#define CAPTURE_EVENT_SUBCODE_END_OF_SONG         _EVENT_CT_END_OF_SONG#define CAPTURE_EVENT_SUBCODE_END_OF_TARGET_TIME  _EVENT_CT_END_OF_TARGET_TIME#define CAPTURE_EVENT_SUBCODE_BEGIN_OF_SONG       _EVENT_CT_BEGIN_OF_SONG#define CAPTURE_EVENT_SUBCODE_ALL_SECTORS_PAUSE   _EVENT_CT_SECTORS_PAUSE/* DR060926b - BEGIN */#define CAPTURE_EVENT_SUBCODE_END_OF_CHUNK            _EVENT_CT_END_OF_CHUNK          #define CAPTURE_EVENT_SUBCODE_END_OF_BUFFER           _EVENT_CT_END_OF_BUFFER         #define CAPTURE_EVENT_SUBCODE_BEGIN_OF_DISCONTINUITY  _EVENT_CT_BEGIN_OF_DISCONTINUITY  #define CAPTURE_EVENT_SUBCODE_BEGIN_OF_CHUNK          _EVENT_CT_BEGIN_OF_CHUNK        /* DR060926b - END */#define CAPTURE_SUBCODE                             (capture_subcode_event[EVENT_IN])#define IS_CAPTURE_SUBCODE_EVENT                    (NO_EVENT != (event_in[CAPTURE_SUBCODE_EVENT].event))#define IS_CAPTURE_SUBCODE_EVENT_TRACK_CHANGED      (IS_CAPTURE_SUBCODE_EVENT ? (((tQsubcode_event *)(event_in[CAPTURE_SUBCODE_EVENT].pevent))->event_type) & CAPTURE_EVENT_PAUSE_TRACK_CHANGED : 0)#define IS_CAPTURE_SUBCODE_EVENT_END_OF_READ        (IS_CAPTURE_SUBCODE_EVENT ? (((tQsubcode_event *)(event_in[CAPTURE_SUBCODE_EVENT].pevent))->event_type) & CAPTURE_EVENT_SUBCODE_END_OF_READ : 0)#define IS_CAPTURE_SUBCODE_EVENT_END_OF_SONG        (IS_CAPTURE_SUBCODE_EVENT ? (((tQsubcode_event *)(event_in[CAPTURE_SUBCODE_EVENT].pevent))->event_type) & CAPTURE_EVENT_SUBCODE_END_OF_SONG : 0)#define IS_CAPTURE_SUBCODE_EVENT_END_OF_TARGET_TIME (IS_CAPTURE_SUBCODE_EVENT ? (((tQsubcode_event *)(event_in[CAPTURE_SUBCODE_EVENT].pevent))->event_type) & CAPTURE_EVENT_SUBCODE_END_OF_TARGET_TIME : 0)#define IS_CAPTURE_SUBCODE_EVENT_BEGIN_OF_DISCONTINUITY (IS_CAPTURE_SUBCODE_EVENT ? (((tQsubcode_event *)(event_in[CAPTURE_SUBCODE_EVENT].pevent))->event_type) & CAPTURE_EVENT_SUBCODE_BEGIN_OF_DISCONTINUITY : 0)#define event_in_clear_subcode(__event)  event_in_clear(CAPTURE_SUBCODE_EVENT);/*****************//* Hostif events *//*****************/#define IS_HOSTIF_OUT_CMD_EVENT      (NO_EVENT != (event_out[PLAYER_CMD_EVENT].pevent))#define GET_HOSTIF_OUT_CMD_EVENT     (*(t_player_cmd_event *)(event_out[PLAYER_CMD_EVENT].pevent))   /*****************//* Player events *//*****************/#define event_message_set_hostif(__event) (event_out[USB_STOP_EVENT].event = (t_event)(__event))#define IS_PLAYER_CMD                     (NO_EVENT != (event_in[PLAYER_CMD_EVENT].event))#ifndef APM_PICKUP#define PLAYER_CMD                        (*(t_player_cmd_event *)(event_in[PLAYER_CMD_EVENT].pevent))#endif#define PLAYER_STATUS                     (*(t_player_status_event *)(event_in[PLAYER_STATUS_EVENT].pevent))

⌨️ 快捷键说明

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