📄 med_global.h
字号:
#else
#define MAX_OSD_BUFFER_LEN (0)
#endif
#endif /* __MED_MJPG_MOD__ */
#define MED_INT_MEM_SIZE (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#define MED_EXT_MEM_SIZE (MAX_CAM_FILE_BUFFER_LEN+MAX_OSD_BUFFER_LEN+MAX_IMG_DEC_EXT_MEM_SIZE+VRSI_MEM_SIZE+AUD_PROC_MEM_SIZE+MEM_OVERHEAD)
#define MAX_PROG_JPG_DEC_EXT_MEM_SIZE (MAX_CAM_FILE_BUFFER_LEN+MAX_IMG_DEC_EXT_MEM_SIZE-AUD_MELODY_BUFFER_LEN-MAX_IMG_DEC_FILE_BUFFER_LEN)
#else /* no CAMERA_MODULE nor ISP */
#define MAX_CAM_FILE_BUFFER_LEN (0) /* Image file buffer size for camera capture */
#ifdef SLIM_AUDIO_PROFILE
#define AUD_MELODY_BUFFER_LEN (512) /* 100KB */
#else
#define AUD_MELODY_BUFFER_LEN (100*1024) /* 100KB */
#endif
/* internal memory size */
#if defined(MMS_SUPPORT) && defined(JPG_ENCODE)
#if MAX_IMG_ENC_INT_MEM_SIZE > MAX_IMG_DEC_INT_MEM_SIZE
#define MED_INT_MEM_SIZE (MAX_IMG_ENC_INT_MEM_SIZE+MEM_OVERHEAD)
#else
#define MED_INT_MEM_SIZE (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#endif
#elif (defined(DEDI_AMR_REC_BUFFER) && (MAX_IMG_DEC_INT_MEM_SIZE < 6108))
#define MED_INT_MEM_SIZE (6108+MEM_OVERHEAD)
#else
#define MED_INT_MEM_SIZE (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#endif
/* external memory size */
#if defined(MMS_SUPPORT) && defined(JPG_ENCODE)
#define MED_EXT_MEM_SIZE (750*1024+MEM_OVERHEAD+M3D_PARSE_BUFFER_SIZE)
#else
#define MED_EXT_MEM_SIZE (MAX_IMG_DEC_EXT_MEM_SIZE+MAX_IMG_DEC_FILE_BUFFER_LEN+AUD_MELODY_BUFFER_LEN+VRSI_MEM_SIZE+AUD_PROC_MEM_SIZE+MEM_OVERHEAD+M3D_PARSE_BUFFER_SIZE)
#endif
#define MAX_PROG_JPG_DEC_EXT_MEM_SIZE (MAX_IMG_DEC_EXT_MEM_SIZE+VRSI_MEM_SIZE)
#endif
/* VRSI share external memory with camera. If external memory is less, redefine it. */
#if defined(VRSI_ENABLE)
#if ( MED_EXT_MEM_SIZE < VRSI_MEM_CHECK_SIZE )
#undef MED_EXT_MEM_SIZE
#define MED_EXT_MEM_SIZE VRSI_MEM_CHECK_SIZE
#endif /* #if ( MED_EXT_MEM_SIZE < VRSI_MEM_CHECK_SIZE ) */
#endif /* #if defined(VRSI_ENABLE) */
/*==== MACROS ========*/
#ifdef PRODUCTION_RELEASE
#define MED_FUNC_ENTRY(X)
#define MED_MEM_INFO(x,y,z)
#else /* PRODUCTION_RELEASE */
#define __AUD_TRACE_ON__
#define __CAM_TRACE_ON__
#define __IMG_TRACE_ON__
#define __VID_TRACE_ON__
#define __CTM_TRACE_ON__
#define __WEBCAM_TRACE_ON__
#define __TVO_TRACE_ON__
#define __BT_A2DP_TRACE_ON__
#define __BT_HFP_TRACE_ON__
#define MED_FUNC_ENTRY(X) kal_trace(TRACE_FUNC, X);
#define MED_MEM_INFO(x,y,z) kal_trace(TRACE_INFO, MEM_INFO, x, y, z);
#endif /* PRODUCTION_RELEASE */
#ifdef __AUD_TRACE_ON__
#define AUD_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_1, X);
#define AUD_STATE_TRACE(s) kal_trace(TRACE_STATE, AUD_STATE, s);
#define AUD_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_1, AUD_CHECK_VALUE, x, y, z);
#define AUD_TRACE_VOLUME(x,y,z) kal_trace(TRACE_GROUP_1, AUD_CHECK_VOLUME, x, y, z);
#define AUD_TRACE_PATH(x,y,z) kal_trace(TRACE_GROUP_1, AUD_CHECK_PATH, x, y, z);
#define AUD_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_1, AUD_WAIT_EVT_TRC, x, y);
#define AUD_SET_EVT(x,y) kal_trace(TRACE_GROUP_1, AUD_SET_EVT_TRC, x, y);
#define AUD_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, AUD_RESULT, x, y, z);
#else /* __AUD_TRACE_ON__ */
#define AUD_FUNC_ENTRY(X)
#define AUD_STATE_TRACE(s)
#define AUD_VALUE_TRACE(x,y,z)
#define AUD_TRACE_VOLUME(x,y,z)
#define AUD_TRACE_PATH(x,y,z)
#define AUD_WAIT_EVT(x,y)
#define AUD_SET_EVT(x,y)
#define AUD_RESULT_TRACE(x,y,z)
#endif /* __AUD_TRACE_ON__ */
#ifdef __CAM_TRACE_ON__
#define CAM_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_2, X);
#define CAM_STATE_TRACE(s) kal_trace(TRACE_STATE, CAM_STATE, s);
#define CAM_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_2, CAM_CHECK_VALUE, x, y, z);
#define CAM_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_2, CAM_WAIT_EVT_TRC, x, y);
#define CAM_SET_EVT(x,y) kal_trace(TRACE_GROUP_2, CAM_SET_EVT_TRC, x, y);
#define CAM_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, CAM_RESULT, x, y, z);
#define CAM_BUFFER_TRACE(x) kal_trace(TRACE_INFO,CAM_BUFFER,x);
#define CAM_QR_RESULT_TRACE(x) kal_trace(TRACE_INFO,CAM_QR_RESULT,x);
#define CAM_CLOSE_IMAGE_RESULT_TRACE(x) kal_trace(TRACE_INFO,CAM_CLOSE_IMG_RESULT,x);
#else /* __CAM_TRACE_ON__ */
#define CAM_FUNC_ENTRY(X)
#define CAM_STATE_TRACE(s)
#define CAM_VALUE_TRACE(x,y,z)
#define CAM_WAIT_EVT(x,y)
#define CAM_SET_EVT(x,y)
#define CAM_RESULT_TRACE(x,y,z)
#define CAM_BUFFER_TRACE(x)
#define CAM_QR_RESULT_TRACE(x)
#define CAM_CLOSE_IMAGE_RESULT_TRACE(x)
#endif /* __CAM_TRACE_ON__ */
#ifdef __IMG_TRACE_ON__
#define IMG_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_3, X);
#define IMG_STATE_TRACE(s) kal_trace(TRACE_STATE, IMG_STATE, s);
#define IMG_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_3, IMG_CHECK_VALUE, x, y, z);
#define IMG_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_3, IMG_WAIT_EVT_TRC, x, y);
#define IMG_SET_EVT(x,y) kal_trace(TRACE_GROUP_3, IMG_SET_EVT_TRC, x, y);
#define IMG_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, IMG_RESULT, x, y, z);
#else /* __IMG_TRACE_ON__ */
#define IMG_FUNC_ENTRY(X)
#define IMG_STATE_TRACE(s)
#define IMG_VALUE_TRACE(x,y,z)
#define IMG_WAIT_EVT(x,y)
#define IMG_SET_EVT(x,y)
#define IMG_RESULT_TRACE(x,y,z)
#endif /* __IMG_TRACE_ON__ */
#ifdef __VID_TRACE_ON__
#define VID_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_4, X);
#define VID_STATE_TRACE(s) kal_trace(TRACE_STATE, VID_STATE, s);
#define VID_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_4, VID_CHECK_VALUE, x, y, z);
#define VID_FILE_TRACE(a,b,c,d,e,f) kal_trace(TRACE_GROUP_4, VID_FILE_INFO, a, b, c, d, e, f);
#define VID_VIS_ERROR_TRACE(x,y) {kal_trace(TRACE_INFO, VID_VIS_ERROR, x, y); \
{ kal_uint32 d1, d2, d3, d4, d5; \
VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_AUD_ERROR_TRACE(x,y) kal_trace(TRACE_INFO, VID_AUD_ERROR, x, y);
#define VID_PARSE_ERROR_TRACE(x,y) {kal_trace(TRACE_INFO, VID_PARSE_ERROR, x, y); \
{ kal_uint32 d1, d2, d3, d4, d5; \
VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_FSAL_ERROR_TRACE(x,y) {kal_trace(TRACE_INFO, VID_FSAL_ERROR, x, y); \
{ kal_uint32 d1, d2, d3, d4, d5; \
VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, VID_RESULT, x, y, z);
#define VID_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_4, VID_WAIT_EVT_TRC, x, y);
#define VID_SET_EVT(x,y) kal_trace(TRACE_GROUP_4, VID_SET_EVT_TRC, x, y);
#else /* __VID_TRACE_ON__ */
#define VID_FUNC_ENTRY(X)
#define VID_STATE_TRACE(s)
#define VID_VALUE_TRACE(x,y,z)
#define VID_FILE_TRACE(a,b,c,d,e,f)
#define VID_VIS_ERROR_TRACE(x,y)
#define VID_AUD_ERROR_TRACE(x,y)
#define VID_PARSE_ERROR_TRACE(x,y)
#define VID_FSAL_ERROR_TRACE(x,y)
#define VID_RESULT_TRACE(x,y,z)
#define VID_WAIT_EVT(x,y)
#define VID_SET_EVT(x,y)
#endif /* __VID_TRACE_ON__ */
#ifdef __WEBCAM_TRACE_ON__
#define WEBCAM_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_6, X);
#define WEBCAM_STATE_TRACE(s) kal_trace(TRACE_STATE, WEBCAM_STATE, s);
#define WEBCAM_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_6, WEBCAM_CHECK_VALUE, x, y, z);
#define WEBCAM_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_6, WEBCAM_WAIT_EVT_TRC, x, y);
#define WEBCAM_SET_EVT(x,y) kal_trace(TRACE_GROUP_6, WEBCAM_SET_EVT_TRC, x, y);
#define WEBCAM_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, WEBCAM_RESULT, x, y, z);
#else /* __WEBCAM_TRACE_ON__ */
#define WEBCAM_FUNC_ENTRY(X)
#define WEBCAM_STATE_TRACE(s)
#define WEBCAM_VALUE_TRACE(x,y,z)
#define WEBCAM_WAIT_EVT(x,y)
#define WEBCAM_SET_EVT(x,y)
#define WEBCAM_RESULT_TRACE(x,y,z)
#endif /* __WEBCAM_TRACE_ON__ */
#ifdef __TVO_TRACE_ON__
#define TVO_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_5, X);
#define TVO_STATE_TRACE(s) kal_trace(TRACE_STATE, TVO_STATE, s);
#define TVO_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_5, TVO_CHECK_VALUE, x, y, z);
#define TVO_WAIT_EVT(x,y) kal_trace(TRACE_GROUP_5, TVO_WAIT_EVT_TRC, x, y);
#define TVO_SET_EVT(x,y) kal_trace(TRACE_GROUP_5, TVO_SET_EVT_TRC, x, y);
#define TVO_RESULT_TRACE(x,y,z) kal_trace(TRACE_INFO, TVO_RESULT, x, y, z);
#else /* __TVO_TRACE_ON__ */
#define TVO_FUNC_ENTRY(X)
#define TVO_STATE_TRACE(s)
#define TVO_VALUE_TRACE(x,y,z)
#define TVO_WAIT_EVT(x,y)
#define TVO_SET_EVT(x,y)
#define TVO_RESULT_TRACE(x,y,z)
#endif /* __TVO_TRACE_ON__ */
#ifdef __CTM_TRACE_ON__
#define CTM_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_1, X);
#define CTM_STATE_TRACE(s) kal_trace(TRACE_STATE, CTM_STATE, s);
#define CTM_VALUE_TRACE(x) kal_trace(TRACE_GROUP_1, CTM_CHECK_VALUE, x);
#define CTM_VALUES_TRACE(x,y,z) kal_trace(TRACE_GROUP_1, CTM_CHECK_VALUES, x, y, z);
#define CTM_READ_TEXT_TRACE1(x,y,z) kal_trace(TRACE_GROUP_1, CTM_CHECK_READ_TEXT_STEP_1, x, y, z);
#define CTM_READ_TEXT_TRACE2(x,y,z) kal_trace(TRACE_GROUP_1, CTM_CHECK_READ_TEXT_STEP_2, x, y, z);
#else /* __CTM_TRACE_ON__ */
#define CTM_FUNC_ENTRY(X)
#define CTM_STATE_TRACE(s)
#define CTM_VALUE_TRACE(x)
#define CTM_VALUES_TRACE(x,y,z)
#define CTM_READ_TEXT_TRACE1(x,y,z)
#define CTM_READ_TEXT_TRACE2(x,y,z)
#endif /* __CTM_TRACE_ON__ */
#ifdef __BT_A2DP_TRACE_ON__
#define AUD_BT_A2DP_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_1, X);
#define AUD_BT_A2DP_FUNC_ENTRY1(F, x) kal_trace(TRACE_GROUP_1, F, x);
#define AUD_BT_A2DP_FUNC_ENTRY2(F, x, y) kal_trace(TRACE_GROUP_1, F, x, y);
#define AUD_BT_A2DP_STATE_TRACE(s) kal_trace(TRACE_STATE, AUD_BT_A2DP_STATE, s);
#define AUD_BT_A2DP_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_1, AUD_BT_A2DP_CHECK_VALUE, x, y, z);
#define AUD_BT_A2DP_FUNC_TRACE1(F,x) kal_trace(TRACE_GROUP_1, F,x);
#define AUD_BT_A2DP_FUNC_TRACE2(F,x,y) kal_trace(TRACE_GROUP_1, F,x,y);
#define AUD_BT_A2DP_FUNC_TRACE3(F,x,y,z) kal_trace(TRACE_GROUP_1, F,x,y,z);
#else /* __BT_A2DP_TRACE_ON__ */
#define AUD_BT_A2DP_FUNC_ENTRY(X)
#define AUD_BT_A2DP_FUNC_ENTRY1(F,x)
#define AUD_BT_A2DP_FUNC_ENTRY2(F,x,y)
#define AUD_BT_A2DP_STATE_TRACE(s)
#define AUD_BT_A2DP_VALUE_TRACE(x,y,z)
#define AUD_BT_A2DP_FUNC_TRACE1(F,x)
#define AUD_BT_A2DP_FUNC_TRACE2(F,x,y)
#define AUD_BT_A2DP_FUNC_TRACE3(F,x,y,z)
#endif /* __BT_A2DP_TRACE_ON__ */
#ifdef __BT_HFP_TRACE_ON__
#define AUD_BT_HFP_FUNC_ENTRY(X) kal_trace(TRACE_GROUP_1, X);
#define AUD_BT_HFP_FUNC_ENTRY1(F, x) kal_trace(TRACE_GROUP_1, F, x);
#define AUD_BT_HFP_FUNC_ENTRY2(F, x, y) kal_trace(TRACE_GROUP_1, F, x, y);
#define AUD_BT_HFP_FUNC_ENTRY3(F, x, y, z) kal_trace(TRACE_GROUP_1, F, x, y, z);
#define AUD_BT_HFP_STATE_TRACE(s) kal_trace(TRACE_STATE, AUD_BT_HFP_STATE, s);
#define AUD_BT_HFP_VALUE_TRACE(x,y,z) kal_trace(TRACE_GROUP_1, AUD_BT_HFP_CHECK_VALUE, x, y, z);
#define AUD_BT_HFP_FUNC_TRACE1(F,x) kal_trace(TRACE_GROUP_1, F,x);
#define AUD_BT_HFP_FUNC_TRACE2(F,x,y) kal_trace(TRACE_GROUP_1, F,x,y);
#define AUD_BT_HFP_FUNC_TRACE3(F,x,y,z) kal_trace(TRACE_GROUP_1, F,x,y,z);
#else /* __BT_HFP_TRACE_ON__ */
#define AUD_BT_HFP_FUNC_ENTRY(X)
#define AUD_BT_HFP_FUNC_ENTRY1(F,x)
#define AUD_BT_HFP_FUNC_ENTRY2(F,x,y)
#define AUD_BT_HFP_FUNC_ENTRY3(F, x, y, z)
#define AUD_BT_HFP_STATE_TRACE(s)
#define AUD_BT_HFP_VALUE_TRACE(x,y,z)
#define AUD_BT_HFP_FUNC_TRACE1(F,x)
#define AUD_BT_HFP_FUNC_TRACE2(F,x,y)
#define AUD_BT_HFP_FUNC_TRACE3(F,x,y,z)
#endif /* __BT_HFP_TRACE_ON__ */
#ifndef MAX
#define MAX(a,b) (a>b)? a:b
#endif
#ifndef MIN
#define MIN(a,b) (a<b)? a:b
#endif
/* audio */
#define AUD_ENTER_STATE(_s_) AUD_STATE_TRACE(_s_)\
(aud_context_p->state = _s_)
#define AUD_IN_STATE(_s_) (aud_context_p->state == _s_)
#ifdef __MED_CAM_MOD__
/* camera */
#define CAM_ENTER_STATE(_s_) CAM_STATE_TRACE(_s_)\
(cam_context_p->state = _s_)
#define CAM_IN_STATE(_s_) (cam_context_p->state == _s_)
#endif /* __MED_CAM_MOD__ */
#ifdef __MED_IMG_MOD__
/* image */
#define IMG_ENTER_STATE(_s_) IMG_STATE_TRACE(_s_)\
(img_context_p->state = _s_)
#define IMG_IN_STATE(_s_) (img_context_p->state == _s_)
#endif /* __MED_IMG_MOD__ */
#if defined (__MED_VID_MOD__) || defined(__MED_MJPG_MOD__)
/* video */
// #define AUDIO_SYNC_WITH_VISUAL /* audio play sync with visual play */
#define VID_ENTER_STATE(_s_) VID_STATE_TRACE(_s_)\
(vid_context_p->state = _s_)
#define VID_AUD_ENTER_STATE(_s_) AUD_STATE_TRACE(_s_)\
(vid_context_p->aud_state = _s_)
#define VID_IN_STATE(_s_) (vid_context_p->state == _s_)
#define VID_AUD_IN_STATE(_s_) (vid_context_p->aud_state == _s_)
#endif /* defined (__MED_VID_MOD__) || defined(__MED_MJPG_MOD__) */
#if defined (__MED_WEBCAM_MOD__)
/* web camera */
#define WEBCAM_ENTER_STATE(_s_) WEBCAM_STATE_TRACE(_s_)\
(webcam_context_p->state = _s_)
#define WEBCAM_IN_STATE(_s_) (webcam_context_p->state == _s_)
#endif /* defined (__MED_WEBCAM_MOD__) */
#if defined (__MED_TVO_MOD__)
/* tv output */
#define TVO_ENTER_STATE(_s_) (tvo_context_p->state = _s_)
#define TVO_IN_STATE(_s_) (tvo_context_p->state == _s_)
#endif /* defined (__MED_TVO_MOD__) */
#ifdef __MED_CTM_MOD__
#define CTM_ENTER_STATE(_s_) do { CTM_STATE_TRACE(_s_) \
aud_ctm_ctx.state = (_s_); } while(0)
#endif /* __MED_CTM_MOD__ */
#ifdef __MED_BT_A2DP_MOD__
#define AUD_BT_A2DP_ENTER_STATE(_s_) AUD_BT_A2DP_STATE_TRACE(_s_)\
(aud_bt_a2dp_ctx.state = _s_)
#define AUD_BT_A2DP_IN_STATE(_s_) (aud_bt_a2dp_ctx.state == _s_)
#endif /* __MED_BT_A2DP_MOD__ */
#ifdef __MED_BT_HFP_MOD__
#define AUD_BT_HFP_ENTER_STATE(_s_) AUD_BT_HFP_STATE_TRACE(_s_)\
(aud_bt_hfp_ctx.state = _s_)
#define AUD_BT_HFP_IN_STATE(_s_) (aud_bt_hfp_ctx.state == _s_)
#endif /* __MED_BT_HFP_MOD__ */
/*==== TYPES =========*/
typedef enum
{
AUD_MEDIA_PLAY_MODE_NONE,
AUD_VM_PLAY_AS_RING,
AUD_VM_PLAY_AS_MEMO,
AUD_MEDIA_PLAY_AS_RING,
AUD_MEDIA_PLAY_AS_SONG,
NUM_OF_MEDIA_PLAY_MODE
}
aud_media_play_mode_enum;
typedef enum
{
AUD_ID,
AUD_FILE,
AUD_STRING,
AUD_FM_RADIO,
AUD_UNKNOWN_SOURCE_TYPE
}
aud_source_type_enum;
typedef enum
{
MED_NVRAM_IDLE,
MED_POWERON_READING_NVRAM,
MED_POWERON_READING_NVRAM_FINISH
}
med_nvram_state_enum;
typedef enum
{
MMA_PLAYER_IMY = 0,
MMA_PLAYER_SMF_1,
MMA_PLAYER_SMF_2,
MMA_PLAYER_SMF_3,
MMA_PLAYER_SMF_4,
MMA_PLAYER_TONE_S1,
MMA_PLAYER_TONE_S2,
MMA_PLAYER_TONE_S3,
MMA_PLAYER_TONE_S4,
MMA_PLAYER_WAV_1,
MMA_PLAYER_WAV_2,
MMA_PLAYER_WAV_3,
MMA_PLAYER_XWAV,
MMA_PLAYER_AMR,
MMA_PLAYER_DAF,
MMA_PLAYER_AAC,
MMA_PLAYER_AU,
MMA_NO_OF_PLAYER
}
mma_player_enum;
#endif /* _MED_GLOBAL_H */
#endif /* MED_NOT_PRESENT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -