📄 mv_drv.h
字号:
/*==========================================================================*/
/* (Copyright (C) 2003 Koninklijke Philips Electronics N.V. */
/* All rights reserved. */
/* This source code and any compilation or derivative thereof is the */
/* proprietary information of Koninklijke Philips Electronics N.V. */
/* and is confidential in nature. */
/* Under no circumstances is this software to be exposed to or placed */
/* under an Open Source License of any type without the expressed */
/* written permission of Koninklijke Philips Electronics N.V. */
/*==========================================================================*/
/********************************************************
* File : mv_drv.h
*
* Device version : P1284_133_MOD_ID
*
* Generated by GADGET, version 1.41
* GADGET generated by gcc version 2.95.2 19991024 (release)
* Patched by dvp_gadget V1.1 (PERL 5.006001)
*
* Options : -v -i
*
* Copyright Philips Semiconductors B.V.
*******************************************************/
#ifndef INCLUDED_MV_DRIVER
#define INCLUDED_MV_DRIVER
#ifndef EMBEDDED
#include <stdio.h>
#endif
#include "standard.h" /* Standard type definitions */
#include "mv_drvl.h" /* Register Type definition */
#include "mv_xs.h" /* Register Access Macros */
typedef unsigned long MV_STATUS;
typedef unsigned long MV_MASK;
typedef enum {
MV_BIT_OFF = 0,
MV_BIT_ON } MV_BIT;
typedef enum {
MV_ENABLE_OFF = 0,
MV_ENABLE_ON } MV_ENABLE;
typedef unsigned char MV_T1BITS;
typedef unsigned char MV_T2BITS;
typedef unsigned char MV_T3BITS;
typedef unsigned char MV_T4BITS;
typedef unsigned char MV_T5BITS;
typedef unsigned char MV_T6BITS;
typedef unsigned char MV_T7BITS;
typedef unsigned char MV_T8BITS;
typedef unsigned short MV_T9BITS;
typedef unsigned short MV_T10BITS;
typedef unsigned short MV_T11BITS;
typedef unsigned short MV_T12BITS;
typedef unsigned short MV_T13BITS;
typedef unsigned short MV_T14BITS;
typedef unsigned short MV_T15BITS;
typedef unsigned short MV_T16BITS;
typedef unsigned long MV_T18BITS;
typedef unsigned long MV_T20BITS;
typedef unsigned long MV_T21BITS;
typedef unsigned long MV_T22BITS;
typedef unsigned long MV_T24BITS;
typedef unsigned long MV_REG_SIZE;
typedef enum {
MV_VIDEO_INT_STATUS_ALL_EVENTS = 262141,
MV_VIDEO_INT_STATUS_STILL_FIFO_READ = 131072,
MV_VIDEO_INT_STATUS_VIDEO_FIFO_PTR_UPDATED = 65536,
MV_VIDEO_INT_STATUS_VIDEO_FIFO_UNDERFLOW = 32768,
MV_VIDEO_INT_STATUS_VIDEO_FIFO_OVERFLOW = 16384,
MV_VIDEO_INT_STATUS_VIDEO_FIFO_EMPTY = 8192,
MV_VIDEO_INT_STATUS_VIDEO_FIFO_FULL = 4096,
MV_VIDEO_INT_STATUS_NEW_VIDEO_PTS = 2048,
MV_VIDEO_INT_STATUS_NEW_VIDEO_DTS = 1024,
MV_VIDEO_INT_STATUS_NEW_VIDEO_PES = 512,
MV_VIDEO_INT_STATUS_VIDEO_INSYNC = 256,
MV_VIDEO_INT_STATUS_SYSTEM_EVENT = 128,
MV_VIDEO_INT_STATUS_END_OF_PICTURE_DECODING = 64,
MV_VIDEO_INT_STATUS_END_OF_PICTURE_HEADER = 32,
MV_VIDEO_INT_STATUS_FBM_EVENT = 16,
MV_VIDEO_INT_STATUS_ERROR_EVENT = 8,
MV_VIDEO_INT_STATUS_VIDEO_EVENT = 4,
MV_VIDEO_INT_STATUS_UNUSED = 2,
MV_VIDEO_INT_STATUS_RESET_DONE = 1,
MV_VIDEO_INT_STATUS_NO_EVENT = 0 } MV_VIDEO_INT_STATUS;
typedef enum {
MV_SYSTEM_EVENT_ALL_EVENTS = 3,
MV_SYSTEM_EVENT_NEED_VIDEO_TIME_STAMP = 2,
MV_SYSTEM_EVENT_VIDEO_TIME_STAMP_EMULATION = 1,
MV_SYSTEM_EVENT_NO_EVENT = 0 } MV_SYSTEM_EVENT;
typedef enum {
MV_VIDEO_EVENT_ALL_EVENTS = 2047,
MV_VIDEO_EVENT_END_OF_SEQUENCE = 1,
MV_VIDEO_EVENT_PICTURE_USER_DATA_START_CODE = 2,
MV_VIDEO_EVENT_PICTURE_EXTENSION_START_CODE = 4,
MV_VIDEO_EVENT_PICTURE_START_CODE = 8,
MV_VIDEO_EVENT_GOP_USER_DATA_START_CODE = 16,
MV_VIDEO_EVENT_GOP_START_CODE = 32,
MV_VIDEO_EVENT_SEQUENCE_USER_DATA_START_CODE = 64,
MV_VIDEO_EVENT_SEQUENCE_EXTENSION_START_CODE = 128,
MV_VIDEO_EVENT_SEQUENCE_HEADER_START_CODE = 256,
MV_VIDEO_EVENT_PES_HEADER_START_CODE_1 = 512,
MV_VIDEO_EVENT_PES_HEADER_START_CODE_2 = 1024,
MV_VIDEO_EVENT_NO_EVENT = 0 } MV_VIDEO_EVENT;
typedef enum {
MV_FBM_EVENT_ALL_EVENTS = 63,
MV_FBM_EVENT_END_OF_PICT_DISPLAYING = 32,
MV_FBM_EVENT_BRANCH = 16,
MV_FBM_EVENT_ABORT_DECODING_FAILED = 8,
MV_FBM_EVENT_ABORT_DECODING_COEF = 4,
MV_FBM_EVENT_ABORT_DECODING_SLICE = 2,
MV_FBM_EVENT_BUFFER_FULL = 1,
MV_FBM_EVENT_NO_EVENTS = 0 } MV_FBM_EVENT;
typedef enum {
MV_ERROR_EVENT_ALL_EVENTS = 524287,
MV_ERROR_EVENT_PES_ERROR = 262144,
MV_ERROR_EVENT_PROFILE_ERROR = 131072,
MV_ERROR_EVENT_SEQUENCE_ERROR = 65536,
MV_ERROR_EVENT_GOP_ERROR = 32768,
MV_ERROR_EVENT_PICTURE_ERROR = 16384,
MV_ERROR_EVENT_SLICE_ERROR = 8192,
MV_ERROR_EVENT_HIGH_FLAGED_ERROR = 4096,
MV_ERROR_EVENT_MEDIUM_FLAGED_ERROR = 2048,
MV_ERROR_EVENT_LOW_FLAGED_ERROR = 1024,
MV_ERROR_EVENT_VLC_COEF_ERROR = 512,
MV_ERROR_EVENT_VLC_EOB_MISS_ERROR = 256,
MV_ERROR_EVENT_VLC_MB_ERROR = 128,
MV_ERROR_EVENT_MB_NUMB_SLICE_ERROR = 64,
MV_ERROR_EVENT_MB_NUMB_ERROR = 32,
MV_ERROR_EVENT_VECT_ERROR = 16,
MV_ERROR_EVENT_EOP_MISS_ERROR = 8,
MV_ERROR_EVENT_EARLY_EOP_ERROR = 4,
MV_ERROR_EVENT_SHIFT_COEF_ERROR = 2,
MV_ERROR_EVENT_SHIFT_MB_ERROR = 1,
MV_ERROR_EVENT_NO_EVENTS = 0 } MV_ERROR_EVENT;
typedef enum {
MV_DATA_FORMAT_PES = 0,
MV_DATA_FORMAT_MPEG1,
MV_DATA_FORMAT_ES } MV_DATA_FORMAT;
typedef enum {
MV_VIDEO_BUF_CTRL_DTS_LOCKED = 0,
MV_VIDEO_BUF_CTRL_STOP,
MV_VIDEO_BUF_CTRL_START,
MV_VIDEO_BUF_CTRL_RESET } MV_VIDEO_BUF_CTRL;
typedef enum {
MV_PICTURE_STRUCTURE_TOP_FIELD = 1,
MV_PICTURE_STRUCTURE_BOTTOM_FIELD,
MV_PICTURE_STRUCTURE_FRAME_PICTURE } MV_PICTURE_STRUCTURE;
typedef enum {
MV_TAB_LABEL_ZERO = 0,
MV_TAB_LABEL_ONE } MV_TAB_LABEL;
typedef enum {
MV_STORING_FORMAT_FRAME_ZONE = 0,
MV_STORING_FORMAT_BUFFER_ZONE = 1 } MV_STORING_FORMAT;
typedef unsigned short MV_FBM_CMD_ALL;
typedef enum {
MV_FBM_CMD_START_DECODING = 1,
MV_FBM_CMD_START_DECODING_EOD = 2,
MV_FBM_CMD_DO_NOT_DECODE = 4,
MV_FBM_CMD_ABORT_DECODING = 8,
MV_FBM_CMD_BEFREE_ALL_BUFFERS = 16,
MV_FBM_CMD_BEFREE_ALL_BUFFERS_TAB0 = 96,
MV_FBM_CMD_BEFREE_ALL_BUFFERS_TAB1 = 224,
MV_FBM_CMD_BEFREE_TOP_BUFFERS_TAB0 = 32,
MV_FBM_CMD_BEFREE_TOP_BUFFERS_TAB1 = 160,
MV_FBM_CMD_BEFREE_BOTTOM_BUFFERS_TAB0 = 64,
MV_FBM_CMD_BEFREE_BOTTOM_BUFFERS_TAB1 = 192,
MV_FBM_CMD_CHECK = 256,
MV_FBM_CMD_DO_NOT_CHECK = 512 } MV_FBM_CMD;
typedef enum {
MV_TOP_FREE_NO = 0,
MV_TOP_FREE_YES } MV_TOP_FREE;
typedef enum {
MV_BOTTOM_FREE_NO = 0,
MV_BOTTOM_FREE_YES } MV_BOTTOM_FREE;
typedef unsigned short MV_SEQ_HOR_SIZE;
typedef unsigned short MV_SEQ_VER_SIZE;
typedef unsigned short MV_CENTRE_HOR_OFFSET;
typedef unsigned short MV_CENTRE_VER_OFFSET;
typedef unsigned short MV_DISP_SIZE;
typedef enum {
MV_PICTURE_CODING_TYPE_I = 1,
MV_PICTURE_CODING_TYPE_P,
MV_PICTURE_CODING_TYPE_B,
MV_PICTURE_CODING_TYPE_D } MV_PICTURE_CODING_TYPE;
typedef unsigned char MV_TEMPORAL_REFERENCE;
typedef enum {
MV_FRAME_RATE_FORBIDDEN = 0,
MV_FRAME_RATE_F23_97_HZ,
MV_FRAME_RATE_F24_HZ,
MV_FRAME_RATE_F25_HZ,
MV_FRAME_RATE_F29_97_HZ,
MV_FRAME_RATE_F30_HZ,
MV_FRAME_RATE_F50_HZ,
MV_FRAME_RATE_F59_94_HZ,
MV_FRAME_RATE_F60_HZ } MV_FRAME_RATE;
typedef unsigned char MV_PROFILE_LEVEL;
typedef unsigned char MV_ASPECT_RATIO;
typedef unsigned char MV_BUFFER_NUMBER;
typedef unsigned char MV_BUFFER_STATUS;
/*===========================================================================*/
/* Inline macros of read and write routines for the various settings. */
/*===========================================================================*/
#define MV_drv_store_hrz_size_cur() \
(MV_T10BITS)( \
MV_GET_RW_SETTING( \
MV_STORE_HRZ_SIZE_CUR_REG, \
MV_STORE_HRZ_SIZE_CUR_MASK, \
MV_STORE_HRZ_SIZE_CUR_START) \
)
#define MV_drv_set_store_hrz_size_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_STORE_HRZ_SIZE_CUR_REG, \
MV_STORE_HRZ_SIZE_CUR_MASK, \
MV_STORE_HRZ_SIZE_CUR_START, \
(MV_T10BITS)(x)); \
}
#define MV_drv_store_y_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_STORE_Y_EVEN_BASE_ADD_CUR_REG, \
MV_STORE_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_STORE_Y_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_store_y_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_STORE_Y_EVEN_BASE_ADD_CUR_REG, \
MV_STORE_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_STORE_Y_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_store_y_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_STORE_Y_ODD_BASE_ADD_CUR_REG, \
MV_STORE_Y_ODD_BASE_ADD_CUR_MASK, \
MV_STORE_Y_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_store_y_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_STORE_Y_ODD_BASE_ADD_CUR_REG, \
MV_STORE_Y_ODD_BASE_ADD_CUR_MASK, \
MV_STORE_Y_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_store_c_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_STORE_C_EVEN_BASE_ADD_CUR_REG, \
MV_STORE_C_EVEN_BASE_ADD_CUR_MASK, \
MV_STORE_C_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_store_c_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_STORE_C_EVEN_BASE_ADD_CUR_REG, \
MV_STORE_C_EVEN_BASE_ADD_CUR_MASK, \
MV_STORE_C_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_store_c_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_STORE_C_ODD_BASE_ADD_CUR_REG, \
MV_STORE_C_ODD_BASE_ADD_CUR_MASK, \
MV_STORE_C_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_store_c_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_STORE_C_ODD_BASE_ADD_CUR_REG, \
MV_STORE_C_ODD_BASE_ADD_CUR_MASK, \
MV_STORE_C_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_use_storing_bottom_cur() \
(MV_BIT)( \
MV_GET_RW_SETTING( \
MV_USE_STORING_BOTTOM_CUR_REG, \
MV_USE_STORING_BOTTOM_CUR_MASK, \
MV_USE_STORING_BOTTOM_CUR_START) \
)
#define MV_drv_set_use_storing_bottom_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_USE_STORING_BOTTOM_CUR_REG, \
MV_USE_STORING_BOTTOM_CUR_MASK, \
MV_USE_STORING_BOTTOM_CUR_START, \
(MV_BIT)(x)); \
}
#define MV_drv_use_storing_top_cur() \
(MV_BIT)( \
MV_GET_RW_SETTING( \
MV_USE_STORING_TOP_CUR_REG, \
MV_USE_STORING_TOP_CUR_MASK, \
MV_USE_STORING_TOP_CUR_START) \
)
#define MV_drv_set_use_storing_top_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_USE_STORING_TOP_CUR_REG, \
MV_USE_STORING_TOP_CUR_MASK, \
MV_USE_STORING_TOP_CUR_START, \
(MV_BIT)(x)); \
}
#define MV_drv_dec_frame_check_cur() \
(MV_BIT)( \
MV_GET_RW_SETTING( \
MV_DEC_FRAME_CHECK_CUR_REG, \
MV_DEC_FRAME_CHECK_CUR_MASK, \
MV_DEC_FRAME_CHECK_CUR_START) \
)
#define MV_drv_set_dec_frame_check_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_DEC_FRAME_CHECK_CUR_REG, \
MV_DEC_FRAME_CHECK_CUR_MASK, \
MV_DEC_FRAME_CHECK_CUR_START, \
(MV_BIT)(x)); \
}
#define MV_drv_dec_picture_structure_cur() \
(MV_PICTURE_STRUCTURE)( \
MV_GET_RW_SETTING( \
MV_DEC_PICTURE_STRUCTURE_CUR_REG, \
MV_DEC_PICTURE_STRUCTURE_CUR_MASK, \
MV_DEC_PICTURE_STRUCTURE_CUR_START) \
)
#define MV_drv_set_dec_picture_structure_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_DEC_PICTURE_STRUCTURE_CUR_REG, \
MV_DEC_PICTURE_STRUCTURE_CUR_MASK, \
MV_DEC_PICTURE_STRUCTURE_CUR_START, \
(MV_PICTURE_STRUCTURE)(x)); \
}
#define MV_drv_dec_tab_label_cur() \
(MV_TAB_LABEL)( \
MV_GET_RW_SETTING( \
MV_DEC_TAB_LABEL_CUR_REG, \
MV_DEC_TAB_LABEL_CUR_MASK, \
MV_DEC_TAB_LABEL_CUR_START) \
)
#define MV_drv_set_dec_tab_label_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_DEC_TAB_LABEL_CUR_REG, \
MV_DEC_TAB_LABEL_CUR_MASK, \
MV_DEC_TAB_LABEL_CUR_START, \
(MV_TAB_LABEL)(x)); \
}
#define MV_drv_dec_storing_format_cur() \
(MV_BIT)( \
MV_GET_RW_SETTING( \
MV_DEC_STORING_FORMAT_CUR_REG, \
MV_DEC_STORING_FORMAT_CUR_MASK, \
MV_DEC_STORING_FORMAT_CUR_START) \
)
#define MV_drv_set_dec_storing_format_cur( x ) \
{ \
MV_SET_RW_SETTING( \
MV_DEC_STORING_FORMAT_CUR_REG, \
MV_DEC_STORING_FORMAT_CUR_MASK, \
MV_DEC_STORING_FORMAT_CUR_START, \
(MV_BIT)(x)); \
}
#define MV_drv_past_y_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_PAST_Y_ODD_BASE_ADD_CUR_REG, \
MV_PAST_Y_ODD_BASE_ADD_CUR_MASK, \
MV_PAST_Y_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_past_y_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_PAST_Y_ODD_BASE_ADD_CUR_REG, \
MV_PAST_Y_ODD_BASE_ADD_CUR_MASK, \
MV_PAST_Y_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_past_y_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_PAST_Y_EVEN_BASE_ADD_CUR_REG, \
MV_PAST_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_PAST_Y_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_past_y_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_PAST_Y_EVEN_BASE_ADD_CUR_REG, \
MV_PAST_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_PAST_Y_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_past_c_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_PAST_C_ODD_BASE_ADD_CUR_REG, \
MV_PAST_C_ODD_BASE_ADD_CUR_MASK, \
MV_PAST_C_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_past_c_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_PAST_C_ODD_BASE_ADD_CUR_REG, \
MV_PAST_C_ODD_BASE_ADD_CUR_MASK, \
MV_PAST_C_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_past_c_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_PAST_C_EVEN_BASE_ADD_CUR_REG, \
MV_PAST_C_EVEN_BASE_ADD_CUR_MASK, \
MV_PAST_C_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_past_c_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_PAST_C_EVEN_BASE_ADD_CUR_REG, \
MV_PAST_C_EVEN_BASE_ADD_CUR_MASK, \
MV_PAST_C_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_future_y_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_REG, \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_MASK, \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_future_y_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_REG, \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_MASK, \
MV_FUTURE_Y_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_future_y_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_REG, \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_future_y_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_REG, \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_MASK, \
MV_FUTURE_Y_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_future_c_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_FUTURE_C_ODD_BASE_ADD_CUR_REG, \
MV_FUTURE_C_ODD_BASE_ADD_CUR_MASK, \
MV_FUTURE_C_ODD_BASE_ADD_CUR_START) \
)
#define MV_drv_set_future_c_odd_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_FUTURE_C_ODD_BASE_ADD_CUR_REG, \
MV_FUTURE_C_ODD_BASE_ADD_CUR_MASK, \
MV_FUTURE_C_ODD_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_future_c_even_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_REG, \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_MASK, \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_START) \
)
#define MV_drv_set_future_c_even_base_add_cur( x ) \
{ \
MV_SET_RWS_SETTING( \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_REG, \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_MASK, \
MV_FUTURE_C_EVEN_BASE_ADD_CUR_START, \
(MV_REG_SIZE)(x)); \
}
#define MV_drv_recovery_y_odd_base_add_cur() \
(MV_REG_SIZE)( \
MV_GET_RW_SETTING( \
MV_RECOVERY_Y_ODD_BASE_ADD_CUR_REG, \
MV_RECOVERY_Y_ODD_BASE_ADD_CUR_MASK, \
MV_RECOVERY_Y_ODD_BASE_ADD_CUR_START) \
)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -