/// <summary> /// Handle panel creation - initialize slimdx directsound players /// </summary> /// <param name="e"></param> protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); DirectSoundWrapper.Initialize(this); #region Create controls string soundFolder = Application.StartupPath + "\\AudioPanel"; if (!Directory.Exists(soundFolder)) { logger.Warn("AudioPanel: the sound folder '" + soundFolder + "' does not exist. No sounds have been loaded"); } else { foreach (string file in Directory.GetFiles(soundFolder)) { AudioChannel ch = new AudioChannel(file, Path.GetFileName(file), true); audioChannels.Add(ch); } } #endregion foreach (AudioChannel ac in audioChannels) { Controls.Add(ac); } }
/// <summary> /// Initializes a media player with the given file /// </summary> /// <param name="fileName">the file to play</param> /// <returns>true if successful</returns> private bool _setupSoundPlayer(string filename) { bool retval = false; soundPlayer = null; if ((filename.Length != 0)) { try { fileName = filename; soundPlayer = DirectSoundWrapper.CreateSoundBufferFromWave(fileName); SlimDX.Multimedia.WaveStream waveFile = new SlimDX.Multimedia.WaveStream(fileName); List <NotificationPosition> pos = new List <NotificationPosition>(); notificationPosition.Offset = (int)waveFile.Length - 1; notificationPosition.Event = new AutoResetEvent(false); pos.Add(notificationPosition); soundPlayer.SetNotificationPositions(pos.ToArray()); } catch (Exception ex) { logger.Error("[SoundPlayer] Error creating soundplayer: " + ex.Message); } _updateVolume(volume); retval = true; } return(retval); }
/// <summary> /// Handle panel destruction - clean up slimdx directsound /// </summary> /// <param name="e"></param> protected override void OnHandleDestroyed(EventArgs e) { base.OnHandleDestroyed(e); DirectSoundWrapper.Shutdown(); }