public SongPlayerWindowsMediaPlayer()
        {
            player = new WindowsMediaPlayer();
            player.settings.volume = 75;

            _queue = new FairQueue();
            _songLibrary = new SongLibrary();
            _songLibrary.StatusChanged += OnLibraryStatusChanged;

            _updateThread = new Thread(new ThreadStart(Update));
            _updateThread.Start();
        }
        public SongPlayerWindowsMediaPlayer()
        {
            player = new WindowsMediaPlayer();
            player.settings.volume = 75;

            _queue       = new FairQueue();
            _songLibrary = new SongLibrary();
            _songLibrary.StatusChanged += OnLibraryStatusChanged;

            _updateThread = new Thread(new ThreadStart(Update));
            _updateThread.Start();
        }
        public void Enqueue(Song song, string requesterName)
        {
            if (!ClientAllowed(requesterName))
            {
                return;
            }

            int maximalsonginqueue;

            if (!int.TryParse(SongPlayerFactory.GetConfigFile().GetValue("player.maximalsonginqueue"), out maximalsonginqueue))
            {
                maximalsonginqueue = int.MaxValue;
            }

            if (_queue.Count >= maximalsonginqueue)
            {
                return;
            }

            SongLibrary.UpdateSingleTag(song);
            _queue.Add(new RequestedSong {
                Song = song, RequesterName = requesterName, RequestedDate = DateTime.Now
            });
        }