📄 dvoice.h
字号:
//
// Complete the operation before returning
//
#define DVFLAGS_SYNC 0x00000001
//
// Just check to see if wizard has been run, and if so what it's results were
//
#define DVFLAGS_QUERYONLY 0x00000002
//
// Shutdown the voice session without migrating the host
//
#define DVFLAGS_NOHOSTMIGRATE 0x00000008
//
// Allow the back button to be enabled in the wizard
//
#define DVFLAGS_ALLOWBACK 0x00000010
//
// Disable host migration in the voice session
//
#define DVSESSION_NOHOSTMIGRATION 0x00000001
//
// Server controlled targetting
//
#define DVSESSION_SERVERCONTROLTARGET 0x00000002
//
// Use DirectSound Normal Mode instead of priority
//
#define DVSOUNDCONFIG_NORMALMODE 0x00000001
//
// Automatically select the microphone
//
#define DVSOUNDCONFIG_AUTOSELECT 0x00000002
//
// Run in half duplex mode
//
#define DVSOUNDCONFIG_HALFDUPLEX 0x00000004
//
// No volume controls are available for the recording device
//
#define DVSOUNDCONFIG_NORECVOLAVAILABLE 0x00000010
//
// Disable capture sharing
//
#define DVSOUNDCONFIG_NOFOCUS 0x20000000
//
// Set system conversion quality to high
//
#define DVSOUNDCONFIG_SETCONVERSIONQUALITY 0x00000008
//
// Enable strict focus mode
//
#define DVSOUNDCONFIG_STRICTFOCUS 0x40000000
//
// Player is in half duplex mode
//
#define DVPLAYERCAPS_HALFDUPLEX 0x00000001
//
// Specifies that player is the local player
//
#define DVPLAYERCAPS_LOCAL 0x00000002
/****************************************************************************
*
* DirectPlayVoice Structures (Non-Message)
*
****************************************************************************/
//
// DirectPlayVoice Caps
// (GetCaps / SetCaps)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwFlags; // Caps flags
} DVCAPS, *LPDVCAPS, *PDVCAPS;
//
// DirectPlayVoice Client Configuration
// (Connect / GetClientConfig)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwFlags; // Flags for client config (DVCLIENTCONFIG_...)
LONG lRecordVolume; // Recording volume
LONG lPlaybackVolume; // Playback volume
DWORD dwThreshold; // Voice Activation Threshold
DWORD dwBufferQuality; // Buffer quality
DWORD dwBufferAggressiveness; // Buffer aggressiveness
DWORD dwNotifyPeriod; // Period of notification messages (ms)
} DVCLIENTCONFIG, *LPDVCLIENTCONFIG, *PDVCLIENTCONFIG;
//
// DirectPlayVoice Compression Type Information
// (GetCompressionTypes)
//
typedef struct
{
DWORD dwSize; // Size of this structure
GUID guidType; // GUID that identifies this compression type
LPWSTR lpszName; // String name of this compression type
LPWSTR lpszDescription; // Description for this compression type
DWORD dwFlags; // Flags for this compression type
DWORD dwMaxBitsPerSecond; // Maximum # of bit/s this compression type uses
} DVCOMPRESSIONINFO, *LPDVCOMPRESSIONINFO, *PDVCOMPRESSIONINFO;
//
// DirectPlayVoice Session Description
// (Host / GetSessionDesc)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwFlags; // Session flags (DVSESSION_...)
DWORD dwSessionType; // Session type (DVSESSIONTYPE_...)
GUID guidCT; // Compression Type to use
DWORD dwBufferQuality; // Buffer quality
DWORD dwBufferAggressiveness; // Buffer aggresiveness
} DVSESSIONDESC, *LPDVSESSIONDESC, *PDVSESSIONDESC;
//
// DirectPlayVoice Client Sound Device Configuration
// (Connect / GetSoundDeviceConfig)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwFlags; // Flags for sound config (DVSOUNDCONFIG_...)
GUID guidPlaybackDevice; // GUID of the playback device to use
LPDIRECTSOUND lpdsPlaybackDevice; // DirectSound Object to use (optional)
GUID guidCaptureDevice; // GUID of the capture device to use
LPDIRECTSOUNDCAPTURE lpdsCaptureDevice; // DirectSoundCapture Object to use (optional)
HWND hwndAppWindow; // HWND of your application's top-level window
LPDIRECTSOUNDBUFFER lpdsMainBuffer; // DirectSoundBuffer to use for playback (optional)
DWORD dwMainBufferFlags; // Flags to pass to Play() on the main buffer
DWORD dwMainBufferPriority; // Priority to set when calling Play() on the main buffer
} DVSOUNDDEVICECONFIG, *LPDVSOUNDDEVICECONFIG, *PDVSOUNDDEVICECONFIG;
/****************************************************************************
*
* DirectPlayVoice message handler call back structures
*
****************************************************************************/
//
// Result of the Connect() call. (If it wasn't called Async)
// (DVMSGID_CONNECTRESULT)
//
typedef struct
{
DWORD dwSize; // Size of this structure
HRESULT hrResult; // Result of the Connect() call
} DVMSG_CONNECTRESULT, *LPDVMSG_CONNECTRESULT, *PDVMSG_CONNECTRESULT;
//
// A new player has entered the voice session
// (DVMSGID_CREATEVOICEPLAYER)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidPlayer; // DVID of the player who joined
DWORD dwFlags; // Player flags (DVPLAYERCAPS_...)
PVOID pvPlayerContext; // Context value for this player (user set)
} DVMSG_CREATEVOICEPLAYER, *LPDVMSG_CREATEVOICEPLAYER, *PDVMSG_CREATEVOICEPLAYER;
//
// A player has left the voice session
// (DVMSGID_DELETEVOICEPLAYER)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidPlayer; // DVID of the player who left
PVOID pvPlayerContext; // Context value for the player
} DVMSG_DELETEVOICEPLAYER, *LPDVMSG_DELETEVOICEPLAYER, *PDVMSG_DELETEVOICEPLAYER;
//
// Result of the Disconnect() call. (If it wasn't called Async)
// (DVMSGID_DISCONNECTRESULT)
//
typedef struct
{
DWORD dwSize; // Size of this structure
HRESULT hrResult; // Result of the Disconnect() call
} DVMSG_DISCONNECTRESULT, *LPDVMSG_DISCONNECTRESULT, *PDVMSG_DISCONNECTRESULT;
//
// The voice session host has migrated.
// (DVMSGID_HOSTMIGRATED)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidNewHostID; // DVID of the player who is now the host
LPDIRECTPLAYVOICESERVER pdvServerInterface;
// Pointer to the new host object (if local player is now host)
} DVMSG_HOSTMIGRATED, *LPDVMSG_HOSTMIGRATED, *PDVMSG_HOSTMIGRATED;
//
// The current input level / recording volume on the local machine
// (DVMSGID_INPUTLEVEL)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwPeakLevel; // Current peak level of the audio
LONG lRecordVolume; // Current recording volume
PVOID pvLocalPlayerContext; // Context value for the local player
} DVMSG_INPUTLEVEL, *LPDVMSG_INPUTLEVEL, *PDVMSG_INPUTLEVEL;
//
// The local client is about to become the new host
// (DVMSGID_LOCALHOSTSETUP)
//
typedef struct
{
DWORD dwSize; // Size of this structure
PVOID pvContext; // Context value to be passed to Initialize() of new host object
PDVMESSAGEHANDLER pMessageHandler; // Message handler to be used by new host object
} DVMSG_LOCALHOSTSETUP, *LPDVMSG_LOCALHOSTSETUP, *PDVMSG_LOCALHOSTSETUP;
//
// The current output level for the combined output of all incoming streams.
// (DVMSGID_OUTPUTLEVEL)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwPeakLevel; // Current peak level of the output
LONG lOutputVolume; // Current playback volume
PVOID pvLocalPlayerContext; // Context value for the local player
} DVMSG_OUTPUTLEVEL, *LPDVMSG_OUTPUTLEVEL, *PDVMSG_OUTPUTLEVEL;
//
// The current peak level of an individual player's incoming audio stream as it is
// being played back.
// (DVMSGID_PLAYEROUTPUTLEVEL)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidSourcePlayerID; // DVID of the player
DWORD dwPeakLevel; // Peak level of the player's stream
PVOID pvPlayerContext; // Context value for the player
} DVMSG_PLAYEROUTPUTLEVEL, *LPDVMSG_PLAYEROUTPUTLEVEL, *PDVMSG_PLAYEROUTPUTLEVEL;
//
// An audio stream from the specified player has started playing back on the local client.
// (DVMSGID_PLAYERVOICESTART).
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidSourcePlayerID; // DVID of the Player
PVOID pvPlayerContext; // Context value for this player
} DVMSG_PLAYERVOICESTART, *LPDVMSG_PLAYERVOICESTART, *PDVMSG_PLAYERVOICESTART;
//
// The audio stream from the specified player has stopped playing back on the local client.
// (DVMSGID_PLAYERVOICESTOP)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DVID dvidSourcePlayerID; // DVID of the player
PVOID pvPlayerContext; // Context value for this player
} DVMSG_PLAYERVOICESTOP, *LPDVMSG_PLAYERVOICESTOP, *PDVMSG_PLAYERVOICESTOP;
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -