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

📄 capture.h

📁 本程序为ST公司开发的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * * capture.h * * CVS ID:   $Id: capture.h,v 1.70 2007/09/26 12:00:23 marcucci Exp $ * Author:   Filippo Brenna [FB] - STM * Date:     $Date: 2007/09/26 12:00:23 $ * Revision: $Revision: 1.70 $ * * Description: * *   capture task: header * ****************************************************************************** * * COPYRIGHT (C) ST Microelectronics  2005 *            All Rights Reserved * ****************************************************************************** *  \par          Change History: * * - DR060912     Play Mode / ROM Mode buffer access Flag Play_Mode *                (Declared In t_write_event) * - BB060926b    Improved error reporting * ******************************************************************************* * * STM CVS Log: * * $Log: capture.h,v $ * Revision 1.70  2007/09/26 12:00:23  marcucci * Fixed:  Issue#122, Bad Time Info, Last Sector Repeat * * Revision 1.69  2007/08/01 10:17:29  belardi * Modifications to support run-time configurable ESP size * - made the ESP thresholds variables * * Revision 1.68  2007/04/13 09:54:16  hara * Put g_good_lba variable. Same modification for the issue on B_3_1_P3. *  - The issue of Repeating playback some seconds. * * Revision 1.67  2007/04/06 05:29:06  hara * Add xfer_sector_start variable to fix one problem to make no target sector * due to error sector at track boundary. (SCD-4249) * * Revision 1.66  2007/02/22 18:41:30  belardi * Added function prototype * * Revision 1.65  2007/02/22 01:42:21  hara * new CTR - CAP interface : Change CAP_NUM_SKIP_ERROR_SECTORS value. * * Revision 1.64  2007/02/21 09:15:43  chlapik * new CTR - CAP interface: ESP history removed from CTR * * Revision 1.63  2007/01/17 08:30:08  hara * Fixed bug - for bad timing of BD sector error after TNO change. * Bug #52 in "SW OpenIssues 122106.xls" * * Revision 1.62  2007/01/03 09:52:15  chlapik * fixed bug - if fast seek cmd coming while prebuffering of next song for CDDA, modify cap_write_q_tno inside CAP from CTR to current played song * * Revision 1.61  2006/12/06 13:34:05  marcucci * Have Update Fix * * Revision 1.60  2006/12/06 07:35:23  belardi * Fix by [FH] to cope with ABEX test discs containing bad subQ data. Ignores bad subQ after a number of retries. * * Revision 1.59  2006/10/17 14:11:39  chlapik * preparation for new CTR - CAP interface, changed read cmd * * Revision 1.58  2006/10/10 12:01:21  belardi * Merge of m8_cav2_cm80507 * - renamed function * - removed buffering_mode from struct * - change return value * * Revision 1.57  2006/09/19 11:03:58  chlapik * solved misunderstanding of Play_Mode and buffering_mode bits in cmd to CAP - buffering_mode is again present in cmd structure * * Revision 1.56  2006/09/15 19:27:00  belardi * Merged the m8_cav2_cm80506_cs3563. * - APM modifications for Playlist processing * * *****************************************************************************/#ifndef __CAP_H#define __CAP_H#include "apdevsys.h"#include "gendef.h"#include "events.h"#include "srvcmd.h"#define  CAP_DEBUG   0/*---------------------------------------------------------------------------*//*!\brief Capture Task gen def                                               *//*---------------------------------------------------------------------------*/typedef enum{  CAP_WRITE = 0,  CAP_READ  = 1,} t_xfer_type;//#define CAP_SECTOR_INFO#define  NOT_VALID_SUBCODE           0xFFFFFFFF#define  STD_CDDA_ADPCM_SECTOR_SIZE   640 /* 2560 / 4 */#define  STD_CDDA_SECTOR_SIZE        2352#define  STD_CDROM1_SECTOR_SIZE      2048#define  STD_CDROM2_SECTOR_SIZE      2336#define  STD_CDROM_XA1_SECTOR_SIZE   2048#define  STD_CDROM_XA2_SECTOR_SIZE   2324#define  STD_CDDA_OFFSET             0#define  STD_CDROM_OFFSET            16#define  STD_CDROM_XA_OFFSET         24/*DR060922*/#define  STD_CDROM_SYNC_OFFSET       12  #define  STD_CDROM_HEADER_OFFSET     4  #define  STD_CDROM_XA1_XA2_SH_OFFSET 8  #define  STD_CDROM1_AUXDATA          288 #define  STD_CDROM_XA1_AUXDATA       280 #define  STD_CDROM_XA2_AUXDATA       4  #define  DATA_TYPE_CDROM_M1     0x02 //DR060922#define  DATA_TYPE_CDROM_M2     0x04#define  DATA_TYPE_CDROM_XA_F1  0x05#define  DATA_TYPE_CDROM_XA_F2  0x06#define  DATA_TYPE_CDDA         0x08#define  STD_USB_SECTOR_SIZE         0 /* tbd */#define  STD_SDC_SECTOR_SIZE         0 /* tbd */#define  CAP_DEFECT_SIZE             0x75#define  CAP_SERVO_SEEK_MARGIN       2#define  CAP_INPUT_BUFFER              cap_config.esp_params.input_buffer#define  CAP_INPUT_BUFFER_SIZE         cap_config.esp_params.input_buffer_size#define  CAP_INPUT_SECTOR_SIZE         cap_config.esp_params.input_sector_size#if (0 == HAVE_SHOCK_MEMORY)#define  CAP_CHIN_SECTOR_SIZE        2560#define  CAP_INPUT_BUFFER_SIZE_SDRAM   0x2D0 /* SDRAM size 0x00200000 / 1sector 2856bytes = 734. (Max 0x2DE) */#endif#define  CAP_INPUT_BUFFER_SIZE_INTRAM  9/* warning: (CAP_INPUT_BUFFER_SIZE - CAP_BUFFER_THRS) must be minimum 3; *//* BD is not able to xfer less than 3 sectors in one shot */#define  CAP_MAX_RETRIES              7 // [FH] 06/Dec/2006#define  CAP_MAX_SERVO_RETRIES        4#define  CAP_RECOVER_SECTOR_OK_COUNT  5#define  CAP_MAX_BD_SECTOR_IT_COUNT  32/*---------------------------------------------------------------------------*//*!\brief Capture Task ESP def                                               *//*---------------------------------------------------------------------------*/#define  CAP_ESP_MIN_ADDR_PTR                  0x00#define  CAP_ESP_MAX_ADDR_PTR                  cap_config.esp_params.input_buffer_size#define  CAP_ESP_STOP_ADDR_PTR                 cap_config.esp_params.input_buffer_size#define  CAP_ESP_OVERFLOW_THRS                 cap_config.esp_params.warning_overflow_thrs#define  CAP_ESP_UNDERFLOW_THRS                cap_config.esp_params.warning_underflow_thrs/* For ESP ON */extern uint16 CAP_ESP_ON_OVERFLOW_THRS;extern uint16 CAP_ESP_ON_UNDERFLOW_THRS;#if 0#define  CAP_ESP_ON_OVERFLOW_THRS              (9*75)#define  CAP_ESP_ON_UNDERFLOW_THRS             (7*75)#endif#define  CAP_ESP_ON_STARTUP_THRS_CDDA          (1*75)  //BBTODO change like in basic/* For ESP OFF */#define  CAP_ESP_OFF_OVERFLOW_THRS             5 /* After detect Overflow DMA will xfer 4 (or 3) sectors. */#define  CAP_ESP_OFF_UNDERFLOW_THRS            5#define  CAP_ESP_SUSPICIOUS_CHECK_MARGIN       14+2  /* 14 sectors for suspicious check, and 2 sectors for CDDA N-1,N-2 sector check *//* For ESP ON/OFF */#define  CAP_ESP_EXTEND_SERVO_RETRIES_THRS     10// 133ms is comparable with 1 recovery time#define  CAP_ESP_STARTUP_THRS                  3#define  CAP_NUM_SKIP_ERROR_SECTORS            2#define  CAP_ESP_MAXIMUM_INVALID_CDDA_SECTORS  75  /* Maximum allowable invalid sector count on CDDA [FH] 25/Sep/2007 *//* xfer condition flags *//* write flags */#define   CAP_ESP_CURR_EVENT_READY_DONE   0x01#define   CAP_ESP_CURR_EVENT_ENDPLAY_DONE 0x02#define   CAP_ESP_WRITE_PTR_KEEP          0x04 /* used when is adpcm only */#define   CAP_ESP_MARK_FIRST_XFER         0x08 /* used when is adpcm only */#define   CAP_ESP_WAKEUP_TO_RESTART       0x10#define   CAP_ESP_WARNING_BACK_PTR        0x20#define   CAP_ESP_ENABLE_RECOVERY         0x40 /* [FH] 17/Jan/2007 */ #define   CAP_IGNORE_TRACK_CHANGE         0x01#define   CAP_ALL_SECTORS_PAUSE           0x02#define   CAP_FB_MODE                     0x04#define   CAP_KEEP_LAST_SECTOR_NUM        0x08#define   CAP_ESP_BUFFER_UNDERFLOW        0x40#define   CAP_FOUND_UNREAD_SECTOR         0x80#define CAP_ROM_MODE_JUMP                 0 //DR060912 Jump After 200 Frames/* read flags */#define   CAP_ESP_SECTOR_SIZE_CHANGE      0x01#define   CAP_ESP_READ_STARTUP_DONE       0x02#define   CAP_ESP_READ_RUNNING            0x04/* sector flags DR060926b*/#define   CAP_END_OF_PLAY                 (1 << 0)#define   CAP_END_OF_TARGET_TIME          (1 << 1)#define   CAP_END_OF_CHUNK                (1 << 2)#define   CAP_END_OF_BUFFER               (1 << 3)#define   CAP_BEGIN_OF_CHUNK              (1 << 4)#define   CAP_BEGIN_OF_DISCONTINUITY      (1 << 5)/* Mark for invalid address sector, dummy sector */#define   CAP_INVALID_SECTOR_MARK         0x33#define   CAP_DUMMY_SECTOR_EOS_MARK       0x55#define   CAP_DUMMY_SECTOR_ERR_MARK       0xAA/*---------------------------------------------------------------------------*//*!\brief Capture Task Xfer modes                                            *//*---------------------------------------------------------------------------*//* xfer end_modes (uint8) */#define CAP_PLAY_UNTIL_ENDPLAY_TIME    SEEK_PLAY_UNTIL_ENDPLAY_TIME#define CAP_PLAY_UNTIL_TRACK_CHANGE    SEEK_PLAY_UNTIL_TRACK_CHANGE#define CAP_PLAY_UNTIL_AUDIO_TRACK     SEEK_PLAY_UNTIL_AUDIO_TRACK#define CAP_PLAY_UNTIL_DATA_TRACK      SEEK_PLAY_UNTIL_DATA_TRACK#define CAP_PLAY_UNTIL_LEADINOUT       SEEK_PLAY_UNTIL_LEADINOUT/*---------------------------------------------------------------------------*//*!\brief Capture Task macros                                                *//*---------------------------------------------------------------------------*//* bd */#define cap_is_bd_ready()    (RUNNING != local_bd_event.status)#define cap_is_bd_run()      (RUNNING == local_bd_event.status)#define cap_reset_bd_sts()   (local_bd_event.status = READY)#define cap_bd_start()       BD_CTL2.field.fw_stop = 0;#define cap_bd_stop()        BD_CTL2.field.fw_stop = 1;/* dma1 */#define cap_dma1_start()     DMA_CTRL1.field.enable = 1;/* dma3 */#define cap_dma3_start()     DMA_CTRL3.field.enable = 1;#define cap_is_dma3_ready()  !(cap_status.read.xfer_condition & CAP_ESP_READ_RUNNING)/*---------------------------------------------------------------------------*//*!\brief Capture Task Configuration                                         *//*---------------------------------------------------------------------------*/typedef struct cap_config{  UInt new_config : 1;  UInt esp        : 1;  UInt adpcm      : 2;  UInt sdram_ok   : 1;  struct  {    uint8 *input_buffer;

⌨️ 快捷键说明

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