?? servo.h
字號:
/* ********************************************************************************
* Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
* File: $Workfile: servo.h $
*
* Description:
* ============
* Servo API routines
*
* Log:
* ====
* $Revision: $
* Last Modified by $Author: $ at $Modtime: $
**********************************************************************************
* Updates:
**********************************************************************************
* $Log: $
*
*
*********************************************************************************/
#include "Config.h" /* Global Configuration - do not remove! */
#ifndef SERVO_H
#define SERVO_H
/*** Include Files ***************************************************************/
#include "Drive\Zfe\zfe.h"
#include "Drive\Zfe\Shared\Dsp\dsp.h"
/*** Defines *********************************************************************/
#define SERVO_SPINDLE_SPEED_CD_MIN 730
#define SERVO_SPINDLE_SPEED_CD_x3 810
#define SERVO_SPINDLE_SPEED_CD_x3_5 945
#define SERVO_SPINDLE_SPEED_CD_x4 1080
#define SERVO_SPINDLE_SPEED_CD_x5 1350
#define SERVO_SPINDLE_SPEED_CD_x6 1620
#define SERVO_SPINDLE_SPEED_CD_x6_5 1755
#define SERVO_SPINDLE_SPEED_CD_MAX 1755
#define SERVO_SPINDLE_SPEED_DVD_MIN 1630
#define SERVO_SPINDLE_SPEED_DVD_x1 1630
#define SERVO_SPINDLE_SPEED_DVD_x1_1 1793
#define SERVO_SPINDLE_SPEED_DVD_x1_2 1956
#define SERVO_SPINDLE_SPEED_DVD_x1_3 2119
#define SERVO_SPINDLE_SPEED_DVD_x1_4 2282
#define SERVO_SPINDLE_SPEED_DVD_x1_5 2445
#define SERVO_SPINDLE_SPEED_DVD_x1_6 2608
#define SERVO_SPINDLE_SPEED_DVD_x1_7 2771
#define SERVO_SPINDLE_SPEED_DVD_x1_8 2934
#define SERVO_SPINDLE_SPEED_DVD_x1_9 3097
#define SERVO_SPINDLE_SPEED_DVD_x2 3260
#define SERVO_SPINDLE_SPEED_DVD_MAX 3260
/*** Typedefs ********************************************************************/
typedef enum
{
SERVO_LASER_OFF = 0x0000,
SERVO_LASER_CD = 0x0004,
SERVO_LASER_DVD = 0x0008,
SERVO_LASER_MASK = 0x000C,
SERVO_TRACKING_LOOP_SHIFT = 2,
SERVO_REQUESTED_STATE_MASK = 0x03f0,
SERVO_REQUESTED_STATE_SHIFT = 4,
SERVO_STATE_MASK = (int)0xfc00,
SERVO_STATE_SHIFT = 10
} SERVO_STATUS_BITS;
typedef enum
{
SERVO_STATE_START_ROTATION = 0,
SERVO_STATE_STOP_ROTATION = 1,
SERVO_STATE_FOCUS_SEARCH = 2,
SERVO_STATE_TRACK_PULLIN = 3,
SERVO_STATE_FOCUSED_LEAP = 4,
SERVO_STATE_HOMING = 5,
SERVO_STATE_STOP = 6,
SERVO_STATE_FOCUSED = 7,
SERVO_STATE_TRACKING = 8,
SERVO_STATE_READ = 9,
SERVO_STATE_CL_SHORT_JUMP = 10,
SERVO_STATE_LONG_JUMP = 11,
SERVO_STATE_NBCA_SEEK = 12,
SERVO_STATE_LAYER_JUMP = 13,
SERVO_STATE_START = 14,
SERVO_STATE_SLED_LEAP = 15,
SERVO_STATE_OL_SHORT_JUMP = 16,
SERVO_STATE_KEEP_HEAD = 17,
SERVO_STATE_NUMBER_OF_STATES = 18
} SERVO_STATE_ET;
typedef enum
{
SERVO_ERR_NONE = 0,
SERVO_ERR_FOCUS_SEARCH_FAIL = (int)0xC001,
SERVO_ERR_FOCUS_FAIL = (int)0xC002,
SERVO_ERR_JMP_FAIL = (int)0xC003,
SERVO_ERR_RF_SEARCH_FAILED = (int)0xC004,
SERVO_ERR_RF_SEARCH_TIMOUT = (int)0xC005,
SERVO_ERR_TRACKING_FAIL = 6,
SERVO_ERR_SLED_FAIL = 7,
SERVO_ERR_SPINDLE_FAIL = 8,
SERVO_ERR_STOP_ROTATE_FAIL = 9,
SERVO_ERR_START_ROTATE_FAIL = 10,
SERVO_ERR_LEAP_FAIL = 11,
SERVO_ERR_JUMP_FAIL = 12,
SERVO_ERR_REQUEST_FAIL = 13
} SERVO_ERROR_ET;
typedef enum
{
SERVO_LAYER_0_E = 0,
SERVO_LAYER_1_E = 1
} SERVO_LAYER_ET;
typedef enum
{
SERVO_DEFAULT_MICROCODE_E,
SERVO_FTA_MICROCODE_E
} SERVO_MICROCODE_TYPE_ET;
typedef enum
{
SERVO_BOOT_POWER_ON_STATE_E,
SERVO_BOOT_POWER_OFF_STATE_E,
SERVO_BOOT_PLAYBACK_STATE_E
} SERVO_BOOT_STATE_ET;
/* Units of physical media tracks */
typedef INT32 SERVO_TRACKS_T;
/* Callback */
typedef void (* SERVO_CALLBACK_T)(DSP_CPU_CMD msg,
UINT16 param1,
UINT16 param2);
/* The nominal speed value is measured in RPM - rotations per minute */
typedef UINT16 SERVO_SPINDLE_SPEED_T;
typedef struct
{
BOOL dma_abort;
BOOL dma_start;
} SERVO_DMA_MGR_ST;
/*** Extern **********************************************************************/
/*** Public Functions *************************************************************/
/* Initialization */
ZFE_ERR_CODE SERVO_Boot(SERVO_MICROCODE_TYPE_ET mic_type,
SERVO_CALLBACK_T cb,
SERVO_BOOT_STATE_ET boot_state);
ZFE_ERR_CODE SERVO_RegisterCb(SERVO_CALLBACK_T cb);
ZFE_ERR_CODE SERVO_GetRegisteredCb(SERVO_CALLBACK_T * cb);
ZFE_ERR_CODE SERVO_DetectMedia(void);
ZFE_ERR_CODE SERVO_StartCalibration(void);
ZFE_ERR_CODE SERVO_StartFeCalibration(void);
/* Spindle related commands */
ZFE_ERR_CODE SERVO_SetSpeed(SERVO_SPINDLE_SPEED_T speed);
ZFE_ERR_CODE SERVO_Jump(SERVO_TRACKS_T num_tracks);
ZFE_ERR_CODE SERVO_KeepHead(SERVO_TRACKS_T num_tracks);
#ifdef DRV_REPORT_JUMP_RESULTS_TO_DSP
ZFE_ERR_CODE SERVO_SendJumpReport(SERVO_TRACKS_T requested_tracks_num, SERVO_TRACKS_T actual_tracks_num);
#endif
ZFE_ERR_CODE SERVO_Play(void);
ZFE_ERR_CODE SERVO_PickupJumpToStart(SERVO_TRACKS_T tracks);
ZFE_ERR_CODE SERVO_SledLeap(SERVO_TRACKS_T num_tracks);
ZFE_ERR_CODE SERVO_SpinUp(void);
ZFE_ERR_CODE SERVO_SpinDown(void);
ZFE_ERR_CODE SERVO_LaserOff(void);
/* DVD Layers Feature */
ZFE_ERR_CODE SERVO_SetLayer(SERVO_LAYER_ET number);
/* Servo management */
ZFE_ERR_CODE SERVO_SetMediaType(UINT16 media_type);
/* Power Save Feature */
ZFE_ERR_CODE SERVO_Powersave(void);
/* Servo overlay sections downloading */
ZFE_ERR_CODE SERVO_DownloadSection(SERVO_MICROCODE_TYPE_ET mic_type, UINT16 section);
#ifdef DVD_VR_SUPPORT
ZFE_ERR_CODE SERVO_StartNbcaSearch(void);
#endif
#ifdef FTA_SUPPORT
ZFE_ERR_CODE SERVO_AddPid(PID_INFO_ST * pid_info_p);
ZFE_ERR_CODE SERVO_PlaySections(void);
ZFE_ERR_CODE SERVO_StopFtaPlayback(void);
#endif
/* Debug */
#if (defined(_DEBUG) && defined(DEBUG_FE_TRACE))
ZFE_ERR_CODE SERVO_DebugDownloadSection(DSP_CPU_CMD op, UINT8 section);
void SERVO_PrintStatus(void);
#endif
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -