﻿// -----------------------------------------------------------------------
// <copyright file="SoundProvider.cs" company="">
// Copyright (c) 2011-2012 Bernhard Schwarz, Florian Lembeck
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
// -----------------------------------------------------------------------

namespace Handle.WPF
{
  using System;
  using System.Collections.Generic;
  using System.ComponentModel.Composition;
  using System.IO;
  using System.Linq;
  using System.Text;

  class SoundProvider : INotificationProvider
  {
    private Settings settings;

    [ImportingConstructor]
    public SoundProvider(Settings settings)
    {
      this.settings = settings;
    }

    /// <summary>
    /// Plays sound to notify the user of an important message
    /// </summary>
    /// <param name="args"></param>
    public void Notify(MessageFilterEventArgs args)
    {
      if (this.settings.SoundPath != "")
      {
        try
        {
          ExtendedSoundPlayer sp = new ExtendedSoundPlayer(this.settings.SoundPath);
          sp.PlaySound();
        }
        catch (FileNotFoundException ex) 
        {
          Console.WriteLine(ex.ToString());
        }
      }
      else 
      {
        Console.WriteLine("Keine Sounddatei ausgewählt");
      }
    }
  }
}
