Skip to content

Commit

Permalink
IWaveformDrawingOption add Reset()/Reload()/Save()
Browse files Browse the repository at this point in the history
  • Loading branch information
MikiraSora committed Oct 9, 2024
1 parent ee0d2f1 commit 4c59735
Show file tree
Hide file tree
Showing 17 changed files with 484 additions and 270 deletions.
24 changes: 24 additions & 0 deletions OngekiFumenEditor/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="OngekiFumenEditor.Properties.DefaultWaveformSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="OngekiFumenEditor.Properties.AudioPlayerToolViewerSetting___复制" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="OngekiFumenEditor.Properties.AudioSetting" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="OngekiFumenEditor.Properties.OptionGeneratorToolsSetting" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="OngekiFumenEditor.Properties.ProgramSetting" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
Expand All @@ -11,6 +13,28 @@
</sectionGroup>
</configSections>
<userSettings>
<OngekiFumenEditor.Properties.DefaultWaveformSettings>
<setting name="ShowObjectPlaceLine" serializeAs="String">
<value>True</value>
</setting>
<setting name="ShowWaveform" serializeAs="String">
<value>True</value>
</setting>
<setting name="ShowTimingLine" serializeAs="String">
<value>True</value>
</setting>
</OngekiFumenEditor.Properties.DefaultWaveformSettings>
<OngekiFumenEditor.Properties.AudioPlayerToolViewerSetting___复制>
<setting name="ShowObjectPlaceLine" serializeAs="String">
<value>True</value>
</setting>
<setting name="DefaultWaveformShowWaveform" serializeAs="String">
<value>True</value>
</setting>
<setting name="DefaultWaveformShowTimingLine" serializeAs="String">
<value>True</value>
</setting>
</OngekiFumenEditor.Properties.AudioPlayerToolViewerSetting___复制>
<OngekiFumenEditor.Properties.AudioSetting>
<setting name="SoundFolderPath" serializeAs="String">
<value>.\Resources\sounds\</value>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,38 +1,77 @@
using OngekiFumenEditor.Base.Attributes;
using OngekiFumenEditor.Properties;
using System.Text.Json.Serialization;

namespace OngekiFumenEditor.Modules.AudioPlayerToolViewer.Graphics.WaveformDrawing.DefaultImpls
{
public class DefaultWaveformOption : WaveformDrawingOptionBase
{
private bool showTimingLine = true;
[ObjectPropertyBrowserShow]
[JsonInclude]
[ObjectPropertyBrowserAlias(nameof(ShowTimingLine))]
public bool ShowTimingLine
{
get => showTimingLine;
set => Set(ref showTimingLine, value);
}

private bool showObjectPlaceLine = true;
[ObjectPropertyBrowserShow]
[JsonInclude]
[ObjectPropertyBrowserAlias(nameof(ShowObjectPlaceLine))]
public bool ShowObjectPlaceLine
{
get => showObjectPlaceLine;
set => Set(ref showObjectPlaceLine, value);
}

private bool showWaveform = true;
public class DefaultWaveformOption : WaveformDrawingOptionBase
{
private bool showTimingLine;
[ObjectPropertyBrowserShow]
[ObjectPropertyBrowserAlias(nameof(ShowTimingLine))]
public bool ShowTimingLine
{
get => showTimingLine;
set
{
Set(ref showTimingLine, value);
DefaultWaveformSettings.Default.ShowTimingLine = value;
}
}

private bool showObjectPlaceLine;
[ObjectPropertyBrowserShow]
[ObjectPropertyBrowserAlias(nameof(ShowObjectPlaceLine))]
public bool ShowObjectPlaceLine
{
get => showObjectPlaceLine;
set
{
Set(ref showObjectPlaceLine, value);
DefaultWaveformSettings.Default.ShowObjectPlaceLine = value;
}
}

private bool showWaveform;
[ObjectPropertyBrowserShow]
[JsonInclude]
[ObjectPropertyBrowserAlias(nameof(ShowWaveform))]
public bool ShowWaveform
{
get => showWaveform;
set => Set(ref showWaveform, value);
set
{
Set(ref showWaveform, value);
DefaultWaveformSettings.Default.ShowWaveform = value;
}
}

public DefaultWaveformOption()
{
SyncFromSettings();
}

private void SyncFromSettings()
{
ShowWaveform = DefaultWaveformSettings.Default.ShowWaveform;
ShowObjectPlaceLine = DefaultWaveformSettings.Default.ShowObjectPlaceLine;
ShowTimingLine = DefaultWaveformSettings.Default.ShowTimingLine;
}

public override void Reload()
{
DefaultWaveformSettings.Default.Reload();
SyncFromSettings();
}

public override void Reset()
{
DefaultWaveformSettings.Default.Reset();
SyncFromSettings();
}

public override void Save()
{
DefaultWaveformSettings.Default.Save();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace OngekiFumenEditor.Modules.AudioPlayerToolViewer.Graphics.WaveformDrawing.DefaultImpls
{
public class WaveformDrawingOptionBase : PropertyChangedBase, IWaveformDrawingOption
public abstract class WaveformDrawingOptionBase : PropertyChangedBase, IWaveformDrawingOption
{
[ObjectPropertyBrowserHide]
public override bool IsNotifying
Expand All @@ -14,5 +14,9 @@ public override bool IsNotifying
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set => base.IsNotifying = value;
}
}

public abstract void Reload();
public abstract void Reset();
public abstract void Save();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

namespace OngekiFumenEditor.Modules.AudioPlayerToolViewer.Graphics.WaveformDrawing
{
public interface IWaveformDrawing : IDrawing
{
IWaveformDrawingOption Options { get; }
void Draw(IWaveformDrawingContext target, PeakPointCollection samplePeak);
}
public interface IWaveformDrawing : IDrawing
{
IWaveformDrawingOption Options { get; }
void Draw(IWaveformDrawingContext target, PeakPointCollection samplePeak);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,8 @@ namespace OngekiFumenEditor.Modules.AudioPlayerToolViewer.Graphics.WaveformDrawi
{
public interface IWaveformDrawingOption : INotifyPropertyChanged
{
void Reset();
void Reload();
void Save();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,16 @@ private void CleanWaveform()
usingPeakData = null;
}

public void OnWaveformOptionReset()
{
WaveformDrawing?.Options?.Reset();
}

public void OnWaveformOptionSave()
{
WaveformDrawing?.Options?.Save();
}

public void Render(TimeSpan ts)
{
#if DEBUG
Expand Down
Loading

0 comments on commit 4c59735

Please sign in to comment.