using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Media; // klasa SystemSounds using System.Threading; // Thread.Sleep(); using System.Windows.Threading; //DispatcherPriority, timer /* * Dźwieki systemowe * ******************* * * należy kliknąć na przycisk z nazwą dźwięku systemowego * aby usłyszeć w głosniku jego dźwięk * * * Tracker * ******* * * gra dżwieki systemowe sekwencyjnie z pomocą timera, * należy wybrać dźwięki systemowe za pomocą przycisków radiowych, * kliknąc na przycisk set (ustawienie Labeli) i na przycisk go * (uruchomienie Trackera), przycisk stop zatrzymuje tracker * * * Music * ***** * * gra dany dźwięk losową ilość razy z losową przerwą między dźwiekami * * * Music2 * ***** * * gra losowy dźwięk losową ilość razy z losową przerwą między dźwiekami * */ namespace systemSounds { // refresh - metoda pomocnicza do odświeżenia labeli (zmiana koloru labela) public static class ExtensionMethods { private static Action EmptyDelegate = delegate () { }; public static void Refresh(this UIElement uiElement) { uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate); } } /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); // initialize Tracker's Lists InitializeTracker(); // initialize timer InitializeTimer(); } // milisekundy private const int DLUGOSC_NUTY_TRACKERA_MILISEC = 500; // inicjalizacja timera private void InitializeTimer() { // konfiguracja timera dispatcherTimer.Tick += dispatcherTimer_Tick; // ustawienie interwału timera dispatcherTimer.Interval = TimeSpan.FromMilliseconds(DLUGOSC_NUTY_TRACKERA_MILISEC); } // buttony dźwięków systemowych // private void btnAsterisk_Click(object sender, RoutedEventArgs e) { SystemSounds.Asterisk.Play(); } private void btnBeep_Click(object sender, RoutedEventArgs e) { SystemSounds.Beep.Play(); } private void btnExclamation_Click(object sender, RoutedEventArgs e) { SystemSounds.Exclamation.Play(); } private void btnHand_Click(object sender, RoutedEventArgs e) { SystemSounds.Hand.Play(); } private void btnQuestion_Click(object sender, RoutedEventArgs e) { SystemSounds.Question.Play(); } // tracker // // track składa sie z labeli (kolory wyświetlane są w labalach) List