private void playSongSelection(double secondsStart, double secondsEnd)
{
TimeSpan startTime = new TimeSpan((int)(secondsStart * 10000000));
TimeSpan durationTime = new TimeSpan((int)(secondsEnd * 10000000)) - startTime;
waveform.selectStart(secondsStart);
waveform.selectEnd(secondsEnd);
var waveformTicker = new DispatcherTimer();
waveformTicker.Tick += new EventHandler((object localsender, EventArgs locale) =>
{
if (waveform.isPlaying())
{
Debug.WriteLine("waveform is playing, so tick");
waveform.movePlay();
}
else
{
Debug.WriteLine("waveform stopped playing, so stop ticking");
isPlaying = false;
waveform.endPlay();
hideMode();
waveform.deselectSegment();
(localsender as DispatcherTimer).Stop();
}
});
double secondsPerPixel = 1 / waveform.getPixelsPerSecond();
double nanoseconds = secondsPerPixel * 1000000000;
int ticks = (int)(nanoseconds / 100);
Debug.WriteLine("Ticks: " + ticks);
waveformTicker.Interval = new TimeSpan(ticks);
AudioPlay.playForDuration(mainCanvas, songFilename, startTime, durationTime);
waveformTicker.Start();
waveform.startPlay();
switchModeToPlayback();
isPlaying = true;
}