public VolumeFader(IMediaFile mediaFile, TimeSpan fadeOnStart, TimeSpan fadeOnEnd, TimeSpan fadeOnPause, TimeSpan fadeOnResume)
        {
            m_MediaFile   = mediaFile;
            m_FadeOnStart = fadeOnStart;
            m_FadeOnEnd   = fadeOnEnd;

            m_MediaFile.Progress.ValueChanged += MediaFile_Progress_ValueChanged;
            m_MediaFile.TaskStateChanged      += new TaskEventHandler(MediaFile_TaskStateChanged);

            m_ValueFader = new ValueFader(TimeSpan.Zero, new ValueDisplacer(ValueDisplacer));

            m_ValueFader.NewValue += delegate(object sender, ValueFaderEventArgs eventArgs)
            {
                m_MediaFile.VolumeLevel = (VolumeLevel)eventArgs.NewValue;
            };
        }
		public VolumeFader(IMediaFile mediaFile, TimeSpan fadeOnStart, TimeSpan fadeOnEnd, TimeSpan fadeOnPause, TimeSpan fadeOnResume)
		{
			m_MediaFile = mediaFile;
			m_FadeOnStart = fadeOnStart;
			m_FadeOnEnd = fadeOnEnd;

			m_MediaFile.Progress.ValueChanged += MediaFile_Progress_ValueChanged;
			m_MediaFile.TaskStateChanged += new TaskEventHandler(MediaFile_TaskStateChanged);

			m_ValueFader = new ValueFader(TimeSpan.Zero, new ValueDisplacer(ValueDisplacer));

			m_ValueFader.NewValue += delegate(object sender, ValueFaderEventArgs eventArgs)
			{
				m_MediaFile.VolumeLevel = (VolumeLevel)eventArgs.NewValue;
			};
		}