Skip to content

Instantly share code, notes, and snippets.

@mfkl
Created April 7, 2020 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mfkl/1d0ba62ebc90282119c9099bd7dc840a to your computer and use it in GitHub Desktop.
Save mfkl/1d0ba62ebc90282119c9099bd7dc840a to your computer and use it in GitHub Desktop.
internal void OnGesture(PanUpdatedEventArgs e)
{
switch (e.StatusType)
{
case GestureStatus.Running:
if (e.TotalX < 0 && Math.Abs(e.TotalX) > Math.Abs(e.TotalY))
{
var timeDiff = Convert.ToInt64(e.TotalX * 1000);
_finalTime = MediaPlayer.Time + timeDiff;
if (WillOverflow)
break;
Message = FormatSeekingMessage(timeDiff, _finalTime, Direction.Left);
_timeChanged = true;
}
else if (e.TotalX > 0 && Math.Abs(e.TotalX) > Math.Abs(e.TotalY))
{
var timeDiff = Convert.ToInt64(e.TotalX * 1000);
_finalTime = MediaPlayer.Time + timeDiff;
if (WillOverflow)
break;
Message = FormatSeekingMessage(timeDiff, _finalTime, Direction.Right);
_timeChanged = true;
}
else if (e.TotalY < 0 && Math.Abs(e.TotalY) > Math.Abs(e.TotalX))
{
var volume = (int)(MediaPlayer.Volume + e.TotalY * -1);
_finalVolume = VolumeRangeCheck(volume);
Message = FormatVolumeMessage(_finalVolume, Direction.Top);
_volumeChanged = true;
}
else if (e.TotalY > 0 && e.TotalY > Math.Abs(e.TotalX))
{
var volume = (int)(MediaPlayer.Volume + e.TotalY * -1);
_finalVolume = VolumeRangeCheck(volume);
Message = FormatVolumeMessage(_finalVolume, Direction.Bottom);
_volumeChanged = true;
}
break;
case GestureStatus.Started:
case GestureStatus.Canceled:
Message = string.Empty;
break;
case GestureStatus.Completed:
if (_timeChanged)
MediaPlayer.Time = _finalTime;
if (_volumeChanged && MediaPlayer.Volume != _finalVolume)
MediaPlayer.Volume = _finalVolume;
Message = string.Empty;
_timeChanged = false;
_volumeChanged = false;
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment