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

📄 dsa.h

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 H
字号:
#ifndef __DSA_H
#define __DSA_H

/*
**
** DSA commands (parameter in low-byte)
**
*/

/*
** session-number: # of recording times, starting from 0.
**   title-number: track-num, starting from 0 
*/

#define DSA_PLAY            0x0100  /* parameter: title-number (hex) */
#define DSA_STOP            0x0200
#define DSA_READ_TOC        0x0300  /* parameter: session-number (hex) */
#define DSA_PAUSE           0x0400
#define DSA_PAUSE_RELEASE   0x0500
#define DSA_GET_TITLE_LENGTH    0x0900  /* parameter: track-number (hex) */
#define DSA_OPEN_TRAY       0x0a00
#define DSA_CLOSE_TRAY      0x0b00
#define DSA_GET_COMPLETE_TIME   0x0d00
#define DSA_GOTO_MM         0x1000  /* parameter: absolute min. (hex) */
#define DSA_GOTO_SS         0x1100  /* parameter: absolute sec. (hex) */
#define DSA_GOTO_FF         0x1200  /* parameter: absolute frm. (hex) */
#define DSA_READ_LONG_TOC   0x1400

#define DSA_SET_MODE        0x1500  /* parameter: mode settings. */
#define DSA_SET1_MODE       0x8000
#define DSA_SLEDGE_OFF_CMD  0x8100

                    /* play A-time till B-time */
#define DSA_PLAY_A_MM       0x2000  /* parameter: absolute start min. (hex) */
#define DSA_PLAY_A_SS       0x2100  /* parameter: absolute start sec. (hex) */
#define DSA_PLAY_A_FF       0x2200  /* parameter: absolute start frm. (hex) */
#define DSA_PLAY_B_MM       0x2300  /* parameter: absolute end min. (hex) */
#define DSA_PLAY_B_SS       0x2400  /* parameter: absolute end sec. (hex) */
#define DSA_PLAY_B_FF       0x2500  /* parameter: absolute end frm. (hex) start! */

#define DSA_PLAY_AB_RELEASE     0x2600

#define DSA_GET_DISC_STATUS     0x5000
#define DSA_SET_VOLUME      0x5100
#define DSA_GET_SESSION_INFO    0x5400
#define DSA_SET_DAC_MODE    0x7000

#define DSA_SERVICE_CMD     0xF000


/*
** CDKIT response (some-low-byte is information)
*/

#define CDKIT_FOUND         0x0100
#define CDKIT_STOPPED       0x0200
#define CDKIT_DISC_STATUS   0x0300  /* 0-no-disc 1-disc-present */
#define CDKIT_ERROR         0x0400  /* # error code */
#define CDKIT_FOCUS_ERR     0x0002  /* focus error */
#define CDKIT_RECOVER_ERR   0x0004  /* servo recover error */
#define CDKIT_MOVING        0x0b00  /* 0-moving-inside 1-moving-outside */
#define CDKIT_OPEN          0x0c00
#define CDKIT_CLOSE         0x0d00
#define CDKIT_CLOSED        0x0f00//jhuang 2003/7/28

#define CDKIT_ACT_TRK       0x1000  /* actual playing time relative */
#define CDKIT_ACT_IDX       0x1100

#define CDKIT_ACT_MM        0x1200
#define CDKIT_ACT_SS        0x1300

#define CDKIT_ABS_MM        0x1400
#define CDKIT_ABS_SS        0x1500
#define CDKIT_ABS_FF        0x1600

#define CDKIT_MODE          0x1700

#define CDKIT_TOC_MIN_TRK   0x2000
#define CDKIT_TOC_MAX_TRK   0x2100
#define CDKIT_TOC_LEADOUT_MM    0x2200
#define CDKIT_TOC_LEADOUT_SS    0x2300
#define CDKIT_TOC_LEADOUT_FF    0x2400

#define CDKIT_AB_RELEASED   0x2600

#define CDKIT_SESSION_INFO  0x5400  /* # number of sessions (hex) */


