public override async Task <SetMasterVolumeReply> SetMasterVolume(SetMasterVolumeRequest request, ServerCallContext context) { var value = await InteropService.SetMasterVolume(request.Value); return(new SetMasterVolumeReply() { Value = value }); }
public override Task <SetMasterVolumeReply> SetMasterVolume(SetMasterVolumeRequest request, ServerCallContext context) { Log.Info("Executing [{Name}] [{NewValue}]", nameof(SetMasterVolume), request.Value); var previousVolume = SimpleAudioManager.GetMasterVolume(); var newVolume = Math.Max(Math.Min(100, request.Value), 0); if (MathHelper.IsEqual(newVolume, previousVolume, 1.01f)) { return(Task.FromResult(new SetMasterVolumeReply() { Value = (int)previousVolume })); } else { Log.Debug("Changing volume from [{From}] to [{To}]", previousVolume, newVolume); SimpleAudioManager.SetMasterVolume(newVolume); var masterVolume = SimpleAudioManager.GetMasterVolume(); return(Task.FromResult(new SetMasterVolumeReply() { Value = (int)masterVolume })); } }