Improve ABI compatibility

This commit is contained in:
akallabeth 2022-06-03 07:45:23 +02:00 committed by akallabeth
parent 902727df5e
commit b69499c060
2 changed files with 51 additions and 46 deletions

View File

@ -42,23 +42,23 @@ struct AUDIO_FORMAT
}; };
typedef struct AUDIO_FORMAT AUDIO_FORMAT; typedef struct AUDIO_FORMAT AUDIO_FORMAT;
#define SNDC_CLOSE 0x01 #define SNDC_CLOSE 1
#define SNDC_WAVE 0x02 #define SNDC_WAVE 2
#define SNDC_SETVOLUME 0x03 #define SNDC_SETVOLUME 3
#define SNDC_SETPITCH 0x04 #define SNDC_SETPITCH 4
#define SNDC_WAVECONFIRM 0x05 #define SNDC_WAVECONFIRM 5
#define SNDC_TRAINING 0x06 #define SNDC_TRAINING 6
#define SNDC_FORMATS 0x07 #define SNDC_FORMATS 7
#define SNDC_CRYPTKEY 0x08 #define SNDC_CRYPTKEY 8
#define SNDC_WAVEENCRYPT 0x09 #define SNDC_WAVEENCRYPT 9
#define SNDC_UDPWAVE 0x0A #define SNDC_UDPWAVE 10
#define SNDC_UDPWAVELAST 0x0B #define SNDC_UDPWAVELAST 11
#define SNDC_QUALITYMODE 0x0C #define SNDC_QUALITYMODE 12
#define SNDC_WAVE2 0x0D #define SNDC_WAVE2 13
#define TSSNDCAPS_ALIVE 0x00000001 #define TSSNDCAPS_ALIVE 1
#define TSSNDCAPS_VOLUME 0x00000002 #define TSSNDCAPS_VOLUME 2
#define TSSNDCAPS_PITCH 0x00000004 #define TSSNDCAPS_PITCH 4
#define DYNAMIC_QUALITY 0x0000 #define DYNAMIC_QUALITY 0x0000
#define MEDIUM_QUALITY 0x0001 #define MEDIUM_QUALITY 0x0001

View File

@ -82,15 +82,6 @@ struct s_rdpsnd_server_context
UINT16 num_client_formats; UINT16 num_client_formats;
UINT16 selected_client_format; UINT16 selected_client_format;
/* dwFlags in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 capsFlags;
/* dwVolume in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 initialVolume;
/* dwPitch in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 initialPitch;
UINT16 qualityMode;
/* Last sent audio block number. */ /* Last sent audio block number. */
UINT8 block_no; UINT8 block_no;
@ -101,16 +92,7 @@ struct s_rdpsnd_server_context
* will not be called and the server must not call any API on this context. * will not be called and the server must not call any API on this context.
*/ */
psRdpsndServerInitialize Initialize; psRdpsndServerInitialize Initialize;
/**
* Send server formats and version to the client. Automatically sent, when
* opening the channel.
* Also used to restart the protocol after sending the Close PDU.
*/
psRdpsndServerSendFormats SendFormats;
/**
* Send Training PDU.
*/
psRdpsndServerTraining Training;
/** /**
* Choose the audio format to be sent. The index argument is an index into * Choose the audio format to be sent. The index argument is an index into
* the client_formats array and must be smaller than num_client_formats. * the client_formats array and must be smaller than num_client_formats.
@ -121,11 +103,11 @@ struct s_rdpsnd_server_context
* nframes * src_format.nBitsPerSample * src_format.nChannels / 8 * nframes * src_format.nBitsPerSample * src_format.nChannels / 8
*/ */
psRdpsndServerSendSamples SendSamples; psRdpsndServerSendSamples SendSamples;
/** /**
* Send encoded audio samples using a Wave2 PDU. * Called when block confirm is received from the client
* When successful, the block_no member is incremented.
*/ */
psRdpsndServerSendSamples2 SendSamples2; psRdpsndServerConfirmBlock ConfirmBlock;
/** /**
* Set the volume level of the client. Valid range is between 0 and 0xFFFF. * Set the volume level of the client. Valid range is between 0 and 0xFFFF.
*/ */
@ -143,14 +125,6 @@ struct s_rdpsnd_server_context
* synchronization. * synchronization.
*/ */
psRdpsndServerActivated Activated; psRdpsndServerActivated Activated;
/**
* Called when a TrainingConfirm PDU is received from the client.
*/
psRdpsndServerTrainingConfirm TrainingConfirm;
/**
* Called when block confirm is received from the client.
*/
psRdpsndServerConfirmBlock ConfirmBlock;
/** /**
* MS-RDPEA channel version the client announces * MS-RDPEA channel version the client announces
@ -158,6 +132,37 @@ struct s_rdpsnd_server_context
UINT16 clientVersion; UINT16 clientVersion;
rdpContext* rdpcontext; rdpContext* rdpcontext;
/* dwFlags in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 capsFlags;
/* dwVolume in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 initialVolume;
/* dwPitch in CLIENT_AUDIO_VERSION_AND_FORMATS */
UINT32 initialPitch;
UINT16 qualityMode;
/**
* Send server formats and version to the client. Automatically sent, when
* opening the channel.
* Also used to restart the protocol after sending the Close PDU.
*/
psRdpsndServerSendFormats SendFormats;
/**
* Send Training PDU.
*/
psRdpsndServerTraining Training;
/**
* Send encoded audio samples using a Wave2 PDU.
* When successful, the block_no member is incremented.
*/
psRdpsndServerSendSamples2 SendSamples2;
/**
* Called when a TrainingConfirm PDU is received from the client.
*/
psRdpsndServerTrainingConfirm TrainingConfirm;
}; };
#ifdef __cplusplus #ifdef __cplusplus