2369 lines · 105.8 KB · C
RawDownload
/*==========================================================================; * *  Copyright (c) Microsoft Corporation.  All rights reserved. * *  File:       dsound.h *  Content:    DirectSound include file * **************************************************************************/ #define COM_NO_WINDOWS_H#include <objbase.h>#include <float.h> #ifndef DIRECTSOUND_VERSION#define DIRECTSOUND_VERSION 0x0900  /* Version 9.0 */#endif #ifdef __cplusplusextern "C" {#endif // __cplusplus #ifndef __DSOUND_INCLUDED__#define __DSOUND_INCLUDED__ /* Type definitions shared with Direct3D */ #ifndef DX_SHARED_DEFINES typedef float D3DVALUE, *LPD3DVALUE; #ifndef D3DCOLOR_DEFINEDtypedef DWORD D3DCOLOR;#define D3DCOLOR_DEFINED#endif #ifndef LPD3DCOLOR_DEFINEDtypedef DWORD *LPD3DCOLOR;#define LPD3DCOLOR_DEFINED#endif #ifndef D3DVECTOR_DEFINEDtypedef struct _D3DVECTOR {    float x;    float y;    float z;} D3DVECTOR;#define D3DVECTOR_DEFINED#endif #ifndef LPD3DVECTOR_DEFINEDtypedef D3DVECTOR *LPD3DVECTOR;#define LPD3DVECTOR_DEFINED#endif #define DX_SHARED_DEFINES#endif // DX_SHARED_DEFINES #define _FACDS  0x878   /* DirectSound's facility code */#define MAKE_DSHRESULT(code)  MAKE_HRESULT(1, _FACDS, code) // DirectSound Component GUID {47D4D946-62E8-11CF-93BC-444553540000}DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); // DirectSound 8.0 Component GUID {3901CC3F-84B5-4FA4-BA35-AA8172B8A09B}DEFINE_GUID(CLSID_DirectSound8, 0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b); // DirectSound Capture Component GUID {B0210780-89CD-11D0-AF08-00A0C925CD16}DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16); // DirectSound 8.0 Capture Component GUID {E4BCAC13-7F99-4908-9A8E-74E3BF24B6E1}DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1); // DirectSound Full Duplex Component GUID {FEA4300C-7959-4147-B26A-2377B9E7A91D}DEFINE_GUID(CLSID_DirectSoundFullDuplex, 0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d);  // DirectSound default playback device GUID {DEF00000-9C6D-47ED-AAF1-4DDA8F2B5C03}DEFINE_GUID(DSDEVID_DefaultPlayback, 0xdef00000, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); // DirectSound default capture device GUID {DEF00001-9C6D-47ED-AAF1-4DDA8F2B5C03}DEFINE_GUID(DSDEVID_DefaultCapture, 0xdef00001, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); // DirectSound default device for voice playback {DEF00002-9C6D-47ED-AAF1-4DDA8F2B5C03}DEFINE_GUID(DSDEVID_DefaultVoicePlayback, 0xdef00002, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); // DirectSound default device for voice capture {DEF00003-9C6D-47ED-AAF1-4DDA8F2B5C03}DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xdef00003, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03);  //// Forward declarations for interfaces.// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined// #ifdef __cplusplusstruct IDirectSound;struct IDirectSoundBuffer;struct IDirectSound3DListener;struct IDirectSound3DBuffer;struct IDirectSoundCapture;struct IDirectSoundCaptureBuffer;struct IDirectSoundNotify;#endif // __cplusplus  //// DirectSound 8.0 interfaces.// #if DIRECTSOUND_VERSION >= 0x0800 #ifdef __cplusplusstruct IDirectSound8;struct IDirectSoundBuffer8;struct IDirectSoundCaptureBuffer8;struct IDirectSoundFXGargle;struct IDirectSoundFXChorus;struct IDirectSoundFXFlanger;struct IDirectSoundFXEcho;struct IDirectSoundFXDistortion;struct IDirectSoundFXCompressor;struct IDirectSoundFXParamEq;struct IDirectSoundFXWavesReverb;struct IDirectSoundFXI3DL2Reverb;struct IDirectSoundCaptureFXAec;struct IDirectSoundCaptureFXNoiseSuppress;struct IDirectSoundFullDuplex;#endif // __cplusplus // IDirectSound8, IDirectSoundBuffer8 and IDirectSoundCaptureBuffer8 are the// only DirectSound 7.0 interfaces with changed functionality in version 8.0.// The other level 8 interfaces as equivalent to their level 7 counterparts: #define IDirectSoundCapture8            IDirectSoundCapture#define IDirectSound3DListener8         IDirectSound3DListener#define IDirectSound3DBuffer8           IDirectSound3DBuffer#define IDirectSoundNotify8             IDirectSoundNotify#define IDirectSoundFXGargle8           IDirectSoundFXGargle#define IDirectSoundFXChorus8           IDirectSoundFXChorus#define IDirectSoundFXFlanger8          IDirectSoundFXFlanger#define IDirectSoundFXEcho8             IDirectSoundFXEcho#define IDirectSoundFXDistortion8       IDirectSoundFXDistortion#define IDirectSoundFXCompressor8       IDirectSoundFXCompressor#define IDirectSoundFXParamEq8          IDirectSoundFXParamEq#define IDirectSoundFXWavesReverb8      IDirectSoundFXWavesReverb#define IDirectSoundFXI3DL2Reverb8      IDirectSoundFXI3DL2Reverb#define IDirectSoundCaptureFXAec8       IDirectSoundCaptureFXAec#define IDirectSoundCaptureFXNoiseSuppress8 IDirectSoundCaptureFXNoiseSuppress#define IDirectSoundFullDuplex8         IDirectSoundFullDuplex #endif // DIRECTSOUND_VERSION >= 0x0800 typedef struct IDirectSound                 *LPDIRECTSOUND;typedef struct IDirectSoundBuffer           *LPDIRECTSOUNDBUFFER;typedef struct IDirectSound3DListener       *LPDIRECTSOUND3DLISTENER;typedef struct IDirectSound3DBuffer         *LPDIRECTSOUND3DBUFFER;typedef struct IDirectSoundCapture          *LPDIRECTSOUNDCAPTURE;typedef struct IDirectSoundCaptureBuffer    *LPDIRECTSOUNDCAPTUREBUFFER;typedef struct IDirectSoundNotify           *LPDIRECTSOUNDNOTIFY;  #if DIRECTSOUND_VERSION >= 0x0800 typedef struct IDirectSoundFXGargle         *LPDIRECTSOUNDFXGARGLE;typedef struct IDirectSoundFXChorus         *LPDIRECTSOUNDFXCHORUS;typedef struct IDirectSoundFXFlanger        *LPDIRECTSOUNDFXFLANGER;typedef struct IDirectSoundFXEcho           *LPDIRECTSOUNDFXECHO;typedef struct IDirectSoundFXDistortion     *LPDIRECTSOUNDFXDISTORTION;typedef struct IDirectSoundFXCompressor     *LPDIRECTSOUNDFXCOMPRESSOR;typedef struct IDirectSoundFXParamEq        *LPDIRECTSOUNDFXPARAMEQ;typedef struct IDirectSoundFXWavesReverb    *LPDIRECTSOUNDFXWAVESREVERB;typedef struct IDirectSoundFXI3DL2Reverb    *LPDIRECTSOUNDFXI3DL2REVERB;typedef struct IDirectSoundCaptureFXAec     *LPDIRECTSOUNDCAPTUREFXAEC;typedef struct IDirectSoundCaptureFXNoiseSuppress *LPDIRECTSOUNDCAPTUREFXNOISESUPPRESS;typedef struct IDirectSoundFullDuplex       *LPDIRECTSOUNDFULLDUPLEX; typedef struct IDirectSound8                *LPDIRECTSOUND8;typedef struct IDirectSoundBuffer8          *LPDIRECTSOUNDBUFFER8;typedef struct IDirectSound3DListener8      *LPDIRECTSOUND3DLISTENER8;typedef struct IDirectSound3DBuffer8        *LPDIRECTSOUND3DBUFFER8;typedef struct IDirectSoundCapture8         *LPDIRECTSOUNDCAPTURE8;typedef struct IDirectSoundCaptureBuffer8   *LPDIRECTSOUNDCAPTUREBUFFER8;typedef struct IDirectSoundNotify8          *LPDIRECTSOUNDNOTIFY8;typedef struct IDirectSoundFXGargle8        *LPDIRECTSOUNDFXGARGLE8;typedef struct IDirectSoundFXChorus8        *LPDIRECTSOUNDFXCHORUS8;typedef struct IDirectSoundFXFlanger8       *LPDIRECTSOUNDFXFLANGER8;typedef struct IDirectSoundFXEcho8          *LPDIRECTSOUNDFXECHO8;typedef struct IDirectSoundFXDistortion8    *LPDIRECTSOUNDFXDISTORTION8;typedef struct IDirectSoundFXCompressor8    *LPDIRECTSOUNDFXCOMPRESSOR8;typedef struct IDirectSoundFXParamEq8       *LPDIRECTSOUNDFXPARAMEQ8;typedef struct IDirectSoundFXWavesReverb8   *LPDIRECTSOUNDFXWAVESREVERB8;typedef struct IDirectSoundFXI3DL2Reverb8   *LPDIRECTSOUNDFXI3DL2REVERB8;typedef struct IDirectSoundCaptureFXAec8    *LPDIRECTSOUNDCAPTUREFXAEC8;typedef struct IDirectSoundCaptureFXNoiseSuppress8 *LPDIRECTSOUNDCAPTUREFXNOISESUPPRESS8;typedef struct IDirectSoundFullDuplex8      *LPDIRECTSOUNDFULLDUPLEX8; #endif // DIRECTSOUND_VERSION >= 0x0800 //// IID definitions for the unchanged DirectSound 8.0 interfaces// #if DIRECTSOUND_VERSION >= 0x0800 #define IID_IDirectSoundCapture8            IID_IDirectSoundCapture#define IID_IDirectSound3DListener8         IID_IDirectSound3DListener#define IID_IDirectSound3DBuffer8           IID_IDirectSound3DBuffer#define IID_IDirectSoundNotify8             IID_IDirectSoundNotify#define IID_IDirectSoundFXGargle8           IID_IDirectSoundFXGargle#define IID_IDirectSoundFXChorus8           IID_IDirectSoundFXChorus#define IID_IDirectSoundFXFlanger8          IID_IDirectSoundFXFlanger#define IID_IDirectSoundFXEcho8             IID_IDirectSoundFXEcho#define IID_IDirectSoundFXDistortion8       IID_IDirectSoundFXDistortion#define IID_IDirectSoundFXCompressor8       IID_IDirectSoundFXCompressor#define IID_IDirectSoundFXParamEq8          IID_IDirectSoundFXParamEq#define IID_IDirectSoundFXWavesReverb8      IID_IDirectSoundFXWavesReverb#define IID_IDirectSoundFXI3DL2Reverb8      IID_IDirectSoundFXI3DL2Reverb#define IID_IDirectSoundCaptureFXAec8       IID_IDirectSoundCaptureFXAec#define IID_IDirectSoundCaptureFXNoiseSuppress8 IID_IDirectSoundCaptureFXNoiseSuppress#define IID_IDirectSoundFullDuplex8         IID_IDirectSoundFullDuplex #endif // DIRECTSOUND_VERSION >= 0x0800 //// Compatibility typedefs// #ifndef _LPCWAVEFORMATEX_DEFINED#define _LPCWAVEFORMATEX_DEFINEDtypedef const WAVEFORMATEX *LPCWAVEFORMATEX;#endif // _LPCWAVEFORMATEX_DEFINED #ifndef __LPCGUID_DEFINED__#define __LPCGUID_DEFINED__typedef const GUID *LPCGUID;#endif // __LPCGUID_DEFINED__ typedef LPDIRECTSOUND *LPLPDIRECTSOUND;typedef LPDIRECTSOUNDBUFFER *LPLPDIRECTSOUNDBUFFER;typedef LPDIRECTSOUND3DLISTENER *LPLPDIRECTSOUND3DLISTENER;typedef LPDIRECTSOUND3DBUFFER *LPLPDIRECTSOUND3DBUFFER;typedef LPDIRECTSOUNDCAPTURE *LPLPDIRECTSOUNDCAPTURE;typedef LPDIRECTSOUNDCAPTUREBUFFER *LPLPDIRECTSOUNDCAPTUREBUFFER;typedef LPDIRECTSOUNDNOTIFY *LPLPDIRECTSOUNDNOTIFY; #if DIRECTSOUND_VERSION >= 0x0800typedef LPDIRECTSOUND8 *LPLPDIRECTSOUND8;typedef LPDIRECTSOUNDBUFFER8 *LPLPDIRECTSOUNDBUFFER8;typedef LPDIRECTSOUNDCAPTURE8 *LPLPDIRECTSOUNDCAPTURE8;typedef LPDIRECTSOUNDCAPTUREBUFFER8 *LPLPDIRECTSOUNDCAPTUREBUFFER8;#endif // DIRECTSOUND_VERSION >= 0x0800 //// Structures// typedef struct _DSCAPS{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwMinSecondarySampleRate;    DWORD           dwMaxSecondarySampleRate;    DWORD           dwPrimaryBuffers;    DWORD           dwMaxHwMixingAllBuffers;    DWORD           dwMaxHwMixingStaticBuffers;    DWORD           dwMaxHwMixingStreamingBuffers;    DWORD           dwFreeHwMixingAllBuffers;    DWORD           dwFreeHwMixingStaticBuffers;    DWORD           dwFreeHwMixingStreamingBuffers;    DWORD           dwMaxHw3DAllBuffers;    DWORD           dwMaxHw3DStaticBuffers;    DWORD           dwMaxHw3DStreamingBuffers;    DWORD           dwFreeHw3DAllBuffers;    DWORD           dwFreeHw3DStaticBuffers;    DWORD           dwFreeHw3DStreamingBuffers;    DWORD           dwTotalHwMemBytes;    DWORD           dwFreeHwMemBytes;    DWORD           dwMaxContigFreeHwMemBytes;    DWORD           dwUnlockTransferRateHwBuffers;    DWORD           dwPlayCpuOverheadSwBuffers;    DWORD           dwReserved1;    DWORD           dwReserved2;} DSCAPS, *LPDSCAPS; typedef const DSCAPS *LPCDSCAPS; typedef struct _DSBCAPS{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwUnlockTransferRate;    DWORD           dwPlayCpuOverhead;} DSBCAPS, *LPDSBCAPS; typedef const DSBCAPS *LPCDSBCAPS; #if DIRECTSOUND_VERSION >= 0x0800     typedef struct _DSEFFECTDESC    {        DWORD       dwSize;        DWORD       dwFlags;        GUID        guidDSFXClass;        DWORD_PTR   dwReserved1;        DWORD_PTR   dwReserved2;    } DSEFFECTDESC, *LPDSEFFECTDESC;    typedef const DSEFFECTDESC *LPCDSEFFECTDESC;     #define DSFX_LOCHARDWARE    0x00000001    #define DSFX_LOCSOFTWARE    0x00000002     enum    {        DSFXR_PRESENT,          // 0        DSFXR_LOCHARDWARE,      // 1        DSFXR_LOCSOFTWARE,      // 2        DSFXR_UNALLOCATED,      // 3        DSFXR_FAILED,           // 4        DSFXR_UNKNOWN,          // 5        DSFXR_SENDLOOP          // 6    };     typedef struct _DSCEFFECTDESC    {        DWORD       dwSize;        DWORD       dwFlags;        GUID        guidDSCFXClass;        GUID        guidDSCFXInstance;        DWORD       dwReserved1;        DWORD       dwReserved2;    } DSCEFFECTDESC, *LPDSCEFFECTDESC;    typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC;     #define DSCFX_LOCHARDWARE   0x00000001    #define DSCFX_LOCSOFTWARE   0x00000002     #define DSCFXR_LOCHARDWARE  0x00000010    #define DSCFXR_LOCSOFTWARE  0x00000020 #endif // DIRECTSOUND_VERSION >= 0x0800 typedef struct _DSBUFFERDESC{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwReserved;    LPWAVEFORMATEX  lpwfxFormat;#if DIRECTSOUND_VERSION >= 0x0700    GUID            guid3DAlgorithm;#endif} DSBUFFERDESC, *LPDSBUFFERDESC; typedef const DSBUFFERDESC *LPCDSBUFFERDESC; // Older version of this structure: typedef struct _DSBUFFERDESC1{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwReserved;    LPWAVEFORMATEX  lpwfxFormat;} DSBUFFERDESC1, *LPDSBUFFERDESC1; typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1; typedef struct _DS3DBUFFER{    DWORD           dwSize;    D3DVECTOR       vPosition;    D3DVECTOR       vVelocity;    DWORD           dwInsideConeAngle;    DWORD           dwOutsideConeAngle;    D3DVECTOR       vConeOrientation;    LONG            lConeOutsideVolume;    D3DVALUE        flMinDistance;    D3DVALUE        flMaxDistance;    DWORD           dwMode;} DS3DBUFFER, *LPDS3DBUFFER; typedef const DS3DBUFFER *LPCDS3DBUFFER; typedef struct _DS3DLISTENER{    DWORD           dwSize;    D3DVECTOR       vPosition;    D3DVECTOR       vVelocity;    D3DVECTOR       vOrientFront;    D3DVECTOR       vOrientTop;    D3DVALUE        flDistanceFactor;    D3DVALUE        flRolloffFactor;    D3DVALUE        flDopplerFactor;} DS3DLISTENER, *LPDS3DLISTENER; typedef const DS3DLISTENER *LPCDS3DLISTENER; typedef struct _DSCCAPS{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwFormats;    DWORD           dwChannels;} DSCCAPS, *LPDSCCAPS; typedef const DSCCAPS *LPCDSCCAPS; typedef struct _DSCBUFFERDESC1{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwReserved;    LPWAVEFORMATEX  lpwfxFormat;} DSCBUFFERDESC1, *LPDSCBUFFERDESC1; typedef struct _DSCBUFFERDESC{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwReserved;    LPWAVEFORMATEX  lpwfxFormat;#if DIRECTSOUND_VERSION >= 0x0800    DWORD           dwFXCount;    LPDSCEFFECTDESC lpDSCFXDesc;#endif} DSCBUFFERDESC, *LPDSCBUFFERDESC; typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC; typedef struct _DSCBCAPS{    DWORD           dwSize;    DWORD           dwFlags;    DWORD           dwBufferBytes;    DWORD           dwReserved;} DSCBCAPS, *LPDSCBCAPS; typedef const DSCBCAPS *LPCDSCBCAPS; typedef struct _DSBPOSITIONNOTIFY{    DWORD           dwOffset;    HANDLE          hEventNotify;} DSBPOSITIONNOTIFY, *LPDSBPOSITIONNOTIFY; typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY; //// DirectSound API// typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID);typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID); extern HRESULT WINAPI DirectSoundCreate(LPCGUID pcGuidDevice, LPDIRECTSOUND *ppDS, LPUNKNOWN pUnkOuter);extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA pDSEnumCallback, LPVOID pContext);extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW pDSEnumCallback, LPVOID pContext); extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID pcGuidDevice, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter);extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA pDSEnumCallback, LPVOID pContext);extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW pDSEnumCallback, LPVOID pContext); #if DIRECTSOUND_VERSION >= 0x0800extern HRESULT WINAPI DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter);extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter);extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,        LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd,        DWORD dwLevel, LPDIRECTSOUNDFULLDUPLEX* ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8,        LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate extern HRESULT WINAPI GetDeviceID(LPCGUID pGuidSrc, LPGUID pGuidDest);#endif // DIRECTSOUND_VERSION >= 0x0800 #ifdef UNICODE#define LPDSENUMCALLBACK            LPDSENUMCALLBACKW#define DirectSoundEnumerate        DirectSoundEnumerateW#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateW#else // UNICODE#define LPDSENUMCALLBACK            LPDSENUMCALLBACKA#define DirectSoundEnumerate        DirectSoundEnumerateA#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateA#endif // UNICODE //// IUnknown// #if !defined(__cplusplus) || defined(CINTERFACE)#ifndef IUnknown_QueryInterface#define IUnknown_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)#endif // IUnknown_QueryInterface#ifndef IUnknown_AddRef#define IUnknown_AddRef(p)              (p)->lpVtbl->AddRef(p)#endif // IUnknown_AddRef#ifndef IUnknown_Release

Lines 1–500 of 2369.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t