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

📄 asound.h

📁 unxi下共享内存的使用
💻 H
📖 第 1 页 / 共 5 页
字号:
#define SND_PCM_SFMT_GSM		24#define SND_PCM_SFMT_SPECIAL		31#ifdef SND_LITTLE_ENDIAN#define SND_PCM_SFMT_S16		SND_PCM_SFMT_S16_LE#define SND_PCM_SFMT_U16		SND_PCM_SFMT_U16_LE#define SND_PCM_SFMT_S24		SND_PCM_SFMT_S24_LE#define SND_PCM_SFMT_U24		SND_PCM_SFMT_U24_LE#define SND_PCM_SFMT_S32		SND_PCM_SFMT_S32_LE#define SND_PCM_SFMT_U32		SND_PCM_SFMT_U32_LE#define SND_PCM_SFMT_FLOAT		SND_PCM_SFMT_FLOAT_LE#define SND_PCM_SFMT_FLOAT64		SND_PCM_SFMT_FLOAT64_LE#define SND_PCM_SFMT_IEC958_SUBFRAME	SND_PCM_SFMT_IEC958_SUBFRAME_LE#endif#ifdef SND_BIG_ENDIAN#define SND_PCM_SFMT_S16		SND_PCM_SFMT_S16_BE#define SND_PCM_SFMT_U16		SND_PCM_SFMT_U16_BE#define SND_PCM_SFMT_S24		SND_PCM_SFMT_S24_BE#define SND_PCM_SFMT_U24		SND_PCM_SFMT_U24_BE#define SND_PCM_SFMT_S32		SND_PCM_SFMT_S32_BE#define SND_PCM_SFMT_U32		SND_PCM_SFMT_U32_BE#define SND_PCM_SFMT_FLOAT		SND_PCM_SFMT_FLOAT_BE#define SND_PCM_SFMT_FLOAT64		SND_PCM_SFMT_FLOAT64_BE#define SND_PCM_SFMT_IEC958_SUBFRAME	SND_PCM_SFMT_IEC958_SUBFRAME_BE#endif#define SND_PCM_FMT_S8			(1 << SND_PCM_SFMT_S8)#define SND_PCM_FMT_U8			(1 << SND_PCM_SFMT_U8)#define SND_PCM_FMT_S16_LE		(1 << SND_PCM_SFMT_S16_LE)#define SND_PCM_FMT_S16_BE		(1 << SND_PCM_SFMT_S16_BE)#define SND_PCM_FMT_U16_LE		(1 << SND_PCM_SFMT_U16_LE)#define SND_PCM_FMT_U16_BE		(1 << SND_PCM_SFMT_U16_BE)#define SND_PCM_FMT_S24_LE		(1 << SND_PCM_SFMT_S24_LE)#define SND_PCM_FMT_S24_BE		(1 << SND_PCM_SFMT_S24_BE)#define SND_PCM_FMT_U24_LE		(1 << SND_PCM_SFMT_U24_LE)#define SND_PCM_FMT_U24_BE		(1 << SND_PCM_SFMT_U24_BE)#define SND_PCM_FMT_S32_LE		(1 << SND_PCM_SFMT_S32_LE)#define SND_PCM_FMT_S32_BE		(1 << SND_PCM_SFMT_S32_BE)#define SND_PCM_FMT_U32_LE		(1 << SND_PCM_SFMT_U32_LE)#define SND_PCM_FMT_U32_BE		(1 << SND_PCM_SFMT_U32_BE)#define SND_PCM_FMT_FLOAT_LE		(1 << SND_PCM_SFMT_FLOAT_LE)#define SND_PCM_FMT_FLOAT_BE		(1 << SND_PCM_SFMT_FLOAT_BE)#define SND_PCM_FMT_FLOAT64_LE		(1 << SND_PCM_SFMT_FLOAT64_LE)#define SND_PCM_FMT_FLOAT64_BE		(1 << SND_PCM_SFMT_FLOAT64_BE)#define SND_PCM_FMT_IEC958_SUBFRAME_LE	(1 << SND_PCM_SFMT_IEC958_SUBFRAME_LE)#define SND_PCM_FMT_IEC958_SUBFRAME_BE	(1 << SND_PCM_SFMT_IEC958_SUBFRAME_BE)#define SND_PCM_FMT_MU_LAW		(1 << SND_PCM_SFMT_MU_LAW)#define SND_PCM_FMT_A_LAW		(1 << SND_PCM_SFMT_A_LAW)#define SND_PCM_FMT_IMA_ADPCM		(1 << SND_PCM_SFMT_IMA_ADPCM)#define SND_PCM_FMT_MPEG		(1 << SND_PCM_SFMT_MPEG)#define SND_PCM_FMT_GSM			(1 << SND_PCM_SFMT_GSM)#define SND_PCM_FMT_SPECIAL		(1 << SND_PCM_SFMT_SPECIAL)#ifdef SND_LITTLE_ENDIAN#define SND_PCM_FMT_S16			SND_PCM_FMT_S16_LE#define SND_PCM_FMT_U16			SND_PCM_FMT_U16_LE#define SND_PCM_FMT_S24			SND_PCM_FMT_S24_LE#define SND_PCM_FMT_U24			SND_PCM_FMT_U24_LE#define SND_PCM_FMT_S32			SND_PCM_FMT_S32_LE#define SND_PCM_FMT_U32			SND_PCM_FMT_U32_LE#define SND_PCM_FMT_FLOAT		SND_PCM_FMT_FLOAT_LE#define SND_PCM_FMT_FLOAT64		SND_PCM_FMT_FLOAT64_LE#define SND_PCM_FMT_IEC958_SUBFRAME	SND_PCM_FMT_IEC958_SUBFRAME_LE#endif#ifdef SND_BIG_ENDIAN#define SND_PCM_FMT_S16			SND_PCM_FMT_S16_BE#define SND_PCM_FMT_U16			SND_PCM_FMT_U16_BE#define SND_PCM_FMT_S24			SND_PCM_FMT_S24_BE#define SND_PCM_FMT_U24			SND_PCM_FMT_U24_BE#define SND_PCM_FMT_S32			SND_PCM_FMT_S32_BE#define SND_PCM_FMT_U32			SND_PCM_FMT_U32_BE#define SND_PCM_FMT_FLOAT		SND_PCM_FMT_FLOAT_BE#define SND_PCM_FMT_FLOAT64		SND_PCM_FMT_FLOAT64_BE#define SND_PCM_FMT_IEC958_SUBFRAME	SND_PCM_FMT_IEC958_SUBFRAME_BE#endif#define SND_PCM_RATE_CONTINUOUS		(1<<0)		/* continuous range */#define SND_PCM_RATE_KNOT		(1<<1)		/* supports more non-continuos rates */#define SND_PCM_RATE_8000		(1<<2)		/* 8000Hz */#define SND_PCM_RATE_11025		(1<<3)		/* 11025Hz */#define SND_PCM_RATE_16000		(1<<4)		/* 16000Hz */#define SND_PCM_RATE_22050		(1<<5)		/* 22050Hz */#define SND_PCM_RATE_32000		(1<<6)		/* 32000Hz */#define SND_PCM_RATE_44100		(1<<7)		/* 44100Hz */#define SND_PCM_RATE_48000		(1<<8)		/* 48000Hz */#define SND_PCM_RATE_88200		(1<<9)		/* 88200Hz */#define SND_PCM_RATE_96000		(1<<10)		/* 96000Hz */#define SND_PCM_RATE_176400		(1<<11)		/* 176400Hz */#define SND_PCM_RATE_192000		(1<<12)		/* 192000Hz */#define SND_PCM_RATE_8000_44100		(SND_PCM_RATE_8000|SND_PCM_RATE_11025|\					 SND_PCM_RATE_16000|SND_PCM_RATE_22050|\					 SND_PCM_RATE_32000|SND_PCM_RATE_44100)#define SND_PCM_RATE_8000_48000		(SND_PCM_RATE_8000_44100|SND_PCM_RATE_48000)#define SND_PCM_RATE_8000_96000		(SND_PCM_RATE_8000_48000|SND_PCM_RATE_88200|\					 SND_PCM_RATE_96000)#define SND_PCM_INFO_PLAYBACK		0x00000001#define SND_PCM_INFO_CAPTURE		0x00000002#define SND_PCM_INFO_DUPLEX		0x00000100#define SND_PCM_INFO_DUPLEX_RATE	0x00000200	/* rate for playback & capture channels must be same!!! */#define SND_PCM_INFO_DUPLEX_MONO	0x00000400	/* in duplex mode - only mono (one channel) is supported */#define SND_PCM_CHNINFO_MMAP		0x00000001	/* hardware supports mmap */#define SND_PCM_CHNINFO_STREAM		0x00000002	/* hardware supports streaming */#define SND_PCM_CHNINFO_BLOCK		0x00000004	/* hardware supports block mode */#define SND_PCM_CHNINFO_BATCH		0x00000010	/* double buffering */#define SND_PCM_CHNINFO_INTERLEAVE	0x00000100	/* voices are interleaved */#define SND_PCM_CHNINFO_NONINTERLEAVE	0x00000200	/* voices are not interleaved */#define SND_PCM_CHNINFO_BLOCK_TRANSFER	0x00010000	/* hardware transfer block of samples */#define SND_PCM_CHNINFO_OVERRANGE	0x00020000	/* hardware supports ADC (capture) overrange detection */#define SND_PCM_CHNINFO_MMAP_VALID	0x00040000	/* fragment data are valid during transfer */#define SND_PCM_CHNINFO_PAUSE		0x00080000	/* pause ioctl is supported */#define SND_PCM_CHNINFO_GLOBAL_PARAMS	0x00100000	/* parameters can be set via switches only */#define SND_PCM_START_DATA		0	/* start when some data are written (playback) or requested (capture) */#define SND_PCM_START_FULL		1	/* start when whole queue is filled (playback) */#define SND_PCM_START_GO		2	/* start on the go command */#define SND_PCM_STOP_STOP		0	/* stop when underrun/overrun */#define SND_PCM_STOP_STOP_ERASE		1	/* stop & erase when overrun (capture) */#define SND_PCM_STOP_ROLLOVER		2	/* rollover when overrun/underrun */#define SND_PCM_FILL_NONE		0	/* don't fill the buffer with silent samples */#define SND_PCM_FILL_SILENCE_WHOLE	1	/* fill the whole buffer with silence */#define SND_PCM_FILL_SILENCE		2	/* fill the partial buffer with silence */#define SND_PCM_STATUS_NOTREADY		0	/* channel is not ready */#define SND_PCM_STATUS_READY		1	/* channel is ready for prepare call */#define SND_PCM_STATUS_PREPARED		2	/* channel is ready to go */#define SND_PCM_STATUS_RUNNING		3	/* channel is running */#define SND_PCM_STATUS_UNDERRUN		4	/* channel reached an underrun and it is not ready */#define SND_PCM_STATUS_OVERRUN		5	/* channel reached an overrun and it is not ready */#define SND_PCM_STATUS_PAUSED		6	/* channel is paused */#define SND_PCM_BOUNDARY		0xf0000000#define SND_PCM_MMAP_OFFSET_CONTROL	0x00000000#define SND_PCM_MMAP_OFFSET_DATA	0x80000000#define SND_PCM_SW_RATE			"Sample Rate"#define SND_PCM_SW_FORMAT		"Format"#define SND_PCM_SW_VOICES		"Voices"#define SND_PCM_SW_FRAGMENT_SIZE	"Fragment Size"#define SND_PCM_DIG0_PROFESSIONAL	(1<<0)	/* 0 = consumer, 1 = professional */#define SND_PCM_DIG0_NONAUDIO		(1<<1)	/* 0 = audio, 1 = non-audio */#define SND_PCM_DIG0_PRO_EMPHASIS	(7<<2)	/* mask - emphasis */#define SND_PCM_DIG0_PRO_EMPHASIS_NOTID	(0<<2)	/* emphasis not indicated */#define SND_PCM_DIG0_PRO_EMPHASIS_NONE	(1<<2)	/* none emphasis */#define SND_PCM_DIG0_PRO_EMPHASIS_5015	(3<<2)	/* 50/15us emphasis */#define SND_PCM_DIG0_PRO_EMPHASIS_CCITT	(7<<2)	/* CCITT J.17 emphasis */#define SND_PCM_DIG0_PRO_FREQ_UNLOCKED	(1<<5)	/* source sample frequency: 0 = locked, 1 = unlocked */#define SND_PCM_DIG0_PRO_FS		(3<<6)	/* mask - sample frequency */#define SND_PCM_DIG0_PRO_FS_NOTID	(0<<6)	/* fs not indicated */#define SND_PCM_DIG0_PRO_FS_44100	(1<<6)	/* 44.1kHz */#define SND_PCM_DIG0_PRO_FS_48000	(2<<6)	/* 48kHz */#define SND_PCM_DIG0_PRO_FS_32000	(3<<6)	/* 32kHz */#define SND_PCM_DIG0_CON_NOT_COPYRIGHT	(1<<2)	/* 0 = copyright, 1 = not copyright */#define SND_PCM_DIG0_CON_EMPHASIS	(7<<3)	/* mask - emphasis */#define SND_PCM_DIG0_CON_EMPHASIS_NONE	(0<<3)	/* none emphasis */#define SND_PCM_DIG0_CON_EMPHASIS_5015	(1<<3)	/* 50/15us emphasis */#define SND_PCM_DIG0_CON_MODE		(3<<6)	/* mask - mode */#define SND_PCM_DIG1_PRO_MODE		(15<<0)	/* mask - channel mode */#define SND_PCM_DIG1_PRO_MODE_NOTID	(0<<0)	/* not indicated */#define SND_PCM_DIG1_PRO_MODE_STEREOPHONIC (2<<0) /* stereophonic - ch A is left */#define SND_PCM_DIG1_PRO_MODE_SINGLE	(4<<0)	/* single channel */#define SND_PCM_DIG1_PRO_MODE_TWO	(8<<0)	/* two channels */#define SND_PCM_DIG1_PRO_MODE_PRIMARY	(12<<0)	/* primary/secondary */#define SND_PCM_DIG1_PRO_MODE_BYTE3	(15<<0)	/* vector to byte 3 */#define SND_PCM_DIG1_PRO_USERBITS	(15<<4)	/* mask - user bits */#define SND_PCM_DIG1_PRO_USERBITS_NOTID	(0<<4)	/* not indicated */#define SND_PCM_DIG1_PRO_USERBITS_192	(8<<4)	/* 192-bit structure */#define SND_PCM_DIG1_PRO_USERBITS_UDEF	(12<<4)	/* user defined application */#define SND_PCM_DIG1_CON_CATEGORY	0x7f#define SND_PCM_DIG1_CON_GENERAL	0x00#define SND_PCM_DIG1_CON_EXPERIMENTAL	0x40#define SND_PCM_DIG1_CON_SOLIDMEM_MASK	0x0f#define SND_PCM_DIG1_CON_SOLIDMEM_ID	0x08#define SND_PCM_DIG1_CON_BROADCAST1_MASK 0x07#define SND_PCM_DIG1_CON_BROADCAST1_ID	0x04#define SND_PCM_DIG1_CON_DIGDIGCONV_MASK 0x07#define SND_PCM_DIG1_CON_DIGDIGCONV_ID	0x02#define SND_PCM_DIG1_CON_ADC_COPYRIGHT_MASK 0x1f#define SND_PCM_DIG1_CON_ADC_COPYRIGHT_ID 0x06#define SND_PCM_DIG1_CON_ADC_MASK	0x1f#define SND_PCM_DIG1_CON_ADC_ID		0x16#define SND_PCM_DIG1_CON_BROADCAST2_MASK 0x0f#define SND_PCM_DIG1_CON_BROADCAST2_ID	0x0e#define SND_PCM_DIG1_CON_LASEROPT_MASK	0x07#define SND_PCM_DIG1_CON_LASEROPT_ID	0x01#define SND_PCM_DIG1_CON_MUSICAL_MASK	0x07#define SND_PCM_DIG1_CON_MUSICAL_ID	0x05#define SND_PCM_DIG1_CON_MAGNETIC_MASK	0x07#define SND_PCM_DIG1_CON_MAGNETIC_ID	0x03#define SND_PCM_DIG1_CON_IEC908_CD	(SND_PCM_DIG1_CON_LASEROPT_ID|0x00)#define SND_PCM_DIG1_CON_NON_IEC908_CD	(SND_PCM_DIG1_CON_LASEROPT_ID|0x08)#define SND_PCM_DIG1_CON_PCM_CODER	(SND_PCM_DIG1_CON_DIGDIGCONV_ID|0x00)#define SND_PCM_DIG1_CON_SAMPLER	(SND_PCM_DIG1_CON_DIGDIGCONV_ID|0x20)#define SND_PCM_DIG1_CON_MIXER		(SND_PCM_DIG1_CON_DIGDIGCONV_ID|0x10)#define SND_PCM_DIG1_CON_RATE_CONVERTER	(SND_PCM_DIG1_CON_DIGDIGCONV_ID|0x18)#define SND_PCM_DIG1_CON_SYNTHESIZER	(SND_PCM_DIG1_CON_MUSICAL_ID|0x00)#define SND_PCM_DIG1_CON_MICROPHONE	(SND_PCM_DIG1_CON_MUSICAL_ID|0x08)#define SND_PCM_DIG1_CON_DAT		(SND_PCM_DIG1_CON_MAGNETIC_ID|0x00)#define SND_PCM_DIG1_CON_VCR		(SND_PCM_DIG1_CON_MAGNETIC_ID|0x08)#define SND_PCM_DIG1_CON_ORIGINAL	(1<<7)	/* this bits depends on the category code */#define SND_PCM_DIG2_PRO_SBITS		(7<<0)	/* mask - sample bits */#define SND_PCM_DIG2_PRO_SBITS_20	(2<<0)	/* 20-bit - coordination */#define SND_PCM_DIG2_PRO_SBITS_24	(4<<0)	/* 24-bit - main audio */#define SND_PCM_DIG2_PRO_SBITS_UDEF	(6<<0)	/* user defined application */#define SND_PCM_DIG2_PRO_WORDLEN	(7<<3)	/* mask - source word length */#define SND_PCM_DIG2_PRO_WORDLEN_NOTID	(0<<3)	/* not indicated */#define SND_PCM_DIG2_PRO_WORDLEN_22_18	(2<<3)	/* 22-bit or 18-bit */#define SND_PCM_DIG2_PRO_WORDLEN_23_19	(4<<3)	/* 23-bit or 19-bit */#define SND_PCM_DIG2_PRO_WORDLEN_24_20	(5<<3)	/* 24-bit or 20-bit */#define SND_PCM_DIG2_PRO_WORDLEN_20_16	(6<<3)	/* 20-bit or 16-bit */#define SND_PCM_DIG2_CON_SOURCE		(15<<0)	/* mask - source number */#define SND_PCM_DIG2_CON_SOURCE_UNSPEC	(0<<0)	/* unspecified */#define SND_PCM_DIG2_CON_CHANNEL	(15<<4)	/* mask - channel number */#define SND_PCM_DIG2_CON_CHANNEL_UNSPEC	(0<<4)	/* unspecified */#define SND_PCM_DIG3_CON_FS		(15<<0)	/* mask - sample frequency */#define SND_PCM_DIG3_CON_FS_44100	(0<<0)	/* 44.1kHz */#define SND_PCM_DIG3_CON_FS_48000	(2<<0)	/* 48kHz */#define SND_PCM_DIG3_CON_FS_32000	(3<<0)	/* 32kHz */#define SND_PCM_DIG3_CON_CLOCK		(3<<4)	/* mask - clock accuracy */#define SND_PCM_DIG3_CON_CLOCK_1000PPM	(0<<4)	/* 1000 ppm */#define SND_PCM_DIG3_CON_CLOCK_50PPM	(1<<4)	/* 50 ppm */#define SND_PCM_DIG3_CON_CLOCK_VARIABLE	(2<<4)	/* variable pitch */typedef union snd_pcm_sync {	char id[16];	short id16[8];	int id32[4];} snd_pcm_sync_t;typedef struct snd_pcm_digital {	unsigned char dig_status[24];	/* AES/EBU/IEC958 channel status bits */	unsigned char dig_subcode[147];	/* AES/EBU/IEC958 subcode bits */	unsigned char dig_valid: 1;	/* must be non-zero to accept these values */	unsigned char dig_subframe[4];	/* AES/EBU/IEC958 subframe bits */	char reserved[16];		/* must be filled with zero */} snd_pcm_digital_t;typedef struct snd_pcm_info {	unsigned int type;		/* soundcard type */	unsigned int flags;		/* see to SND_PCM_INFO_XXXX */	unsigned char id[64];		/* ID of this PCM device (user selectable) */	unsigned char name[80];		/* name of this device */	int playback;			/* playback subdevices - 1 */	int capture;			/* capture subdevices - 1 */	char reserved[64];		/* reserved for future... */} snd_pcm_info_t;typedef struct snd_pcm_channel_info {	int subdevice;			/* subdevice number */	char subname[32];		/* subdevice name */	int channel;			/* channel information */	int mode;			/* transfer mode */	snd_pcm_sync_t sync;		/* hardware synchronization ID */	unsigned int flags;		/* see to SND_PCM_CHNINFO_XXXX */	unsigned int formats;		/* supported formats */	unsigned int rates;		/* hardware rates */	int min_rate;			/* min rate (in Hz) */	int max_rate;			/* max rate (in Hz) */	int min_voices;			/* min voices */	int max_voices;			/* max voices */	int buffer_size;		/* max buffer size in bytes */	int min_fragment_size;		/* min fragment size in bytes */	int max_fragment_size;		/* max fragment size in bytes */	int fragment_align;		/* align fragment value */	int fifo_size;			/* stream FIFO size in bytes */	int transfer_block_size;	/* bus transfer block size in bytes */	snd_pcm_digital_t dig_mask;	/* AES/EBU/IEC958 supported bits, zero = no AES/EBU/IEC958 */	long mmap_size;			/* mmap data size */	int mixer_device;		/* mixer device */	snd_mixer_eid_t mixer_eid;	/* mixer element identification */	char reserved[64];		/* reserved for future... */} snd_pcm_channel_info_t;typedef struct snd_pcm_format {	int interleave: 1;		/* data are interleaved */	int format;			/* SND_PCM_SFMT_XXXX */	int rate;			/* rate in Hz */	int voices;			/* voices */	int special;			/* special (custom) description of format */	char reserved[16];		/* must be filled with zero */} snd_pcm_format_t;typedef struct snd_pcm_channel_params {	int channel;			/* channel information (IGNORED in kernel space) */	int mode;			/* transfer mode */	snd_pcm_format_t format;	/* playback format */	snd_pcm_digital_t digital;	/* digital setup */	int start_mode;			/* start mode - SND_PCM_START_XXXX */	int stop_mode;			/* stop mode - SND_PCM_STOP_XXXX */	int time: 1,			/* timestamp (gettimeofday) switch */	    ust_time: 1;		/* UST time switch */	snd_pcm_sync_t sync;		/* sync group */	union {		struct {			int queue_size;	/* queue size in bytes */			int fill;	/* fill mode - SND_PCM_FILL_XXXX */			int max_fill;	/* maximum silence fill in bytes */		} stream;		struct {			int frag_size;  /* requested size of fragment in bytes */			int frags_min;	/* capture: minimum of filled fragments for wakeup */					/* playback: minimum number of fragments writeable for wakeup */			int frags_max;  /* playback: maximum number of fragments in queue for wakeup */		} block;	} buf;				/* buffer parameters */	char reserved[64];		/* must be filled with zero */} snd_pcm_channel_params_t;typedef struct snd_pcm_channel_setup {	int channel;			/* channel information */	int mode;			/* transfer mode */	snd_pcm_format_t format;	/* real used format */	snd_pcm_digital_t digital;	/* digital setup */	union {		struct {			int queue_size;	/* real queue size in bytes */		} stream;		struct {			int frag_size;	/* current fragment size in bytes */			int frags;	/* allocated fragments */			int frags_min;	/* capture: minimum of filled fragments for wakeup */					/* playback: minimum number of fragments writeable for wakeup */			int frags_max;  /* playback: maximum number of fragments in queue for wakeup */		} block;	} buf;	short msbits_per_sample;	/* used most significant bits per sample */	short pad1;			/* reserved - must be filled with zero */	char reserved[60];		/* must be filled with zero */} snd_pcm_channel_setup_t;typedef struct snd_pcm_channel_status {	int channel;			/* channel information */	int mode;			/* transfer mode */	int status;			/* channel status - SND_PCM_STATUS_XXXX */	unsigned int scount;		/* number of bytes processed from playback/capture start */	struct timeval stime;		/* time when playback/capture was started */	long long ust_stime;		/* UST time when playback/capture was started */

⌨️ 快捷键说明

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