Skip to content
This repository has been archived by the owner on Feb 15, 2025. It is now read-only.

Re-implement the timeline bar to fit software rendering image size limit. #61

Merged
merged 9 commits into from
Mar 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>

<Image x:Name="MusicWave" Stretch="Fill" Height="74" VerticalAlignment="Bottom" Margin="0,0,-521,0" MouseWheel="MusicWave_MouseWheel" PreviewMouseLeftButtonDown="MusicWave_PreviewMouseLeftButtonDown" MouseMove="MusicWave_MouseMove" Grid.Column="1" HorizontalAlignment="Left" Width="877"/>
<Image x:Name="MusicWaveCusor" Stretch="Fill" Height="74" VerticalAlignment="Bottom" Margin="0,0,-521,0" MouseWheel="MusicWave_MouseWheel" PreviewMouseLeftButtonDown="MusicWave_PreviewMouseLeftButtonDown" MouseMove="MusicWave_MouseMove" Grid.Column="1" HorizontalAlignment="Left" Width="877" Opacity="0.815"/>
<Image x:Name="MusicWave" Height="74" VerticalAlignment="Bottom" MouseWheel="MusicWave_MouseWheel" PreviewMouseLeftButtonDown="MusicWave_PreviewMouseLeftButtonDown" MouseMove="MusicWave_MouseMove" Grid.ColumnSpan="2" SizeChanged="MusicWave_SizeChanged"/>
<Line StrokeThickness="3" Y2="56" Height="74" VerticalAlignment="Bottom" Stroke="Red" Y1="15" Grid.Column="1" HorizontalAlignment="Left" Width="45"/>

<Menu Height="19" VerticalAlignment="Top" Background="{DynamicResource ButtonsBackground}" Foreground="{DynamicResource ButtonForeground}" Grid.ColumnSpan="2">
Expand Down
31 changes: 21 additions & 10 deletions MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
using System.ComponentModel;
using DiscordRPC.Logging;
using DiscordRPC;
using System.Windows.Media.Media3D;

namespace MajdataEdit
{
Expand Down Expand Up @@ -54,6 +55,7 @@ private void Window_Loaded(object sender, RoutedEventArgs e)

var handle = (new WindowInteropHelper(this)).Handle;
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, handle);
InitWave();

ReadSoundEffect();
ReadEditorSetting();
Expand All @@ -64,7 +66,6 @@ private void Window_Loaded(object sender, RoutedEventArgs e)
currentTimeRefreshTimer.Start();
soundEffectTimer.Elapsed += SoundEffectTimer_Elapsed;
visualEffectRefreshTimer.Elapsed += VisualEffectRefreshTimer_Elapsed;
visualEffectRefreshTimer.Start();
waveStopMonitorTimer.Elapsed += WaveStopMonitorTimer_Elapsed;
playbackSpeedHideTimer.Elapsed += PlbHideTimer_Elapsed;

Expand All @@ -75,6 +76,7 @@ private void Window_Loaded(object sender, RoutedEventArgs e)
}



//start the view and wait for boot, then set window pos
private void SetWindowPosTimer_Elapsed(object sender, ElapsedEventArgs e)
{
Expand Down Expand Up @@ -460,7 +462,8 @@ private void FumenContent_SelectionChanged(object sender, RoutedEventArgs e)
}
//Console.WriteLine("SelectionChanged");
SimaiProcess.ClearNoteListPlayedState();
DrawCusor(time);
ghostCusorPositionTime = (float)time;
if(!isPlaying)DrawWave();
}
private void FumenContent_TextChanged(object sender, TextChangedEventArgs e)
{
Expand Down Expand Up @@ -492,42 +495,50 @@ private void FumenContent_OnPreviewKeyDown(object sender, KeyEventArgs e)
#region Wave displayer
private void WaveViewZoomIn_Click(object sender, RoutedEventArgs e)
{
if (zoominPower < 6)
zoominPower += 1;
if (deltatime > 1)
deltatime -= 1;
DrawWave();
FumenContent.Focus();
}
private void WaveViewZoomOut_Click(object sender, RoutedEventArgs e)
{
if (zoominPower > 1)
zoominPower -= 1;
if (deltatime < 10)
deltatime += 1;
DrawWave();
FumenContent.Focus();
}
private void MusicWave_MouseWheel(object sender, MouseWheelEventArgs e)
{
ScrollWave(e.Delta);
ScrollWave(-e.Delta);
}
private void MusicWave_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//lastMousePointX = e.GetPosition(this).X;
lastMousePointX = e.GetPosition(this).X;
}
private void MusicWave_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
double delta = e.GetPosition(this).X - lastMousePointX;
lastMousePointX = e.GetPosition(this).X;
ScrollWave(delta*zoominPower*4d);
ScrollWave(-delta);
}
lastMousePointX = e.GetPosition(this).X;
}
#endregion

private void MusicWave_SizeChanged(object sender, SizeChangedEventArgs e)
{
InitWave();
DrawWave();
}

#endregion
private void FindClose_MouseDown(object sender, MouseButtonEventArgs e)
{
FindGrid.Visibility = Visibility.Collapsed;
FumenContent.Focus();
}


}
}
Loading