mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-08-09 20:24:14 +00:00
[client] audio: update PureSpice and add support for volume control/mute
This commit is contained in:
@@ -50,6 +50,12 @@ struct LG_AudioDevOps
|
||||
|
||||
/* called when SPICE reports the audio stream has stopped */
|
||||
void (*stop)(void);
|
||||
|
||||
/* [optional] called to set the volume of the channels */
|
||||
void (*volume)(int channels, const uint16_t volume[]);
|
||||
|
||||
/* [optional] called to set muting of the output */
|
||||
void (*mute)(bool mute);
|
||||
};
|
||||
|
||||
#define ASSERT_LG_AUDIODEV_VALID(x) \
|
||||
|
@@ -899,14 +899,26 @@ void audioStart(int channels, int sampleRate, PSAudioFormat format,
|
||||
}
|
||||
}
|
||||
|
||||
void audioStop(void)
|
||||
static void audioStop(void)
|
||||
{
|
||||
if (g_state.audioDev)
|
||||
g_state.audioDev->stop();
|
||||
g_state.audioStarted = false;
|
||||
}
|
||||
|
||||
void audioData(uint8_t * data, size_t size)
|
||||
static void audioVolume(int channels, const uint16_t volume[])
|
||||
{
|
||||
if (g_state.audioDev && g_state.audioDev->volume)
|
||||
g_state.audioDev->volume(channels, volume);
|
||||
}
|
||||
|
||||
static void audioMute(bool mute)
|
||||
{
|
||||
if (g_state.audioDev && g_state.audioDev->mute)
|
||||
g_state.audioDev->mute(mute);
|
||||
}
|
||||
|
||||
static void audioData(uint8_t * data, size_t size)
|
||||
{
|
||||
if (g_state.audioDev)
|
||||
g_state.audioDev->play(data, size);
|
||||
@@ -1001,6 +1013,8 @@ static int lg_run(void)
|
||||
if (g_params.useSpiceAudio)
|
||||
spice_set_audio_cb(
|
||||
audioStart,
|
||||
audioVolume,
|
||||
audioMute,
|
||||
audioStop,
|
||||
audioData);
|
||||
|
||||
|
Submodule repos/PureSpice updated: 3ea156974b...1178cbb400
Reference in New Issue
Block a user