Ejemplo n.º 1
0
 private void StartTask <TArg>(Func <TArg, Task> action, TArg arg, MarshaledTaskCompletionSource tcs)
 {
     try
     {
         SetupTask(action(arg), tcs);
     }
     catch (Exception e)
     {
         tcs.SetException(e);
     }
 }
Ejemplo n.º 2
0
 private void SetupTask(Task task, MarshaledTaskCompletionSource tcs)
 {
     task.ContinueWith(t =>
     {
         if (t.IsFaulted)
         {
             tcs.SetException(t.Exception.InnerException);
         }
         else
         {
             tcs.SetResult();
         }
     }, TaskScheduler.Default);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Seeks to next track.
 /// </summary>
 /// <param name="tcs">The task completion source.</param>
 public void NextTrack(MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.NextTrackAsync, tcs);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Deactivates the audio source.
 /// </summary>
 /// <param name="tcs">The task completion source.</param>
 public void Deactivate(MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.DeactivateAsync, tcs);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Sets the repeat mode.
 /// </summary>
 /// <param name="repeatMode">The repeat mode.</param>
 /// <param name="tcs">The task completion source.</param>
 public void SetRepeatMode(RepeatMode repeatMode, MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.SetRepeatModeAsync, repeatMode, tcs);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Sets the shuffle mode.
 /// </summary>
 /// <param name="shuffle">The shuffle.</param>
 /// <param name="tcs">The task completion source.</param>
 public void SetShuffle(bool shuffle, MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.SetShuffleAsync, shuffle, tcs);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Sets the playback progress.
 /// </summary>
 /// <param name="newProgress">The new progress.</param>
 /// <param name="tcs">The task completion source.</param>
 public void SetPlayback(TimeSpan newProgress, MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.SetPlaybackProgressAsync, newProgress, tcs);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Sets the volume.
 /// </summary>
 /// <param name="newVolume">The new volume.</param>
 /// <param name="tcs">The task completion source.</param>
 public void SetVolume(float newVolume, MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.SetVolumeAsync, newVolume, tcs);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Seeks to the previous track.
 /// </summary>
 /// <param name="tcs">The task completion source.</param>
 public void PreviousTrack(MarshaledTaskCompletionSource tcs)
 {
     StartTask(_audioSource.PreviousTrackAsync, tcs);
 }