mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 03:37:59 +01:00
74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
// Copyright (c) Microsoft Corporation
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
using Microsoft.UI.Xaml;
|
|
using Microsoft.UI.Xaml.Controls;
|
|
using Peek.FilePreviewer.Previewers.MediaPreviewer.Models;
|
|
|
|
namespace Peek.FilePreviewer.Controls
|
|
{
|
|
public sealed partial class AudioControl : UserControl
|
|
{
|
|
public static readonly DependencyProperty SourceProperty = DependencyProperty.Register(
|
|
nameof(Source),
|
|
typeof(AudioPreviewData),
|
|
typeof(AudioControl),
|
|
new PropertyMetadata(null, new PropertyChangedCallback((d, e) => ((AudioControl)d).SourcePropertyChanged())));
|
|
|
|
public static readonly DependencyProperty ToolTipTextProperty = DependencyProperty.Register(
|
|
nameof(ToolTipText),
|
|
typeof(string),
|
|
typeof(AudioControl),
|
|
new PropertyMetadata(null));
|
|
|
|
public AudioPreviewData? Source
|
|
{
|
|
get { return (AudioPreviewData)GetValue(SourceProperty); }
|
|
set { SetValue(SourceProperty, value); }
|
|
}
|
|
|
|
public string ToolTipText
|
|
{
|
|
get { return (string)GetValue(ToolTipTextProperty); }
|
|
set { SetValue(ToolTipTextProperty, value); }
|
|
}
|
|
|
|
public AudioControl()
|
|
{
|
|
this.InitializeComponent();
|
|
}
|
|
|
|
private void SourcePropertyChanged()
|
|
{
|
|
if (Source == null)
|
|
{
|
|
PlayerElement.MediaPlayer.Pause();
|
|
PlayerElement.MediaPlayer.Source = null;
|
|
}
|
|
}
|
|
|
|
private void KeyboardAccelerator_Space_Invoked(Microsoft.UI.Xaml.Input.KeyboardAccelerator sender, Microsoft.UI.Xaml.Input.KeyboardAcceleratorInvokedEventArgs args)
|
|
{
|
|
var mediaPlayer = PlayerElement.MediaPlayer;
|
|
|
|
if (mediaPlayer.Source == null || !mediaPlayer.CanPause)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (mediaPlayer.CurrentState == Windows.Media.Playback.MediaPlayerState.Playing)
|
|
{
|
|
mediaPlayer.Pause();
|
|
}
|
|
else
|
|
{
|
|
mediaPlayer.Play();
|
|
}
|
|
|
|
// Prevent the keyboard accelerator to be called twice
|
|
args.Handled = true;
|
|
}
|
|
}
|
|
}
|