Пример #1
0
        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
                }));
            }
        }