public void ClearSelection() { //m_Logger.Log("AudioPaneView.ClearSelection", Category.Debug, Priority.Medium); m_TimeSelectionLeftX = -1; WaveFormTimeSelectionRect.Visibility = Visibility.Hidden; WaveFormTimeSelectionRect.Width = 0; WaveFormTimeSelectionRect.SetValue(Canvas.LeftProperty, m_TimeSelectionLeftX); }
public void SetSelectionBytes(long begin, long end) { //m_Logger.Log("AudioPaneView.SetSelectionBytes", Category.Debug, Priority.Medium); m_TimeSelectionLeftX = begin / BytesPerPixel; WaveFormTimeSelectionRect.Visibility = Visibility.Visible; WaveFormTimeSelectionRect.Width = end / BytesPerPixel - m_TimeSelectionLeftX; WaveFormTimeSelectionRect.SetValue(Canvas.LeftProperty, m_TimeSelectionLeftX); }
public void SelectAll() { m_Logger.Log("AudioPaneView.SelectAll", Category.Debug, Priority.Medium); m_TimeSelectionLeftX = 0; WaveFormTimeSelectionRect.Visibility = Visibility.Visible; double width = MillisecondsPerPixelToPixelWidthConverter.calc(ZoomSlider.Value, m_ViewModel); #if DEBUG double widthReal = getWaveFormWidth(); DebugFix.Assert((long)Math.Round(width * 100) == (long)Math.Round(widthReal * 100)); #endif //DEBUG WaveFormTimeSelectionRect.Width = width; WaveFormTimeSelectionRect.SetValue(Canvas.LeftProperty, m_TimeSelectionLeftX); }
private void restoreSelection() { m_TimeSelectionLeftX = m_SelectionBackup_X; WaveFormTimeSelectionRect.Visibility = Visibility.Visible; WaveFormTimeSelectionRect.Width = m_SelectionBackup_Width; WaveFormTimeSelectionRect.SetValue(Canvas.LeftProperty, m_TimeSelectionLeftX); if (m_TimeSelectionLeftX < 0) { m_ViewModel.State.Selection.ClearSelection(); } else if (m_ViewModel.State.Audio.HasContent) { m_ViewModel.State.Selection.SetSelectionBytes( m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize( (long)Math.Round(m_TimeSelectionLeftX * BytesPerPixel)), m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize( (long)Math.Round((m_TimeSelectionLeftX + WaveFormTimeSelectionRect.Width) * BytesPerPixel))); } }
private void selectionFinished(double x) { WaveFormTimeSelectionRectBackup.Visibility = Visibility.Hidden; if (x == m_TimeSelectionLeftX) { ClearSelection(); m_ViewModel.CommandClearSelection.Execute(); //m_ViewModel.State.Selection.ClearSelection(); if (!m_ViewModel.State.Audio.HasContent) { return; } long bytes = m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize((long)Math.Round(x * BytesPerPixel)); m_ViewModel.PlayBytePosition = bytes; return; } if (Math.Abs(m_TimeSelectionLeftX - x) <= MIN_SELECTION_PIXELS) { ClearSelection(); m_TimeSelectionLeftX = x; } if (x == m_TimeSelectionLeftX) { restoreSelection(); if (!m_ViewModel.State.Audio.HasContent) { return; } long bytes = m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize((long)Math.Round(x * BytesPerPixel)); m_ViewModel.PlayBytePosition = bytes; return; } double right = x; if (x < m_TimeSelectionLeftX) { right = m_TimeSelectionLeftX; m_TimeSelectionLeftX = x; } WaveFormTimeSelectionRect.Visibility = Visibility.Visible; WaveFormTimeSelectionRect.Width = right - m_TimeSelectionLeftX; WaveFormTimeSelectionRect.SetValue(Canvas.LeftProperty, m_TimeSelectionLeftX); if (!m_ViewModel.State.Audio.HasContent) { return; } m_ViewModel.State.Selection.SetSelectionBytes( m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize( (long)Math.Round(m_TimeSelectionLeftX * BytesPerPixel)), m_ViewModel.State.Audio.GetCurrentPcmFormat().Data.AdjustByteToBlockAlignFrameSize( (long)Math.Round((m_TimeSelectionLeftX + WaveFormTimeSelectionRect.Width) * BytesPerPixel))); }