Exemplo n.º 1
0
        public async Task <PlayerStatusModel> ControlAction(PlayerControlRequest playerControlRequest)
        {
            switch (playerControlRequest.ControlRequest)
            {
            case ControlRequest.VolumeAbsolute:
                var volume = (byte)playerControlRequest.RequestData;
                PlayerActor.Volume(volume);
                break;

            case ControlRequest.RepeatToggle:
                PlayerActor.ToggleRepeat();
                break;

            case ControlRequest.Seek:
                PlayerActor.Seek(playerControlRequest.RequestData);
                break;

            case ControlRequest.VolumeRelative:
                var volumeStep = (byte)playerControlRequest.RequestData;
                var oldVolume  = PlayerActor.BassActor.CurrentVolume;
                var newVolume  = (byte)(oldVolume + volumeStep);
                PlayerActor.Volume(newVolume);
                break;

            case ControlRequest.Random:
            default:
                break;
            }
            await SendPlaybackStatus();

            return(await Task.FromResult(getPlayerStatus()));
        }
Exemplo n.º 2
0
        public IActionResult PlayerControlAction([FromBody] PlayerControlRequest playerControlRequest)
        {
            dynamic response = null;

            switch (playerControlRequest.ControlRequest)
            {
            case ControlRequest.VolumeAbsolute:
                var volume = (byte)playerControlRequest.RequestData;
                if (player.Volume(volume))
                {
                    response = new { Status = true, Message = $"Set Volume!", Values = new { Scale1 = player.BassActor.CurrentVolume, Scale2 = (float)player.BassActor.CurrentVolume / 100f } }
                }
                ;
                else
                {
                    response = new { Status = false, Message = $"Unknown Error!" }
                };
                break;

            case ControlRequest.RepeatToggle:
                var result = player.ToggleRepeat();
                response = new
                {
                    Status  = result,
                    Message = result ? $"Success! Repeat: {player.BassActor.Repeat}" : $"Failed! {player.PlaybackState.ToString()}",
                    player.BassActor.Repeat
                };
                break;

            case ControlRequest.Seek:
                result   = player.Seek(playerControlRequest.RequestData);
                response = new
                {
                    Status  = result,
                    Message = result ? $"Success! Seek: {playerControlRequest.RequestData}" : $"Failed to seek to: {playerControlRequest.RequestData.ToString()}!",
                    player.BassActor.CurrentPositionBytes,
                    player.BassActor.CurrentPositionSeconds,
                    player.BassActor.CurrentPositionString
                };
                break;

            case ControlRequest.VolumeRelative:
                var volumeStep = (byte)playerControlRequest.RequestData;
                var oldVolume  = player.BassActor.CurrentVolume;
                var newVolume  = (byte)(oldVolume + volumeStep);
                if (player.Volume(newVolume))
                {
                    response = new { Status = true, Message = $"Set Volume!", Values = new { Scale1 = player.BassActor.CurrentVolume, Scale2 = (float)player.BassActor.CurrentVolume / 100f } }
                }
                ;
                else
                {
                    response = new { Status = false, Message = $"Unknown Error!" }
                };
                break;

            case ControlRequest.Random:
            default:
                break;
            }
            return(Ok(response));
        }