/*
** while reading LONG_TOC, DSA should send from 0x60 to 0x64 
** in order.
** since DSA interface malfunction mostly, we try to compensate
** this.
**/
#define CDKIT_LONG_TOC_TRK  0x6000  /* TOC  TRKNO   */
#define CDKIT_LONG_TOC_CnA  0x6100  /* TOC  CnA   */
#define CDKIT_LONG_TOC_MM   0x6200  /* TOC  MM    */
#define CDKIT_LONG_TOC_SS   0x6300  /* TOC  SS    */
#define CDKIT_LONG_TOC_FF   0x6400  /* TOC  FF    */
#define CDKIT_SPD_CHG_OK    0xa000

//#define   CNA_MASK_TYPE       0x00d0
#define CNA_MASK_COPYABLE   0x0020

#define CNA_AUDIO_2CHANNEL      0x00
#define CNA_AUDIO_2CHANNEL_PREEMP   0x80
#define CNA_AUDIO_4CHANNEL      0x10
#define CNA_AUDIO_4CHANNEL_PREEMP   0x90
#define CNA_DATA            0x40


/*
**
*/

#define CDKIT_DAC_MODE      0x7000

#define CDKIT_SERVO_VERSION 0xf000

/*
** for DSA_SET_MODE set-mode-command
*/
#define CDDA_SPEED_1x       0x01
#define CDDA_SPEED_2x       0x02
#define CDDA_SPEED_4x       0x04        /* um? */

#define CDDA_CDROM      (0x01 << 3)
#define CDDA_AUDIO      (0x00 << 3)

#define CDDA_ATTI_none      (0x00 << 4)
#define CDDA_ATTI_abs       (0x01 << 4)
#define CDDA_ATTI_rel       (0x02 << 4)

#define CDDAC_I2S_FS        0x01
#define CDDAC_I2S_2FS       0x02
#define CDDAC_I2S_4FS       0x03
#define CDDAC_SONY_16_FS    0x04
#define CDDAC_SONY_16_2FS   0x05
#define CDDAC_SONY_16_4FS   0x06
#define CDDAC_SONY_18_FS    0x07
#define CDDAC_SONY_18_2FS   0x08
#define CDDAC_SONY_18_4FS   0x09

/*
** for CDKIT_ERROR cdkit error message
*/
#define CDKIT_ERR_NONE          0
#define CDKIT_ERR_FOCUS         2
#define CDKIT_ERR_SUBCODE       7
#define CDKIT_ERR_TOC           8
#define CDKIT_ERR_RADIAL        0x0a
#define CDKIT_ERR_SLEDGE        0x0c
#define CDKIT_ERR_MOTOR         0x0d
#define CDKIT_ERR_SEARCH_TIMEOUT    0x1f
#define CDKIT_ERR_SEARCH_BINARY     0x20
#define CDKIT_ERR_SEARCH_INDEX      0x21
#define CDKIT_ERR_SEARCH_TIME       0x22
#define CDKIT_ERR_ILLEGAL_COMMAND   0x28
#define CDKIT_ERR_ILLEGAL_VALUE     0x29
#define CDKIT_ERR_ILLEGAL_TIME      0x2a
#define CDKIT_ERR_COMMUNICATION     0x2b
#define CDKIT_ERR_TRAY          0x2c
#define CDKIT_ERR_HF_DETECTOR       0x2d


#define DSA_SET_MODE_DEFAULT_1x (DSA_SET_MODE | CDDA_SPEED_1x | CDDA_CDROM | CDDA_ATTI_abs)
#define DSA_SET_MODE_DEFAULT_2x (DSA_SET_MODE | CDDA_SPEED_2x | CDDA_CDROM | CDDA_ATTI_abs)
#define DSA_SET_MODE_DEFAULT_4x (DSA_SET_MODE | CDDA_SPEED_4x | CDDA_CDROM | CDDA_ATTI_abs)
#define DSA_SET_MODE_DEFAULT    DSA_SET_MODE_DEFAULT_1x
#define DSA_SET_MODE_DEFAULT_LO DSA_SET_MODE_DEFAULT_1x
#define DSA_SET_MODE_DEFAULT_HI DSA_SET_MODE_DEFAULT_4x



/*
** functions.
*/
void    dsaSendCommand(UINT32 cmd);
int     reset_dsa(void);
int     polling_dsar(int);
int     polling_dsat(int);

#endif/*__DSA_H*/

⌨️ 快捷键说明

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