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