diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml new file mode 100644 index 0000000..4ded9df --- /dev/null +++ b/.github/workflows/build-validation.yml @@ -0,0 +1,37 @@ +name: build-validation + +on: + push: + pull_request: + branches: [ main ] + paths: + - '**.cs' + - '**.csproj' + + +env: + DOTNET_VERSION: '6.x' + +jobs: + build: + name: build-windows + runs-on: [ windows-latest ] + + steps: + - uses: actions/checkout@v2 + - name: Setup .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Install dependencies + run: dotnet restore + + - name: Build + run: dotnet build --configuration Release --no-restore + + - name: Publish artifacts + uses: actions/upload-artifact@v1 + with: + name: build + path: BAKKA-Sharp\bin\Release\net6.0-windows\ \ No newline at end of file diff --git a/BAKKA-Editor/App.config b/BAKKA-Editor/App.config deleted file mode 100644 index 56efbc7..0000000 --- a/BAKKA-Editor/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/BAKKA-Editor/BAKKA-Editor.csproj b/BAKKA-Editor/BAKKA-Editor.csproj index 1ecb082..4aa962a 100644 --- a/BAKKA-Editor/BAKKA-Editor.csproj +++ b/BAKKA-Editor/BAKKA-Editor.csproj @@ -1,80 +1,45 @@ - - - + + - Debug - AnyCPU - {76336598-B2BE-4F67-B3D6-821F6A0E302F} WinExe + net6.0-windows BAKKA_Editor - BAKKA-Editor - v4.7.2 - 512 + enable + true + enable + $(VersionPrefix)1.0.0-rc8 + 1.0.0.0 + 1.0.0-rc8 + Goatgarien + 2022 + BAKKA_Editor.Program + true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + - - - - - - - - - - - + + - - Form - - - Form1.cs - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - + + ..\lib\irrKlang.NET4.dll + + + + + + True True Resources.resx - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - + - + + ResXFileCodeGenerator + Resources.Designer.cs + - + \ No newline at end of file diff --git a/BAKKA-Editor/Chart.cs b/BAKKA-Editor/Chart.cs new file mode 100644 index 0000000..22870e1 --- /dev/null +++ b/BAKKA-Editor/Chart.cs @@ -0,0 +1,293 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal class Chart + { + public List Notes { get; set; } + public List Gimmicks { get; set; } + /// + /// Offset in seconds. + /// + public double Offset { get; set; } + /// + /// Movie offset in seconds + /// + public double MovieOffset { get; set; } + String SongFileName { get; set; } + List TimeEvents { get; set; } + public bool HasInitEvents + { + get + { + return TimeEvents != null && + TimeEvents.Count > 0 && + Gimmicks.Count(x => x.Measure == 0 && x.GimmickType == GimmickType.BpmChange) >= 1 && + Gimmicks.Count(x => x.Measure == 0 && x.GimmickType == GimmickType.TimeSignatureChange) >= 1; + } + } + public bool IsSaved { get; set; } + + public Chart() + { + Notes = new(); + Gimmicks = new(); + Offset = 0; + MovieOffset = 0; + SongFileName = ""; + IsSaved = true; + } + + public bool ParseFile(string filename) + { + var file = File.ReadAllLines(filename); + + int index = 0; + + do + { + var line = file[index]; + + var path = Utils.GetTag(line, "#MUSIC_FILE_PATH "); + if (path != null) + SongFileName = path; + + var offset = Utils.GetTag(line, "#OFFSET"); + if (offset != null) + Offset = Convert.ToDouble(offset); + + offset = Utils.GetTag(line, "#MOVIEOFFSET"); + if (offset != null) + MovieOffset = Convert.ToDouble(offset); + + + if (line.Contains("#BODY")) + { + index++; + break; + } + + } while(++index < file.Length); + + int lineNum; + Gimmick gimmickTemp; + Note noteTemp; + Dictionary notesByLine = new(); + Dictionary refByLine = new(); + for (int i = index; i < file.Length; i++) + { + var parsed = file[i].Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + NoteBase temp = new(); + temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0]), Convert.ToInt32(parsed[1])); + temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2]); + + switch (temp.GimmickType) + { + case GimmickType.NoGimmick: + noteTemp = new Note(temp.BeatInfo); + noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3]); + lineNum = Convert.ToInt32(parsed[4]); + noteTemp.Position = Convert.ToInt32(parsed[5]); + noteTemp.Size = Convert.ToInt32(parsed[6]); + noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7])); + if (noteTemp.NoteType == NoteType.MaskAdd || noteTemp.NoteType == NoteType.MaskRemove) + { + noteTemp.MaskFill = (MaskType)Convert.ToInt32(parsed[8]); + } + else if (noteTemp.NoteType == NoteType.HoldStartNoBonus || + noteTemp.NoteType == NoteType.HoldJoint || + noteTemp.NoteType == NoteType.HoldStartBonusFlair) + { + refByLine[lineNum] = Convert.ToInt32(parsed[8]); + } + Notes.Add(noteTemp); + notesByLine[lineNum] = Notes.Last(); + break; + case GimmickType.BpmChange: + gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); + gimmickTemp.BPM = Convert.ToDouble(parsed[3]); + Gimmicks.Add(gimmickTemp); + break; + case GimmickType.TimeSignatureChange: + gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); + gimmickTemp.TimeSig = new TimeSignature() { Upper = Convert.ToInt32(parsed[3]), Lower = Convert.ToInt32(parsed[4]) }; + Gimmicks.Add(gimmickTemp); + break; + case GimmickType.HiSpeedChange: + gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); + gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3]); + Gimmicks.Add(gimmickTemp); + break; + case GimmickType.ReverseStart: + case GimmickType.ReverseMiddle: + case GimmickType.ReverseEnd: + case GimmickType.StopStart: + case GimmickType.StopEnd: + default: + Gimmicks.Add(new Gimmick(temp.BeatInfo, temp.GimmickType)); + break; + } + + } + + // Generate hold references + for (int i = 0; i < Notes.Count; i++) + { + if (refByLine.ContainsKey(i)) + { + Notes[i].NextNote = notesByLine[refByLine[i]]; + Notes[i].NextNote.PrevNote = Notes[i]; + } + } + + RecalcTime(); + + IsSaved = true; + return true; + } + + public bool WriteFile(string filename, bool setSave = true) + { + using (StreamWriter sw = new StreamWriter(new FileStream(filename, FileMode.Create), new UTF8Encoding(false))) + { + // LF line ending + sw.NewLine = "\n"; + + sw.WriteLine("#MUSIC_SCORE_ID 0"); + sw.WriteLine("#MUSIC_SCORE_VERSION 0"); + sw.WriteLine("#GAME_VERSION "); + sw.WriteLine($"#MUSIC_FILE_PATH {SongFileName}"); + sw.WriteLine($"#OFFSET {Offset:F6}"); + sw.WriteLine($"#MOVIEOFFSET {MovieOffset:F6}"); + sw.WriteLine("#BODY"); + + foreach (var gimmick in Gimmicks) + { + sw.Write($"{gimmick.BeatInfo.Measure,4:F0}{gimmick.BeatInfo.Beat,5:F0}{((int)gimmick.GimmickType),5:F0}"); + switch (gimmick.GimmickType) + { + case GimmickType.BpmChange: + sw.WriteLine($" {gimmick.BPM:F6}"); + break; + case GimmickType.TimeSignatureChange: + sw.WriteLine($"{gimmick.TimeSig.Upper,5:F0}{gimmick.TimeSig.Lower,5:F0}"); + break; + case GimmickType.HiSpeedChange: + sw.WriteLine($" {gimmick.HiSpeed:F6}"); + break; + default: + sw.WriteLine(""); + break; + } + } + + foreach (var note in Notes) + { + sw.Write($"{note.BeatInfo.Measure,4:F0}{note.BeatInfo.Beat,5:F0}{((int)note.GimmickType),5:F0}{(int)note.NoteType,5:F0}"); + sw.Write($"{Notes.IndexOf(note),5:F0}{note.Position,5:F0}{note.Size,5:F0}{Convert.ToInt32(note.HoldChange),5:F0}"); + if (note.IsMask) + sw.Write($"{(int)note.MaskFill,5:F0}"); + if (note.NextNote != null) + sw.Write($"{Notes.IndexOf(note.NextNote),5:F0}"); + sw.WriteLine(""); + } + } + + IsSaved = setSave; + return true; + } + + public void RecalcTime() + { + Gimmicks = Gimmicks.OrderBy(x => x.Measure).ToList(); + var timeSig = Gimmicks.FirstOrDefault(x => x.GimmickType == GimmickType.TimeSignatureChange && x.Measure == 0.0f); + var bpm = Gimmicks.FirstOrDefault(x => x.GimmickType == GimmickType.BpmChange && x.Measure == 0.0f); + if (timeSig == null || bpm == null) + return; // Cannot calculate times without either starting value + + TimeEvents = new(); + for (int i = 0; i < Gimmicks.Count; i++) + { + var evt = TimeEvents.FirstOrDefault(x => x.BeatInfo.MeasureDecimal == Gimmicks[i].BeatInfo.MeasureDecimal); + + if (Gimmicks[i].GimmickType == GimmickType.BpmChange) + { + if (evt == null) + { + TimeEvents.Add(new Gimmick() + { + BeatInfo = new BeatInfo(Gimmicks[i].BeatInfo), + BPM = Gimmicks[i].BPM, + TimeSig = new TimeSignature(timeSig.TimeSig) + }); + } + else + { + evt.BPM = Gimmicks[i].BPM; + } + bpm = Gimmicks[i]; + } + if (Gimmicks[i].GimmickType == GimmickType.TimeSignatureChange) + { + if (evt == null) + { + TimeEvents.Add(new Gimmick() + { + BeatInfo = new BeatInfo(Gimmicks[i].BeatInfo), + BPM = bpm.BPM, + TimeSig = new TimeSignature(Gimmicks[i].TimeSig) + }); + } + else + { + evt.TimeSig = new TimeSignature(Gimmicks[i].TimeSig); + } + timeSig = Gimmicks[i]; + } + } + + // Run through all time events and generate valid start times + TimeEvents[0].StartTime = Offset * 1000.0; + for (int i = 1; i < TimeEvents.Count; i++) + { + TimeEvents[i].StartTime = ((TimeEvents[i].Measure - TimeEvents[i - 1].Measure) * 4 * TimeEvents[i - 1].TimeSig.Ratio * 60000.0 / TimeEvents[i].BPM) + TimeEvents[i - 1].StartTime; + } + } + + /// + /// Translate clock time to beats + /// + /// Current timestamp in ms + /// + public BeatInfo GetBeat(float time) + { + if (TimeEvents == null || TimeEvents.Count == 0) + return new BeatInfo(-1, 0); + + var evt = TimeEvents.Where(x => time >= x.StartTime).LastOrDefault(); + if (evt == null) + evt = TimeEvents[0]; + return new BeatInfo((float)(evt.BPM * (time - evt.StartTime) / (60000.0f * evt.TimeSig.Ratio * 4)) + evt.Measure); + } + + /// + /// Translate measures into clock time + /// + /// + /// + public int GetTime(BeatInfo beat) + { + if (TimeEvents == null || TimeEvents.Count == 0) + return 0; + + var evt = TimeEvents.Where(x => beat.MeasureDecimal >= x.Measure).LastOrDefault(); + if (evt == null) + evt = TimeEvents[0]; + return (int)((60000.0 * 4.0 * evt.TimeSig.Ratio / evt.BPM) * (beat.MeasureDecimal - evt.Measure) + evt.StartTime); + } + } +} diff --git a/BAKKA-Editor/CircleView.cs b/BAKKA-Editor/CircleView.cs new file mode 100644 index 0000000..22c8e7b --- /dev/null +++ b/BAKKA-Editor/CircleView.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal class CircleView + { + public SizeF PanelSize { get; private set; } + public RectangleF DrawRect { get; private set; } + public PointF TopCorner { get; private set; } + public PointF CenterPoint { get; private set; } + public float Radius { get; private set; } + public float CurrentMeasure { get; set; } + /// + /// Number of measures in the future that are visible + /// + public float TotalMeasureShowNotes { get; set; } = 0.5f; + + // Pens and Brushes + public Pen BasePen { get; set; } + public Pen BeatPen { get; set; } + public Pen TickMinorPen { get; set; } + public Pen TickMediumPen { get; set; } + public Pen TickMajorPen { get; set; } + public SolidBrush HoldBrush { get; set; } = new SolidBrush(Color.FromArgb(170, Color.Yellow)); + public SolidBrush MaskBrush { get; set; } = new SolidBrush(Color.DimGray); + public Pen HighlightPen { get; set; } + public Pen FlairPen { get; set; } + private int CursorTransparency = 110; + private int SelectTransparency = 110; + private int FlairTransparency = 75; + + public CircleView(SizeF size) + { + Update(size); + } + + public void Update(SizeF size) + { + PanelSize = size; + float basePenWidth = PanelSize.Width * 4.0f / 600.0f; + TopCorner = new PointF(basePenWidth * 4, basePenWidth * 4); + DrawRect = new RectangleF( + TopCorner.X, + TopCorner.Y, + PanelSize.Width - basePenWidth * 8, + PanelSize.Height - basePenWidth * 8); + Radius = DrawRect.Width / 2.0f; + CenterPoint = new PointF(TopCorner.X + Radius, TopCorner.Y + Radius); + + // Pens + BasePen = new Pen(Color.Black, basePenWidth); + BeatPen = new Pen(Color.White, PanelSize.Width * 1.0f / 600.0f); + TickMinorPen = new Pen(Color.Black, PanelSize.Width * 2.0f / 600.0f); + TickMediumPen = new Pen(Color.Black, PanelSize.Width * 4.0f / 600.0f); + TickMajorPen = new Pen(Color.Black, PanelSize.Width * 7.0f / 600.0f); + HighlightPen = new Pen(Color.FromArgb(SelectTransparency, Color.LightPink), PanelSize.Width * 8.0f / 600.0f); + FlairPen = new Pen(Color.FromArgb(FlairTransparency, Color.Yellow), PanelSize.Width * 8.0f / 600.0f); + } + + public ArcInfo GetScaledRect(float objectTime) + { + ArcInfo info = new(); + float notescaleInit = 1 - ((objectTime - CurrentMeasure) * (1 / TotalMeasureShowNotes)); // Scale from 0-1 + info.NoteScale = (float)Math.Pow(10.0f, notescaleInit) / 10.0f; + float scaledRectSize = DrawRect.Width * info.NoteScale; + float scaledRadius = scaledRectSize / 2.0f; + info.Rect = new RectangleF( + new PointF( + CenterPoint.X - scaledRadius, + CenterPoint.Y - scaledRadius), + new SizeF(scaledRectSize, scaledRectSize)); + return info; + } + + public ArcInfo GetArcInfo(Note note) + { + ArcInfo info = GetScaledRect(note.Measure); + info.StartAngle = -note.Position * 6; + info.ArcLength = -note.Size * 6; + if(info.ArcLength != -360) + { + info.StartAngle -= 2; + info.ArcLength += 4; + } + return info; + } + + public Pen GetPen(Note note, float noteScale = 1.0f) + { + return new Pen(note.Color, PanelSize.Width * 8.0f * noteScale / 600.0f); + } + + public Pen GetPen(NoteType noteType) + { + return new Pen(Color.FromArgb(CursorTransparency, Utils.NoteTypeToColor(noteType)), PanelSize.Width * 24.0f / 600.0f); + } + } + + internal struct ArcInfo + { + public float StartAngle; + public float ArcLength; + public RectangleF Rect; + public float NoteScale; + } +} diff --git a/BAKKA-Editor/Enums.cs b/BAKKA-Editor/Enums.cs new file mode 100644 index 0000000..c0be685 --- /dev/null +++ b/BAKKA-Editor/Enums.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal enum NoteType + { + TouchNoBonus = 1, + TouchBonus = 2, + SnapRedNoBonus = 3, + SnapBlueNoBonus = 4, + SlideOrangeNoBonus = 5, + SlideOrangeBonus = 6, + SlideGreenNoBonus = 7, + SlideGreenBonus = 8, + HoldStartNoBonus = 9, + HoldJoint = 10, + HoldEnd = 11, + MaskAdd = 12, + MaskRemove = 13, + EndOfChart = 14, + // MaskSameTime = 15, + Chain = 16, + // MaskLane = 17, + // TutorialTag = 18, + // BarLine = 19, + TouchBonusFlair = 20, + SnapRedBonusFlair = 21, + SnapBlueBonusFlair = 22, + SlideOrangeBonusFlair = 23, + SlideGreenBonusFlair = 24, + HoldStartBonusFlair = 25, + ChainBonusFlair = 26, + } + + internal enum GimmickType + { + NoGimmick = 1, + BpmChange = 2, + TimeSignatureChange = 3, + // Stop = 4, + HiSpeedChange = 5, + ReverseStart = 6, + ReverseMiddle = 7, + ReverseEnd = 8, + StopStart = 9, + StopEnd = 10, + }; + + internal enum MaskType + { + Clockwise = 0, + CounterClockwise = 1, + Center = 2 + } + + internal enum BonusType + { + NoBonus = 0, + Bonus = 1, + Flair = 2 + } +} diff --git a/BAKKA-Editor/Form1.Designer.cs b/BAKKA-Editor/Form1.Designer.cs deleted file mode 100644 index 1d3612b..0000000 --- a/BAKKA-Editor/Form1.Designer.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace BAKKA_Editor -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} - diff --git a/BAKKA-Editor/GimmickForm.Designer.cs b/BAKKA-Editor/GimmickForm.Designer.cs new file mode 100644 index 0000000..f53d488 --- /dev/null +++ b/BAKKA-Editor/GimmickForm.Designer.cs @@ -0,0 +1,585 @@ +namespace BAKKA_Editor +{ + partial class GimmickForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.revEnd2Beat2Numeric = new System.Windows.Forms.NumericUpDown(); + this.label18 = new System.Windows.Forms.Label(); + this.revEnd2Beat1Numeric = new System.Windows.Forms.NumericUpDown(); + this.revEnd2MeasureNumeric = new System.Windows.Forms.NumericUpDown(); + this.label19 = new System.Windows.Forms.Label(); + this.revEnd1Beat2Numeric = new System.Windows.Forms.NumericUpDown(); + this.label16 = new System.Windows.Forms.Label(); + this.revEnd1Beat1Numeric = new System.Windows.Forms.NumericUpDown(); + this.revEnd1MeasureNumeric = new System.Windows.Forms.NumericUpDown(); + this.label17 = new System.Windows.Forms.Label(); + this.stopEndBeat2Numeric = new System.Windows.Forms.NumericUpDown(); + this.label10 = new System.Windows.Forms.Label(); + this.stopEndBeat1Numeric = new System.Windows.Forms.NumericUpDown(); + this.stopEndMeasureNumeric = new System.Windows.Forms.NumericUpDown(); + this.label11 = new System.Windows.Forms.Label(); + this.hiSpeedNumeric = new System.Windows.Forms.NumericUpDown(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.timeSig2Numeric = new System.Windows.Forms.NumericUpDown(); + this.timeSig1Numeric = new System.Windows.Forms.NumericUpDown(); + this.gimmickBpmNumeric = new System.Windows.Forms.NumericUpDown(); + this.label15 = new System.Windows.Forms.Label(); + this.insertGimmickButton = new System.Windows.Forms.Button(); + this.startBeat2Numeric = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.startBeat1Numeric = new System.Windows.Forms.NumericUpDown(); + this.startMeasureNumeric = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2MeasureNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1MeasureNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndMeasureNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.hiSpeedNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSig2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSig1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gimmickBpmNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.startBeat2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.startBeat1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.startMeasureNumeric)).BeginInit(); + this.SuspendLayout(); + // + // revEnd2Beat2Numeric + // + this.revEnd2Beat2Numeric.Location = new System.Drawing.Point(219, 206); + this.revEnd2Beat2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.revEnd2Beat2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.revEnd2Beat2Numeric.Name = "revEnd2Beat2Numeric"; + this.revEnd2Beat2Numeric.Size = new System.Drawing.Size(42, 23); + this.revEnd2Beat2Numeric.TabIndex = 38; + this.revEnd2Beat2Numeric.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(8, 208); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(61, 15); + this.label18.TabIndex = 40; + this.label18.Text = "Rev End 2:"; + // + // revEnd2Beat1Numeric + // + this.revEnd2Beat1Numeric.Location = new System.Drawing.Point(168, 206); + this.revEnd2Beat1Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.revEnd2Beat1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.revEnd2Beat1Numeric.Name = "revEnd2Beat1Numeric"; + this.revEnd2Beat1Numeric.Size = new System.Drawing.Size(38, 23); + this.revEnd2Beat1Numeric.TabIndex = 37; + this.revEnd2Beat1Numeric.ValueChanged += new System.EventHandler(this.revEnd2Beat1Numeric_ValueChanged); + // + // revEnd2MeasureNumeric + // + this.revEnd2MeasureNumeric.Location = new System.Drawing.Point(75, 206); + this.revEnd2MeasureNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.revEnd2MeasureNumeric.Name = "revEnd2MeasureNumeric"; + this.revEnd2MeasureNumeric.Size = new System.Drawing.Size(87, 23); + this.revEnd2MeasureNumeric.TabIndex = 36; + this.revEnd2MeasureNumeric.ValueChanged += new System.EventHandler(this.revEnd2MeasureNumeric_ValueChanged); + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(207, 208); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(12, 15); + this.label19.TabIndex = 39; + this.label19.Text = "/"; + // + // revEnd1Beat2Numeric + // + this.revEnd1Beat2Numeric.Location = new System.Drawing.Point(219, 177); + this.revEnd1Beat2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.revEnd1Beat2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.revEnd1Beat2Numeric.Name = "revEnd1Beat2Numeric"; + this.revEnd1Beat2Numeric.Size = new System.Drawing.Size(42, 23); + this.revEnd1Beat2Numeric.TabIndex = 33; + this.revEnd1Beat2Numeric.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(8, 179); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(61, 15); + this.label16.TabIndex = 35; + this.label16.Text = "Rev End 1:"; + // + // revEnd1Beat1Numeric + // + this.revEnd1Beat1Numeric.Location = new System.Drawing.Point(168, 177); + this.revEnd1Beat1Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.revEnd1Beat1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.revEnd1Beat1Numeric.Name = "revEnd1Beat1Numeric"; + this.revEnd1Beat1Numeric.Size = new System.Drawing.Size(38, 23); + this.revEnd1Beat1Numeric.TabIndex = 32; + this.revEnd1Beat1Numeric.ValueChanged += new System.EventHandler(this.revEnd1Beat1Numeric_ValueChanged); + // + // revEnd1MeasureNumeric + // + this.revEnd1MeasureNumeric.Location = new System.Drawing.Point(75, 177); + this.revEnd1MeasureNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.revEnd1MeasureNumeric.Name = "revEnd1MeasureNumeric"; + this.revEnd1MeasureNumeric.Size = new System.Drawing.Size(87, 23); + this.revEnd1MeasureNumeric.TabIndex = 31; + this.revEnd1MeasureNumeric.ValueChanged += new System.EventHandler(this.revEnd1MeasureNumeric_ValueChanged); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(207, 179); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(12, 15); + this.label17.TabIndex = 34; + this.label17.Text = "/"; + // + // stopEndBeat2Numeric + // + this.stopEndBeat2Numeric.Location = new System.Drawing.Point(219, 148); + this.stopEndBeat2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.stopEndBeat2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.stopEndBeat2Numeric.Name = "stopEndBeat2Numeric"; + this.stopEndBeat2Numeric.Size = new System.Drawing.Size(42, 23); + this.stopEndBeat2Numeric.TabIndex = 13; + this.stopEndBeat2Numeric.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(12, 150); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(57, 15); + this.label10.TabIndex = 29; + this.label10.Text = "Stop End:"; + // + // stopEndBeat1Numeric + // + this.stopEndBeat1Numeric.Location = new System.Drawing.Point(168, 148); + this.stopEndBeat1Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.stopEndBeat1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.stopEndBeat1Numeric.Name = "stopEndBeat1Numeric"; + this.stopEndBeat1Numeric.Size = new System.Drawing.Size(38, 23); + this.stopEndBeat1Numeric.TabIndex = 12; + this.stopEndBeat1Numeric.ValueChanged += new System.EventHandler(this.stopEndBeat1Numeric_ValueChanged); + // + // stopEndMeasureNumeric + // + this.stopEndMeasureNumeric.Location = new System.Drawing.Point(75, 148); + this.stopEndMeasureNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.stopEndMeasureNumeric.Name = "stopEndMeasureNumeric"; + this.stopEndMeasureNumeric.Size = new System.Drawing.Size(87, 23); + this.stopEndMeasureNumeric.TabIndex = 11; + this.stopEndMeasureNumeric.ValueChanged += new System.EventHandler(this.stopEndMeasureNumeric_ValueChanged); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(10, 121); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(59, 15); + this.label11.TabIndex = 27; + this.label11.Text = "Hi-Speed:"; + // + // hiSpeedNumeric + // + this.hiSpeedNumeric.DecimalPlaces = 6; + this.hiSpeedNumeric.Location = new System.Drawing.Point(75, 119); + this.hiSpeedNumeric.Minimum = new decimal(new int[] { + 100, + 0, + 0, + -2147483648}); + this.hiSpeedNumeric.Name = "hiSpeedNumeric"; + this.hiSpeedNumeric.Size = new System.Drawing.Size(186, 23); + this.hiSpeedNumeric.TabIndex = 26; + this.hiSpeedNumeric.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(14, 92); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(55, 15); + this.label12.TabIndex = 25; + this.label12.Text = "Time Sig:"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(140, 92); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(12, 15); + this.label13.TabIndex = 13; + this.label13.Text = "/"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(34, 63); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(35, 15); + this.label14.TabIndex = 24; + this.label14.Text = "BPM:"; + // + // timeSig2Numeric + // + this.timeSig2Numeric.Location = new System.Drawing.Point(158, 90); + this.timeSig2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.timeSig2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.timeSig2Numeric.Name = "timeSig2Numeric"; + this.timeSig2Numeric.Size = new System.Drawing.Size(103, 23); + this.timeSig2Numeric.TabIndex = 12; + this.timeSig2Numeric.Value = new decimal(new int[] { + 4, + 0, + 0, + 0}); + // + // timeSig1Numeric + // + this.timeSig1Numeric.Location = new System.Drawing.Point(75, 90); + this.timeSig1Numeric.Maximum = new decimal(new int[] { + 191, + 0, + 0, + 0}); + this.timeSig1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.timeSig1Numeric.Name = "timeSig1Numeric"; + this.timeSig1Numeric.Size = new System.Drawing.Size(59, 23); + this.timeSig1Numeric.TabIndex = 11; + this.timeSig1Numeric.Value = new decimal(new int[] { + 4, + 0, + 0, + 0}); + // + // gimmickBpmNumeric + // + this.gimmickBpmNumeric.DecimalPlaces = 6; + this.gimmickBpmNumeric.Location = new System.Drawing.Point(75, 61); + this.gimmickBpmNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.gimmickBpmNumeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.gimmickBpmNumeric.Name = "gimmickBpmNumeric"; + this.gimmickBpmNumeric.Size = new System.Drawing.Size(186, 23); + this.gimmickBpmNumeric.TabIndex = 23; + this.gimmickBpmNumeric.Value = new decimal(new int[] { + 120, + 0, + 0, + 0}); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(207, 150); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(12, 15); + this.label15.TabIndex = 14; + this.label15.Text = "/"; + // + // insertGimmickButton + // + this.insertGimmickButton.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.insertGimmickButton.Location = new System.Drawing.Point(12, 248); + this.insertGimmickButton.Name = "insertGimmickButton"; + this.insertGimmickButton.Size = new System.Drawing.Size(253, 40); + this.insertGimmickButton.TabIndex = 33; + this.insertGimmickButton.Text = "Insert Gimmick"; + this.insertGimmickButton.UseVisualStyleBackColor = true; + this.insertGimmickButton.Click += new System.EventHandler(this.insertGimmickButton_Click); + // + // startBeat2Numeric + // + this.startBeat2Numeric.Location = new System.Drawing.Point(219, 12); + this.startBeat2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.startBeat2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.startBeat2Numeric.Name = "startBeat2Numeric"; + this.startBeat2Numeric.Size = new System.Drawing.Size(42, 23); + this.startBeat2Numeric.TabIndex = 43; + this.startBeat2Numeric.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(34, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(34, 15); + this.label1.TabIndex = 45; + this.label1.Text = "Start:"; + // + // startBeat1Numeric + // + this.startBeat1Numeric.Location = new System.Drawing.Point(168, 12); + this.startBeat1Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.startBeat1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.startBeat1Numeric.Name = "startBeat1Numeric"; + this.startBeat1Numeric.Size = new System.Drawing.Size(38, 23); + this.startBeat1Numeric.TabIndex = 42; + this.startBeat1Numeric.ValueChanged += new System.EventHandler(this.startBeat1Numeric_ValueChanged); + // + // startMeasureNumeric + // + this.startMeasureNumeric.Location = new System.Drawing.Point(75, 12); + this.startMeasureNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.startMeasureNumeric.Name = "startMeasureNumeric"; + this.startMeasureNumeric.Size = new System.Drawing.Size(87, 23); + this.startMeasureNumeric.TabIndex = 41; + this.startMeasureNumeric.ValueChanged += new System.EventHandler(this.startMeasureNumeric_ValueChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(207, 14); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(12, 15); + this.label2.TabIndex = 44; + this.label2.Text = "/"; + // + // GimmickForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(281, 303); + this.Controls.Add(this.startBeat2Numeric); + this.Controls.Add(this.label1); + this.Controls.Add(this.startBeat1Numeric); + this.Controls.Add(this.startMeasureNumeric); + this.Controls.Add(this.label2); + this.Controls.Add(this.revEnd2Beat2Numeric); + this.Controls.Add(this.insertGimmickButton); + this.Controls.Add(this.label18); + this.Controls.Add(this.revEnd2Beat1Numeric); + this.Controls.Add(this.gimmickBpmNumeric); + this.Controls.Add(this.revEnd2MeasureNumeric); + this.Controls.Add(this.label15); + this.Controls.Add(this.label19); + this.Controls.Add(this.timeSig1Numeric); + this.Controls.Add(this.revEnd1Beat2Numeric); + this.Controls.Add(this.timeSig2Numeric); + this.Controls.Add(this.label16); + this.Controls.Add(this.label14); + this.Controls.Add(this.revEnd1Beat1Numeric); + this.Controls.Add(this.label13); + this.Controls.Add(this.revEnd1MeasureNumeric); + this.Controls.Add(this.label12); + this.Controls.Add(this.label17); + this.Controls.Add(this.hiSpeedNumeric); + this.Controls.Add(this.stopEndBeat2Numeric); + this.Controls.Add(this.label11); + this.Controls.Add(this.label10); + this.Controls.Add(this.stopEndMeasureNumeric); + this.Controls.Add(this.stopEndBeat1Numeric); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "GimmickForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Gimmick Settings"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GimmickForm_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd2MeasureNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.revEnd1MeasureNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.stopEndMeasureNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.hiSpeedNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSig2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSig1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gimmickBpmNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.startBeat2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.startBeat1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.startMeasureNumeric)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private NumericUpDown revEnd2Beat2Numeric; + private Label label18; + private NumericUpDown revEnd2Beat1Numeric; + private NumericUpDown revEnd2MeasureNumeric; + private Label label19; + private NumericUpDown revEnd1Beat2Numeric; + private Label label16; + private NumericUpDown revEnd1Beat1Numeric; + private NumericUpDown revEnd1MeasureNumeric; + private Label label17; + private NumericUpDown stopEndBeat2Numeric; + private Label label10; + private NumericUpDown stopEndBeat1Numeric; + private NumericUpDown stopEndMeasureNumeric; + private Label label11; + private NumericUpDown hiSpeedNumeric; + private Label label12; + private Label label13; + private Label label14; + private NumericUpDown timeSig2Numeric; + private NumericUpDown timeSig1Numeric; + private NumericUpDown gimmickBpmNumeric; + private Label label15; + private Button insertGimmickButton; + private NumericUpDown startBeat2Numeric; + private Label label1; + private NumericUpDown startBeat1Numeric; + private NumericUpDown startMeasureNumeric; + private Label label2; + } +} \ No newline at end of file diff --git a/BAKKA-Editor/GimmickForm.cs b/BAKKA-Editor/GimmickForm.cs new file mode 100644 index 0000000..c3dc871 --- /dev/null +++ b/BAKKA-Editor/GimmickForm.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace BAKKA_Editor +{ + public partial class GimmickForm : Form + { + public GimmickForm() + { + InitializeComponent(); + } + } +} diff --git a/BAKKA-Editor/GimmickForm.resx b/BAKKA-Editor/GimmickForm.resx new file mode 100644 index 0000000..e8ae276 --- /dev/null +++ b/BAKKA-Editor/GimmickForm.resx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BAKKA-Editor/InitChartSettingsForm.Designer.cs b/BAKKA-Editor/InitChartSettingsForm.Designer.cs new file mode 100644 index 0000000..9da4bba --- /dev/null +++ b/BAKKA-Editor/InitChartSettingsForm.Designer.cs @@ -0,0 +1,241 @@ +namespace BAKKA_Editor +{ + partial class InitChartSettingsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.initSaveSettingsButton = new System.Windows.Forms.Button(); + this.label9 = new System.Windows.Forms.Label(); + this.initMovieOffsetNumeric = new System.Windows.Forms.NumericUpDown(); + this.label8 = new System.Windows.Forms.Label(); + this.initOffsetNumeric = new System.Windows.Forms.NumericUpDown(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.initTimeSig2Numeric = new System.Windows.Forms.NumericUpDown(); + this.initTimeSig1Numeric = new System.Windows.Forms.NumericUpDown(); + this.initBpmNumeric = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.initMovieOffsetNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.initOffsetNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.initTimeSig2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.initTimeSig1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.initBpmNumeric)).BeginInit(); + this.SuspendLayout(); + // + // initSaveSettingsButton + // + this.initSaveSettingsButton.Location = new System.Drawing.Point(12, 128); + this.initSaveSettingsButton.Name = "initSaveSettingsButton"; + this.initSaveSettingsButton.Size = new System.Drawing.Size(218, 23); + this.initSaveSettingsButton.TabIndex = 30; + this.initSaveSettingsButton.Text = "Save Settings"; + this.initSaveSettingsButton.UseVisualStyleBackColor = true; + this.initSaveSettingsButton.Click += new System.EventHandler(this.initSaveSettingsButton_Click); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(46, 101); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(78, 15); + this.label9.TabIndex = 29; + this.label9.Text = "Movie Offset:"; + // + // initMovieOffsetNumeric + // + this.initMovieOffsetNumeric.DecimalPlaces = 6; + this.initMovieOffsetNumeric.Location = new System.Drawing.Point(130, 99); + this.initMovieOffsetNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.initMovieOffsetNumeric.Name = "initMovieOffsetNumeric"; + this.initMovieOffsetNumeric.Size = new System.Drawing.Size(100, 23); + this.initMovieOffsetNumeric.TabIndex = 28; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(82, 74); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(42, 15); + this.label8.TabIndex = 27; + this.label8.Text = "Offset:"; + // + // initOffsetNumeric + // + this.initOffsetNumeric.DecimalPlaces = 6; + this.initOffsetNumeric.Location = new System.Drawing.Point(130, 70); + this.initOffsetNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.initOffsetNumeric.Name = "initOffsetNumeric"; + this.initOffsetNumeric.Size = new System.Drawing.Size(100, 23); + this.initOffsetNumeric.TabIndex = 26; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(35, 43); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(89, 15); + this.label7.TabIndex = 25; + this.label7.Text = "Time Signature:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(174, 43); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(12, 15); + this.label6.TabIndex = 13; + this.label6.Text = "/"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(89, 14); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(35, 15); + this.label5.TabIndex = 24; + this.label5.Text = "BPM:"; + // + // initTimeSig2Numeric + // + this.initTimeSig2Numeric.Location = new System.Drawing.Point(192, 41); + this.initTimeSig2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.initTimeSig2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.initTimeSig2Numeric.Name = "initTimeSig2Numeric"; + this.initTimeSig2Numeric.Size = new System.Drawing.Size(38, 23); + this.initTimeSig2Numeric.TabIndex = 12; + this.initTimeSig2Numeric.Value = new decimal(new int[] { + 4, + 0, + 0, + 0}); + // + // initTimeSig1Numeric + // + this.initTimeSig1Numeric.Location = new System.Drawing.Point(130, 41); + this.initTimeSig1Numeric.Maximum = new decimal(new int[] { + 191, + 0, + 0, + 0}); + this.initTimeSig1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.initTimeSig1Numeric.Name = "initTimeSig1Numeric"; + this.initTimeSig1Numeric.Size = new System.Drawing.Size(38, 23); + this.initTimeSig1Numeric.TabIndex = 11; + this.initTimeSig1Numeric.Value = new decimal(new int[] { + 4, + 0, + 0, + 0}); + // + // initBpmNumeric + // + this.initBpmNumeric.DecimalPlaces = 6; + this.initBpmNumeric.Location = new System.Drawing.Point(130, 12); + this.initBpmNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.initBpmNumeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.initBpmNumeric.Name = "initBpmNumeric"; + this.initBpmNumeric.Size = new System.Drawing.Size(100, 23); + this.initBpmNumeric.TabIndex = 23; + this.initBpmNumeric.Value = new decimal(new int[] { + 120, + 0, + 0, + 0}); + // + // InitChartSettingsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(242, 164); + this.Controls.Add(this.initSaveSettingsButton); + this.Controls.Add(this.label9); + this.Controls.Add(this.initBpmNumeric); + this.Controls.Add(this.initMovieOffsetNumeric); + this.Controls.Add(this.initTimeSig1Numeric); + this.Controls.Add(this.label8); + this.Controls.Add(this.initTimeSig2Numeric); + this.Controls.Add(this.initOffsetNumeric); + this.Controls.Add(this.label5); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "InitChartSettingsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Initial Chart Settings"; + ((System.ComponentModel.ISupportInitialize)(this.initMovieOffsetNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.initOffsetNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.initTimeSig2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.initTimeSig1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.initBpmNumeric)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Button initSaveSettingsButton; + private Label label9; + private NumericUpDown initMovieOffsetNumeric; + private Label label8; + private NumericUpDown initOffsetNumeric; + private Label label7; + private Label label6; + private Label label5; + private NumericUpDown initTimeSig2Numeric; + private NumericUpDown initTimeSig1Numeric; + private NumericUpDown initBpmNumeric; + } +} \ No newline at end of file diff --git a/BAKKA-Editor/InitChartSettingsForm.cs b/BAKKA-Editor/InitChartSettingsForm.cs new file mode 100644 index 0000000..0315982 --- /dev/null +++ b/BAKKA-Editor/InitChartSettingsForm.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace BAKKA_Editor +{ + public partial class InitChartSettingsForm : Form + { + public InitChartSettingsForm() + { + InitializeComponent(); + } + } +} diff --git a/BAKKA-Editor/InitChartSettingsForm.resx b/BAKKA-Editor/InitChartSettingsForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/BAKKA-Editor/InitChartSettingsForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BAKKA-Editor/MainForm.Designer.cs b/BAKKA-Editor/MainForm.Designer.cs new file mode 100644 index 0000000..e67feee --- /dev/null +++ b/BAKKA-Editor/MainForm.Designer.cs @@ -0,0 +1,1479 @@ +namespace BAKKA_Editor +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.circlePanel = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label4 = new System.Windows.Forms.Label(); + this.beat2Numeric = new System.Windows.Forms.NumericUpDown(); + this.beat1Numeric = new System.Windows.Forms.NumericUpDown(); + this.measureNumeric = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.sizeTrackBar = new System.Windows.Forms.TrackBar(); + this.sizeNumeric = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.positionTrackBar = new System.Windows.Forms.TrackBar(); + this.positionNumeric = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.flairRadio = new System.Windows.Forms.RadioButton(); + this.bonusRadio = new System.Windows.Forms.RadioButton(); + this.noBonusRadio = new System.Windows.Forms.RadioButton(); + this.endHoldCheck = new System.Windows.Forms.CheckBox(); + this.endChartButton = new System.Windows.Forms.Button(); + this.holdButton = new System.Windows.Forms.Button(); + this.chainButton = new System.Windows.Forms.Button(); + this.blueButton = new System.Windows.Forms.Button(); + this.redButton = new System.Windows.Forms.Button(); + this.greenButton = new System.Windows.Forms.Button(); + this.orangeButton = new System.Windows.Forms.Button(); + this.tapButton = new System.Windows.Forms.Button(); + this.gimmickTypeGroupBox = new System.Windows.Forms.GroupBox(); + this.removeMaskRadio = new System.Windows.Forms.RadioButton(); + this.reverseButton = new System.Windows.Forms.Button(); + this.addMaskRadio = new System.Windows.Forms.RadioButton(); + this.stopButton = new System.Windows.Forms.Button(); + this.hiSpeedButton = new System.Windows.Forms.Button(); + this.timeSigButton = new System.Windows.Forms.Button(); + this.bpmChangeButton = new System.Windows.Forms.Button(); + this.maskButton = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.centerMaskRadio = new System.Windows.Forms.RadioButton(); + this.clockwiseMaskRadio = new System.Windows.Forms.RadioButton(); + this.cClockwiseMaskRadio = new System.Windows.Forms.RadioButton(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.currentSelectionLabel = new System.Windows.Forms.Label(); + this.playbackGroupBox = new System.Windows.Forms.GroupBox(); + this.songFileLabel = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.songTrackBar = new System.Windows.Forms.TrackBar(); + this.selectSongButton = new System.Windows.Forms.Button(); + this.playButton = new System.Windows.Forms.Button(); + this.openSongDialog = new System.Windows.Forms.OpenFileDialog(); + this.updateTimer = new System.Windows.Forms.Timer(this.components); + this.groupBox9 = new System.Windows.Forms.GroupBox(); + this.label21 = new System.Windows.Forms.Label(); + this.visualHispeedNumeric = new System.Windows.Forms.NumericUpDown(); + this.insertButton = new System.Windows.Forms.Button(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showCursorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showCursorDuringPlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.highlightViewedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.chartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.initialChartSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.gimmickDeleteButton = new System.Windows.Forms.Button(); + this.gimmickEditButton = new System.Windows.Forms.Button(); + this.gimmickBeatLabel = new System.Windows.Forms.Label(); + this.gimmickValueLabel = new System.Windows.Forms.Label(); + this.gimmickTypeLabel = new System.Windows.Forms.Label(); + this.gimmickMeasureLabel = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.gimmickNextButton = new System.Windows.Forms.Button(); + this.gimmickPrevButton = new System.Windows.Forms.Button(); + this.noteViewGroupBox = new System.Windows.Forms.GroupBox(); + this.noteMaskLabel = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.noteSizeLabel = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.noteNextMeasureButton = new System.Windows.Forms.Button(); + this.notePrevMeasureButton = new System.Windows.Forms.Button(); + this.noteDeleteSelectedButton = new System.Windows.Forms.Button(); + this.noteEditSelectedButton = new System.Windows.Forms.Button(); + this.noteBeatLabel = new System.Windows.Forms.Label(); + this.notePositionLabel = new System.Windows.Forms.Label(); + this.noteTypeLabel = new System.Windows.Forms.Label(); + this.noteMeasureLabel = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.noteNextButton = new System.Windows.Forms.Button(); + this.notePrevButton = new System.Windows.Forms.Button(); + this.autoSaveTimer = new System.Windows.Forms.Timer(this.components); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.beat2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.beat1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.measureNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.sizeNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.positionTrackBar)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.positionNumeric)).BeginInit(); + this.groupBox2.SuspendLayout(); + this.gimmickTypeGroupBox.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.playbackGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.songTrackBar)).BeginInit(); + this.groupBox9.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.visualHispeedNumeric)).BeginInit(); + this.menuStrip.SuspendLayout(); + this.groupBox6.SuspendLayout(); + this.noteViewGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // openFileDialog + // + this.openFileDialog.FileName = "openFileDialog"; + this.openFileDialog.Filter = "MER files|*.mer"; + this.openFileDialog.Title = "Select Chart File to Open"; + // + // saveFileDialog + // + this.saveFileDialog.DefaultExt = "*.mer"; + this.saveFileDialog.Filter = "MER files|*.mer"; + // + // circlePanel + // + this.circlePanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.circlePanel.Location = new System.Drawing.Point(257, 40); + this.circlePanel.Name = "circlePanel"; + this.circlePanel.Size = new System.Drawing.Size(611, 611); + this.circlePanel.TabIndex = 2; + this.circlePanel.Paint += new System.Windows.Forms.PaintEventHandler(this.circlePanel_Paint); + this.circlePanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseDown); + this.circlePanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseMove); + this.circlePanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseUp); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.beat2Numeric); + this.groupBox1.Controls.Add(this.beat1Numeric); + this.groupBox1.Controls.Add(this.measureNumeric); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.sizeTrackBar); + this.groupBox1.Controls.Add(this.sizeNumeric); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.positionTrackBar); + this.groupBox1.Controls.Add(this.positionNumeric); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 446); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(239, 160); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Current Note Settings"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(175, 131); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(12, 15); + this.label4.TabIndex = 10; + this.label4.Text = "/"; + // + // beat2Numeric + // + this.beat2Numeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.beat2Numeric.Location = new System.Drawing.Point(193, 129); + this.beat2Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.beat2Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.beat2Numeric.Name = "beat2Numeric"; + this.beat2Numeric.Size = new System.Drawing.Size(38, 23); + this.beat2Numeric.TabIndex = 9; + this.beat2Numeric.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.beat2Numeric.ValueChanged += new System.EventHandler(this.beat2Numeric_ValueChanged); + // + // beat1Numeric + // + this.beat1Numeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.beat1Numeric.Location = new System.Drawing.Point(131, 129); + this.beat1Numeric.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.beat1Numeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.beat1Numeric.Name = "beat1Numeric"; + this.beat1Numeric.Size = new System.Drawing.Size(38, 23); + this.beat1Numeric.TabIndex = 8; + this.beat1Numeric.ValueChanged += new System.EventHandler(this.beat1Numeric_ValueChanged); + // + // measureNumeric + // + this.measureNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.measureNumeric.Location = new System.Drawing.Point(6, 129); + this.measureNumeric.Maximum = new decimal(new int[] { + 9999, + 0, + 0, + 0}); + this.measureNumeric.Name = "measureNumeric"; + this.measureNumeric.Size = new System.Drawing.Size(119, 23); + this.measureNumeric.TabIndex = 7; + this.measureNumeric.ValueChanged += new System.EventHandler(this.measureNumeric_ValueChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 111); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(55, 15); + this.label3.TabIndex = 6; + this.label3.Text = "Measure:"; + // + // sizeTrackBar + // + this.sizeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.sizeTrackBar.Location = new System.Drawing.Point(50, 81); + this.sizeTrackBar.Maximum = 60; + this.sizeTrackBar.Minimum = 1; + this.sizeTrackBar.Name = "sizeTrackBar"; + this.sizeTrackBar.Size = new System.Drawing.Size(183, 45); + this.sizeTrackBar.TabIndex = 5; + this.sizeTrackBar.TickStyle = System.Windows.Forms.TickStyle.None; + this.sizeTrackBar.Value = 1; + this.sizeTrackBar.ValueChanged += new System.EventHandler(this.sizeTrackBar_ValueChanged); + // + // sizeNumeric + // + this.sizeNumeric.Location = new System.Drawing.Point(6, 81); + this.sizeNumeric.Maximum = new decimal(new int[] { + 60, + 0, + 0, + 0}); + this.sizeNumeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.sizeNumeric.Name = "sizeNumeric"; + this.sizeNumeric.Size = new System.Drawing.Size(38, 23); + this.sizeNumeric.TabIndex = 4; + this.sizeNumeric.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 63); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(30, 15); + this.label2.TabIndex = 3; + this.label2.Text = "Size:"; + // + // positionTrackBar + // + this.positionTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.positionTrackBar.Location = new System.Drawing.Point(50, 37); + this.positionTrackBar.Maximum = 59; + this.positionTrackBar.Name = "positionTrackBar"; + this.positionTrackBar.Size = new System.Drawing.Size(183, 45); + this.positionTrackBar.TabIndex = 2; + this.positionTrackBar.TickStyle = System.Windows.Forms.TickStyle.None; + this.positionTrackBar.ValueChanged += new System.EventHandler(this.positionTrackBar_ValueChanged); + // + // positionNumeric + // + this.positionNumeric.Location = new System.Drawing.Point(6, 37); + this.positionNumeric.Maximum = new decimal(new int[] { + 59, + 0, + 0, + 0}); + this.positionNumeric.Name = "positionNumeric"; + this.positionNumeric.Size = new System.Drawing.Size(38, 23); + this.positionNumeric.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 19); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 15); + this.label1.TabIndex = 0; + this.label1.Text = "Position:"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.flairRadio); + this.groupBox2.Controls.Add(this.bonusRadio); + this.groupBox2.Controls.Add(this.noBonusRadio); + this.groupBox2.Controls.Add(this.endHoldCheck); + this.groupBox2.Controls.Add(this.endChartButton); + this.groupBox2.Controls.Add(this.holdButton); + this.groupBox2.Controls.Add(this.chainButton); + this.groupBox2.Controls.Add(this.blueButton); + this.groupBox2.Controls.Add(this.redButton); + this.groupBox2.Controls.Add(this.greenButton); + this.groupBox2.Controls.Add(this.orangeButton); + this.groupBox2.Controls.Add(this.tapButton); + this.groupBox2.Location = new System.Drawing.Point(12, 27); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(109, 358); + this.groupBox2.TabIndex = 4; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Note Types"; + // + // flairRadio + // + this.flairRadio.AutoSize = true; + this.flairRadio.Location = new System.Drawing.Point(6, 329); + this.flairRadio.Name = "flairRadio"; + this.flairRadio.Size = new System.Drawing.Size(94, 19); + this.flairRadio.TabIndex = 16; + this.flairRadio.Text = "R Note (Flair)"; + this.flairRadio.UseVisualStyleBackColor = true; + this.flairRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck); + // + // bonusRadio + // + this.bonusRadio.AutoSize = true; + this.bonusRadio.Location = new System.Drawing.Point(6, 304); + this.bonusRadio.Name = "bonusRadio"; + this.bonusRadio.Size = new System.Drawing.Size(79, 19); + this.bonusRadio.TabIndex = 15; + this.bonusRadio.Text = "Bonus Get"; + this.bonusRadio.UseVisualStyleBackColor = true; + this.bonusRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck); + // + // noBonusRadio + // + this.noBonusRadio.AutoSize = true; + this.noBonusRadio.Checked = true; + this.noBonusRadio.Location = new System.Drawing.Point(6, 279); + this.noBonusRadio.Name = "noBonusRadio"; + this.noBonusRadio.Size = new System.Drawing.Size(77, 19); + this.noBonusRadio.TabIndex = 14; + this.noBonusRadio.TabStop = true; + this.noBonusRadio.Text = "No Bonus"; + this.noBonusRadio.UseVisualStyleBackColor = true; + this.noBonusRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck); + // + // endHoldCheck + // + this.endHoldCheck.AutoSize = true; + this.endHoldCheck.Location = new System.Drawing.Point(6, 254); + this.endHoldCheck.Name = "endHoldCheck"; + this.endHoldCheck.Size = new System.Drawing.Size(75, 19); + this.endHoldCheck.TabIndex = 13; + this.endHoldCheck.Text = "End Hold"; + this.endHoldCheck.UseVisualStyleBackColor = true; + this.endHoldCheck.CheckedChanged += new System.EventHandler(this.endHoldCheck_CheckedChanged); + // + // endChartButton + // + this.endChartButton.Location = new System.Drawing.Point(6, 225); + this.endChartButton.Name = "endChartButton"; + this.endChartButton.Size = new System.Drawing.Size(86, 23); + this.endChartButton.TabIndex = 12; + this.endChartButton.Text = "End of Chart"; + this.endChartButton.UseVisualStyleBackColor = true; + this.endChartButton.Click += new System.EventHandler(this.endChartButton_Click); + // + // holdButton + // + this.holdButton.BackColor = System.Drawing.Color.Yellow; + this.holdButton.Location = new System.Drawing.Point(6, 196); + this.holdButton.Name = "holdButton"; + this.holdButton.Size = new System.Drawing.Size(86, 23); + this.holdButton.TabIndex = 11; + this.holdButton.Text = "Hold (H)"; + this.holdButton.UseVisualStyleBackColor = false; + this.holdButton.Click += new System.EventHandler(this.holdButton_Click); + // + // chainButton + // + this.chainButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(190)))), ((int)(((byte)(45))))); + this.chainButton.Location = new System.Drawing.Point(6, 167); + this.chainButton.Name = "chainButton"; + this.chainButton.Size = new System.Drawing.Size(86, 23); + this.chainButton.TabIndex = 10; + this.chainButton.Text = "Chain (Y)"; + this.chainButton.UseVisualStyleBackColor = false; + this.chainButton.Click += new System.EventHandler(this.chainButton_Click); + // + // blueButton + // + this.blueButton.BackColor = System.Drawing.Color.Cyan; + this.blueButton.ForeColor = System.Drawing.SystemColors.ControlText; + this.blueButton.Location = new System.Drawing.Point(6, 138); + this.blueButton.Name = "blueButton"; + this.blueButton.Size = new System.Drawing.Size(86, 23); + this.blueButton.TabIndex = 9; + this.blueButton.Text = "↓ Snap (B)"; + this.blueButton.UseVisualStyleBackColor = false; + this.blueButton.Click += new System.EventHandler(this.blueButton_Click); + // + // redButton + // + this.redButton.BackColor = System.Drawing.Color.Red; + this.redButton.ForeColor = System.Drawing.Color.White; + this.redButton.Location = new System.Drawing.Point(6, 109); + this.redButton.Name = "redButton"; + this.redButton.Size = new System.Drawing.Size(86, 23); + this.redButton.TabIndex = 8; + this.redButton.Text = "↑ Snap (R)"; + this.redButton.UseVisualStyleBackColor = false; + this.redButton.Click += new System.EventHandler(this.redButton_Click); + // + // greenButton + // + this.greenButton.BackColor = System.Drawing.Color.Lime; + this.greenButton.Location = new System.Drawing.Point(6, 80); + this.greenButton.Name = "greenButton"; + this.greenButton.Size = new System.Drawing.Size(86, 23); + this.greenButton.TabIndex = 7; + this.greenButton.Text = "→ Slide (G)"; + this.greenButton.UseVisualStyleBackColor = false; + this.greenButton.Click += new System.EventHandler(this.greenButton_Click); + // + // orangeButton + // + this.orangeButton.BackColor = System.Drawing.Color.Orange; + this.orangeButton.Location = new System.Drawing.Point(6, 51); + this.orangeButton.Name = "orangeButton"; + this.orangeButton.Size = new System.Drawing.Size(86, 23); + this.orangeButton.TabIndex = 6; + this.orangeButton.Text = "← Slide (O)"; + this.orangeButton.UseVisualStyleBackColor = false; + this.orangeButton.Click += new System.EventHandler(this.orangeButton_Click); + // + // tapButton + // + this.tapButton.BackColor = System.Drawing.Color.Fuchsia; + this.tapButton.Location = new System.Drawing.Point(6, 22); + this.tapButton.Name = "tapButton"; + this.tapButton.Size = new System.Drawing.Size(86, 23); + this.tapButton.TabIndex = 5; + this.tapButton.Text = "Touch (T)"; + this.tapButton.UseVisualStyleBackColor = false; + this.tapButton.Click += new System.EventHandler(this.tapButton_Click); + // + // gimmickTypeGroupBox + // + this.gimmickTypeGroupBox.Controls.Add(this.removeMaskRadio); + this.gimmickTypeGroupBox.Controls.Add(this.reverseButton); + this.gimmickTypeGroupBox.Controls.Add(this.addMaskRadio); + this.gimmickTypeGroupBox.Controls.Add(this.stopButton); + this.gimmickTypeGroupBox.Controls.Add(this.hiSpeedButton); + this.gimmickTypeGroupBox.Controls.Add(this.timeSigButton); + this.gimmickTypeGroupBox.Controls.Add(this.bpmChangeButton); + this.gimmickTypeGroupBox.Controls.Add(this.maskButton); + this.gimmickTypeGroupBox.Location = new System.Drawing.Point(127, 30); + this.gimmickTypeGroupBox.Name = "gimmickTypeGroupBox"; + this.gimmickTypeGroupBox.Size = new System.Drawing.Size(124, 249); + this.gimmickTypeGroupBox.TabIndex = 5; + this.gimmickTypeGroupBox.TabStop = false; + this.gimmickTypeGroupBox.Text = "Gimmick Types"; + // + // removeMaskRadio + // + this.removeMaskRadio.AutoSize = true; + this.removeMaskRadio.Location = new System.Drawing.Point(6, 222); + this.removeMaskRadio.Name = "removeMaskRadio"; + this.removeMaskRadio.Size = new System.Drawing.Size(99, 19); + this.removeMaskRadio.TabIndex = 18; + this.removeMaskRadio.Text = "Remove Mask"; + this.removeMaskRadio.UseVisualStyleBackColor = true; + this.removeMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged); + // + // reverseButton + // + this.reverseButton.Location = new System.Drawing.Point(6, 167); + this.reverseButton.Name = "reverseButton"; + this.reverseButton.Size = new System.Drawing.Size(112, 23); + this.reverseButton.TabIndex = 5; + this.reverseButton.Text = "Reverse"; + this.reverseButton.UseVisualStyleBackColor = true; + this.reverseButton.Click += new System.EventHandler(this.reverseButton_Click); + // + // addMaskRadio + // + this.addMaskRadio.AutoSize = true; + this.addMaskRadio.Checked = true; + this.addMaskRadio.Location = new System.Drawing.Point(6, 197); + this.addMaskRadio.Name = "addMaskRadio"; + this.addMaskRadio.Size = new System.Drawing.Size(78, 19); + this.addMaskRadio.TabIndex = 17; + this.addMaskRadio.TabStop = true; + this.addMaskRadio.Text = "Add Mask"; + this.addMaskRadio.UseVisualStyleBackColor = true; + this.addMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged); + // + // stopButton + // + this.stopButton.Location = new System.Drawing.Point(6, 138); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size(112, 23); + this.stopButton.TabIndex = 4; + this.stopButton.Text = "Stop"; + this.stopButton.UseVisualStyleBackColor = true; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // hiSpeedButton + // + this.hiSpeedButton.Location = new System.Drawing.Point(6, 109); + this.hiSpeedButton.Name = "hiSpeedButton"; + this.hiSpeedButton.Size = new System.Drawing.Size(112, 23); + this.hiSpeedButton.TabIndex = 3; + this.hiSpeedButton.Text = "Hi-Speed"; + this.hiSpeedButton.UseVisualStyleBackColor = true; + this.hiSpeedButton.Click += new System.EventHandler(this.hiSpeedButton_Click); + // + // timeSigButton + // + this.timeSigButton.Location = new System.Drawing.Point(6, 80); + this.timeSigButton.Name = "timeSigButton"; + this.timeSigButton.Size = new System.Drawing.Size(112, 23); + this.timeSigButton.TabIndex = 2; + this.timeSigButton.Text = "Time Signature"; + this.timeSigButton.UseVisualStyleBackColor = true; + this.timeSigButton.Click += new System.EventHandler(this.timeSigButton_Click); + // + // bpmChangeButton + // + this.bpmChangeButton.Location = new System.Drawing.Point(6, 51); + this.bpmChangeButton.Name = "bpmChangeButton"; + this.bpmChangeButton.Size = new System.Drawing.Size(112, 23); + this.bpmChangeButton.TabIndex = 1; + this.bpmChangeButton.Text = "BPM Change"; + this.bpmChangeButton.UseVisualStyleBackColor = true; + this.bpmChangeButton.Click += new System.EventHandler(this.bpmChangeButton_Click); + // + // maskButton + // + this.maskButton.Location = new System.Drawing.Point(6, 22); + this.maskButton.Name = "maskButton"; + this.maskButton.Size = new System.Drawing.Size(112, 23); + this.maskButton.TabIndex = 0; + this.maskButton.Text = "Mask"; + this.maskButton.UseVisualStyleBackColor = true; + this.maskButton.Click += new System.EventHandler(this.maskButton_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.centerMaskRadio); + this.groupBox4.Controls.Add(this.clockwiseMaskRadio); + this.groupBox4.Controls.Add(this.cClockwiseMaskRadio); + this.groupBox4.Location = new System.Drawing.Point(127, 285); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(124, 100); + this.groupBox4.TabIndex = 19; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Mask Setting"; + // + // centerMaskRadio + // + this.centerMaskRadio.AutoSize = true; + this.centerMaskRadio.Location = new System.Drawing.Point(6, 72); + this.centerMaskRadio.Name = "centerMaskRadio"; + this.centerMaskRadio.Size = new System.Drawing.Size(91, 19); + this.centerMaskRadio.TabIndex = 19; + this.centerMaskRadio.Text = "From Center"; + this.centerMaskRadio.UseVisualStyleBackColor = true; + this.centerMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged); + // + // clockwiseMaskRadio + // + this.clockwiseMaskRadio.AutoSize = true; + this.clockwiseMaskRadio.Checked = true; + this.clockwiseMaskRadio.Location = new System.Drawing.Point(6, 22); + this.clockwiseMaskRadio.Name = "clockwiseMaskRadio"; + this.clockwiseMaskRadio.Size = new System.Drawing.Size(78, 19); + this.clockwiseMaskRadio.TabIndex = 17; + this.clockwiseMaskRadio.TabStop = true; + this.clockwiseMaskRadio.Text = "Clockwise"; + this.clockwiseMaskRadio.UseVisualStyleBackColor = true; + this.clockwiseMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged); + // + // cClockwiseMaskRadio + // + this.cClockwiseMaskRadio.AutoSize = true; + this.cClockwiseMaskRadio.Location = new System.Drawing.Point(6, 47); + this.cClockwiseMaskRadio.Name = "cClockwiseMaskRadio"; + this.cClockwiseMaskRadio.Size = new System.Drawing.Size(91, 19); + this.cClockwiseMaskRadio.TabIndex = 18; + this.cClockwiseMaskRadio.Text = "C-Clockwise"; + this.cClockwiseMaskRadio.UseVisualStyleBackColor = true; + this.cClockwiseMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged); + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.currentSelectionLabel); + this.groupBox5.Location = new System.Drawing.Point(12, 392); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(239, 48); + this.groupBox5.TabIndex = 20; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Current Selection"; + // + // currentSelectionLabel + // + this.currentSelectionLabel.AutoSize = true; + this.currentSelectionLabel.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.currentSelectionLabel.Location = new System.Drawing.Point(6, 19); + this.currentSelectionLabel.Name = "currentSelectionLabel"; + this.currentSelectionLabel.Size = new System.Drawing.Size(48, 20); + this.currentSelectionLabel.TabIndex = 21; + this.currentSelectionLabel.Text = "Touch"; + // + // playbackGroupBox + // + this.playbackGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playbackGroupBox.Controls.Add(this.songFileLabel); + this.playbackGroupBox.Controls.Add(this.label20); + this.playbackGroupBox.Controls.Add(this.songTrackBar); + this.playbackGroupBox.Controls.Add(this.selectSongButton); + this.playbackGroupBox.Controls.Add(this.playButton); + this.playbackGroupBox.Location = new System.Drawing.Point(12, 657); + this.playbackGroupBox.Name = "playbackGroupBox"; + this.playbackGroupBox.Size = new System.Drawing.Size(736, 118); + this.playbackGroupBox.TabIndex = 32; + this.playbackGroupBox.TabStop = false; + this.playbackGroupBox.Text = "Playback"; + // + // songFileLabel + // + this.songFileLabel.AutoSize = true; + this.songFileLabel.Location = new System.Drawing.Point(98, 81); + this.songFileLabel.Name = "songFileLabel"; + this.songFileLabel.Size = new System.Drawing.Size(99, 15); + this.songFileLabel.TabIndex = 33; + this.songFileLabel.Text = "Select File (*.ogg)"; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.label20.Location = new System.Drawing.Point(6, 77); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(73, 20); + this.label20.TabIndex = 33; + this.label20.Text = "Song File:"; + // + // songTrackBar + // + this.songTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.songTrackBar.Location = new System.Drawing.Point(98, 22); + this.songTrackBar.Name = "songTrackBar"; + this.songTrackBar.Size = new System.Drawing.Size(632, 45); + this.songTrackBar.TabIndex = 2; + this.songTrackBar.ValueChanged += new System.EventHandler(this.songTrackBar_ValueChanged); + // + // selectSongButton + // + this.selectSongButton.Location = new System.Drawing.Point(6, 51); + this.selectSongButton.Name = "selectSongButton"; + this.selectSongButton.Size = new System.Drawing.Size(86, 23); + this.selectSongButton.TabIndex = 1; + this.selectSongButton.Text = "Select Song"; + this.selectSongButton.UseVisualStyleBackColor = true; + this.selectSongButton.Click += new System.EventHandler(this.selectSongButton_Click); + // + // playButton + // + this.playButton.Location = new System.Drawing.Point(6, 22); + this.playButton.Name = "playButton"; + this.playButton.Size = new System.Drawing.Size(86, 23); + this.playButton.TabIndex = 0; + this.playButton.Text = "Play (P)"; + this.playButton.UseVisualStyleBackColor = true; + this.playButton.Click += new System.EventHandler(this.playButton_Click); + // + // openSongDialog + // + this.openSongDialog.Filter = "Audio Files (*.ogg;*.mod;*.it;*.xm;*.it;*.s3d)|*.ogg;*.mod;*.it;*.xm;*.it;*.s3d"; + // + // updateTimer + // + this.updateTimer.Interval = 20; + this.updateTimer.Tick += new System.EventHandler(this.updateTimer_Tick); + // + // groupBox9 + // + this.groupBox9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox9.Controls.Add(this.label21); + this.groupBox9.Controls.Add(this.visualHispeedNumeric); + this.groupBox9.Location = new System.Drawing.Point(754, 657); + this.groupBox9.Name = "groupBox9"; + this.groupBox9.Size = new System.Drawing.Size(114, 118); + this.groupBox9.TabIndex = 0; + this.groupBox9.TabStop = false; + this.groupBox9.Text = "Visual Settings"; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(6, 19); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(59, 15); + this.label21.TabIndex = 11; + this.label21.Text = "Hi-Speed:"; + // + // visualHispeedNumeric + // + this.visualHispeedNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.visualHispeedNumeric.DecimalPlaces = 2; + this.visualHispeedNumeric.Increment = new decimal(new int[] { + 5, + 0, + 0, + 65536}); + this.visualHispeedNumeric.Location = new System.Drawing.Point(6, 37); + this.visualHispeedNumeric.Maximum = new decimal(new int[] { + 500, + 0, + 0, + 0}); + this.visualHispeedNumeric.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 196608}); + this.visualHispeedNumeric.Name = "visualHispeedNumeric"; + this.visualHispeedNumeric.Size = new System.Drawing.Size(102, 23); + this.visualHispeedNumeric.TabIndex = 11; + this.visualHispeedNumeric.Value = new decimal(new int[] { + 5, + 0, + 0, + 65536}); + this.visualHispeedNumeric.ValueChanged += new System.EventHandler(this.visualHispeedNumeric_ValueChanged); + // + // insertButton + // + this.insertButton.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.insertButton.Location = new System.Drawing.Point(12, 612); + this.insertButton.Name = "insertButton"; + this.insertButton.Size = new System.Drawing.Size(239, 39); + this.insertButton.TabIndex = 12; + this.insertButton.Text = "Insert Object (I)"; + this.insertButton.UseVisualStyleBackColor = true; + this.insertButton.Click += new System.EventHandler(this.insertButton_Click); + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.openToolStripMenuItem, + this.saveToolStripMenuItem, + this.saveAsToolStripMenuItem, + this.exitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); + this.newToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.newToolStripMenuItem.Text = "New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.openToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.openToolStripMenuItem.Text = "Open"; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.saveToolStripMenuItem.Text = "Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); + // + // saveAsToolStripMenuItem + // + this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; + this.saveAsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.S))); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.saveAsToolStripMenuItem.Text = "Save As"; + this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.exitToolStripMenuItem.Text = "Exit"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // viewToolStripMenuItem + // + this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.showCursorToolStripMenuItem, + this.showCursorDuringPlaybackToolStripMenuItem, + this.highlightViewedNoteToolStripMenuItem}); + this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; + this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20); + this.viewToolStripMenuItem.Text = "View"; + // + // showCursorToolStripMenuItem + // + this.showCursorToolStripMenuItem.Checked = true; + this.showCursorToolStripMenuItem.CheckOnClick = true; + this.showCursorToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; + this.showCursorToolStripMenuItem.Name = "showCursorToolStripMenuItem"; + this.showCursorToolStripMenuItem.Size = new System.Drawing.Size(230, 22); + this.showCursorToolStripMenuItem.Text = "Show Cursor"; + this.showCursorToolStripMenuItem.Click += new System.EventHandler(this.showCursorToolStripMenuItem_Click); + // + // showCursorDuringPlaybackToolStripMenuItem + // + this.showCursorDuringPlaybackToolStripMenuItem.Name = "showCursorDuringPlaybackToolStripMenuItem"; + this.showCursorDuringPlaybackToolStripMenuItem.Size = new System.Drawing.Size(230, 22); + this.showCursorDuringPlaybackToolStripMenuItem.Text = "Show Cursor During Playback"; + // + // highlightViewedNoteToolStripMenuItem + // + this.highlightViewedNoteToolStripMenuItem.Checked = true; + this.highlightViewedNoteToolStripMenuItem.CheckOnClick = true; + this.highlightViewedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; + this.highlightViewedNoteToolStripMenuItem.Name = "highlightViewedNoteToolStripMenuItem"; + this.highlightViewedNoteToolStripMenuItem.Size = new System.Drawing.Size(230, 22); + this.highlightViewedNoteToolStripMenuItem.Text = "Highlight Viewed Note"; + // + // chartToolStripMenuItem + // + this.chartToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.initialChartSettingsToolStripMenuItem}); + this.chartToolStripMenuItem.Name = "chartToolStripMenuItem"; + this.chartToolStripMenuItem.Size = new System.Drawing.Size(48, 20); + this.chartToolStripMenuItem.Text = "Chart"; + // + // initialChartSettingsToolStripMenuItem + // + this.initialChartSettingsToolStripMenuItem.Name = "initialChartSettingsToolStripMenuItem"; + this.initialChartSettingsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.initialChartSettingsToolStripMenuItem.Text = "Initial Chart Settings"; + this.initialChartSettingsToolStripMenuItem.Click += new System.EventHandler(this.initialChartSettingsToolStripMenuItem_Click); + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(52, 20); + this.aboutToolStripMenuItem.Text = "About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // menuStrip + // + this.menuStrip.BackColor = System.Drawing.SystemColors.ControlDark; + this.menuStrip.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.editToolStripMenuItem, + this.viewToolStripMenuItem, + this.chartToolStripMenuItem, + this.aboutToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(1142, 24); + this.menuStrip.TabIndex = 0; + this.menuStrip.Text = "menuStrip1"; + // + // editToolStripMenuItem + // + this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.undoToolStripMenuItem, + this.redoToolStripMenuItem}); + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); + this.editToolStripMenuItem.Text = "Edit"; + // + // undoToolStripMenuItem + // + this.undoToolStripMenuItem.Name = "undoToolStripMenuItem"; + this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); + this.undoToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.undoToolStripMenuItem.Text = "Undo"; + this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click); + // + // redoToolStripMenuItem + // + this.redoToolStripMenuItem.Name = "redoToolStripMenuItem"; + this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); + this.redoToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.redoToolStripMenuItem.Text = "Redo"; + this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click); + // + // groupBox6 + // + this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox6.Controls.Add(this.gimmickDeleteButton); + this.groupBox6.Controls.Add(this.gimmickEditButton); + this.groupBox6.Controls.Add(this.gimmickBeatLabel); + this.groupBox6.Controls.Add(this.gimmickValueLabel); + this.groupBox6.Controls.Add(this.gimmickTypeLabel); + this.groupBox6.Controls.Add(this.gimmickMeasureLabel); + this.groupBox6.Controls.Add(this.label8); + this.groupBox6.Controls.Add(this.label7); + this.groupBox6.Controls.Add(this.label6); + this.groupBox6.Controls.Add(this.label5); + this.groupBox6.Controls.Add(this.gimmickNextButton); + this.groupBox6.Controls.Add(this.gimmickPrevButton); + this.groupBox6.Location = new System.Drawing.Point(874, 633); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(256, 142); + this.groupBox6.TabIndex = 33; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Gimmick View"; + // + // gimmickDeleteButton + // + this.gimmickDeleteButton.ForeColor = System.Drawing.Color.Red; + this.gimmickDeleteButton.Location = new System.Drawing.Point(134, 109); + this.gimmickDeleteButton.Name = "gimmickDeleteButton"; + this.gimmickDeleteButton.Size = new System.Drawing.Size(113, 23); + this.gimmickDeleteButton.TabIndex = 11; + this.gimmickDeleteButton.Text = "Delete Gimmick"; + this.gimmickDeleteButton.UseVisualStyleBackColor = true; + this.gimmickDeleteButton.Click += new System.EventHandler(this.gimmickDeleteButton_Click); + // + // gimmickEditButton + // + this.gimmickEditButton.Location = new System.Drawing.Point(6, 109); + this.gimmickEditButton.Name = "gimmickEditButton"; + this.gimmickEditButton.Size = new System.Drawing.Size(113, 23); + this.gimmickEditButton.TabIndex = 10; + this.gimmickEditButton.Text = "Edit Gimmick"; + this.gimmickEditButton.UseVisualStyleBackColor = true; + this.gimmickEditButton.Click += new System.EventHandler(this.gimmickEditButton_Click); + // + // gimmickBeatLabel + // + this.gimmickBeatLabel.AutoSize = true; + this.gimmickBeatLabel.Location = new System.Drawing.Point(173, 47); + this.gimmickBeatLabel.Name = "gimmickBeatLabel"; + this.gimmickBeatLabel.Size = new System.Drawing.Size(36, 15); + this.gimmickBeatLabel.TabIndex = 9; + this.gimmickBeatLabel.Text = "None"; + // + // gimmickValueLabel + // + this.gimmickValueLabel.AutoSize = true; + this.gimmickValueLabel.Location = new System.Drawing.Point(76, 89); + this.gimmickValueLabel.Name = "gimmickValueLabel"; + this.gimmickValueLabel.Size = new System.Drawing.Size(36, 15); + this.gimmickValueLabel.TabIndex = 8; + this.gimmickValueLabel.Text = "None"; + // + // gimmickTypeLabel + // + this.gimmickTypeLabel.AutoSize = true; + this.gimmickTypeLabel.Location = new System.Drawing.Point(76, 68); + this.gimmickTypeLabel.Name = "gimmickTypeLabel"; + this.gimmickTypeLabel.Size = new System.Drawing.Size(36, 15); + this.gimmickTypeLabel.TabIndex = 7; + this.gimmickTypeLabel.Text = "None"; + // + // gimmickMeasureLabel + // + this.gimmickMeasureLabel.AutoSize = true; + this.gimmickMeasureLabel.Location = new System.Drawing.Point(76, 47); + this.gimmickMeasureLabel.Name = "gimmickMeasureLabel"; + this.gimmickMeasureLabel.Size = new System.Drawing.Size(36, 15); + this.gimmickMeasureLabel.TabIndex = 6; + this.gimmickMeasureLabel.Text = "None"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label8.Location = new System.Drawing.Point(128, 45); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(39, 17); + this.label8.TabIndex = 5; + this.label8.Text = "Beat:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label7.Location = new System.Drawing.Point(24, 87); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(46, 17); + this.label7.TabIndex = 4; + this.label7.Text = "Value:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label6.Location = new System.Drawing.Point(29, 66); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(41, 17); + this.label6.TabIndex = 3; + this.label6.Text = "Type:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label5.Location = new System.Drawing.Point(6, 45); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(64, 17); + this.label5.TabIndex = 2; + this.label5.Text = "Measure:"; + // + // gimmickNextButton + // + this.gimmickNextButton.Location = new System.Drawing.Point(134, 19); + this.gimmickNextButton.Name = "gimmickNextButton"; + this.gimmickNextButton.Size = new System.Drawing.Size(116, 23); + this.gimmickNextButton.TabIndex = 1; + this.gimmickNextButton.Text = "Next Gimmick"; + this.gimmickNextButton.UseVisualStyleBackColor = true; + this.gimmickNextButton.Click += new System.EventHandler(this.gimmickNextButton_Click); + // + // gimmickPrevButton + // + this.gimmickPrevButton.Location = new System.Drawing.Point(6, 19); + this.gimmickPrevButton.Name = "gimmickPrevButton"; + this.gimmickPrevButton.Size = new System.Drawing.Size(116, 23); + this.gimmickPrevButton.TabIndex = 0; + this.gimmickPrevButton.Text = "Previous Gimmick"; + this.gimmickPrevButton.UseVisualStyleBackColor = true; + this.gimmickPrevButton.Click += new System.EventHandler(this.gimmickPrevButton_Click); + // + // noteViewGroupBox + // + this.noteViewGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.noteViewGroupBox.Controls.Add(this.noteMaskLabel); + this.noteViewGroupBox.Controls.Add(this.label9); + this.noteViewGroupBox.Controls.Add(this.noteSizeLabel); + this.noteViewGroupBox.Controls.Add(this.label17); + this.noteViewGroupBox.Controls.Add(this.noteNextMeasureButton); + this.noteViewGroupBox.Controls.Add(this.notePrevMeasureButton); + this.noteViewGroupBox.Controls.Add(this.noteDeleteSelectedButton); + this.noteViewGroupBox.Controls.Add(this.noteEditSelectedButton); + this.noteViewGroupBox.Controls.Add(this.noteBeatLabel); + this.noteViewGroupBox.Controls.Add(this.notePositionLabel); + this.noteViewGroupBox.Controls.Add(this.noteTypeLabel); + this.noteViewGroupBox.Controls.Add(this.noteMeasureLabel); + this.noteViewGroupBox.Controls.Add(this.label13); + this.noteViewGroupBox.Controls.Add(this.label14); + this.noteViewGroupBox.Controls.Add(this.label15); + this.noteViewGroupBox.Controls.Add(this.label16); + this.noteViewGroupBox.Controls.Add(this.noteNextButton); + this.noteViewGroupBox.Controls.Add(this.notePrevButton); + this.noteViewGroupBox.Location = new System.Drawing.Point(874, 420); + this.noteViewGroupBox.Name = "noteViewGroupBox"; + this.noteViewGroupBox.Size = new System.Drawing.Size(256, 207); + this.noteViewGroupBox.TabIndex = 34; + this.noteViewGroupBox.TabStop = false; + this.noteViewGroupBox.Text = "Note View"; + // + // noteMaskLabel + // + this.noteMaskLabel.AutoSize = true; + this.noteMaskLabel.Location = new System.Drawing.Point(173, 139); + this.noteMaskLabel.Name = "noteMaskLabel"; + this.noteMaskLabel.Size = new System.Drawing.Size(29, 15); + this.noteMaskLabel.TabIndex = 17; + this.noteMaskLabel.Text = "N/A"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label9.Location = new System.Drawing.Point(85, 137); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(82, 17); + this.label9.TabIndex = 16; + this.label9.Text = "Mask Value:"; + // + // noteSizeLabel + // + this.noteSizeLabel.AutoSize = true; + this.noteSizeLabel.Location = new System.Drawing.Point(173, 118); + this.noteSizeLabel.Name = "noteSizeLabel"; + this.noteSizeLabel.Size = new System.Drawing.Size(36, 15); + this.noteSizeLabel.TabIndex = 15; + this.noteSizeLabel.Text = "None"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label17.Location = new System.Drawing.Point(131, 116); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(36, 17); + this.label17.TabIndex = 14; + this.label17.Text = "Size:"; + // + // noteNextMeasureButton + // + this.noteNextMeasureButton.Location = new System.Drawing.Point(134, 48); + this.noteNextMeasureButton.Name = "noteNextMeasureButton"; + this.noteNextMeasureButton.Size = new System.Drawing.Size(116, 23); + this.noteNextMeasureButton.TabIndex = 13; + this.noteNextMeasureButton.Text = "Next Measure >>"; + this.noteNextMeasureButton.UseVisualStyleBackColor = true; + this.noteNextMeasureButton.Click += new System.EventHandler(this.noteNextMeasureButton_Click); + // + // notePrevMeasureButton + // + this.notePrevMeasureButton.Location = new System.Drawing.Point(6, 48); + this.notePrevMeasureButton.Name = "notePrevMeasureButton"; + this.notePrevMeasureButton.Size = new System.Drawing.Size(116, 23); + this.notePrevMeasureButton.TabIndex = 12; + this.notePrevMeasureButton.Text = "<< Prev Measure"; + this.notePrevMeasureButton.UseVisualStyleBackColor = true; + this.notePrevMeasureButton.Click += new System.EventHandler(this.notePrevMeasureButton_Click); + // + // noteDeleteSelectedButton + // + this.noteDeleteSelectedButton.ForeColor = System.Drawing.Color.Red; + this.noteDeleteSelectedButton.Location = new System.Drawing.Point(134, 157); + this.noteDeleteSelectedButton.Name = "noteDeleteSelectedButton"; + this.noteDeleteSelectedButton.Size = new System.Drawing.Size(113, 43); + this.noteDeleteSelectedButton.TabIndex = 11; + this.noteDeleteSelectedButton.Text = "Delete Selected Note"; + this.noteDeleteSelectedButton.UseVisualStyleBackColor = true; + this.noteDeleteSelectedButton.Click += new System.EventHandler(this.noteDeleteSelectedButton_Click); + // + // noteEditSelectedButton + // + this.noteEditSelectedButton.Location = new System.Drawing.Point(6, 157); + this.noteEditSelectedButton.Name = "noteEditSelectedButton"; + this.noteEditSelectedButton.Size = new System.Drawing.Size(113, 43); + this.noteEditSelectedButton.TabIndex = 10; + this.noteEditSelectedButton.Text = "Edit Selected Note"; + this.noteEditSelectedButton.UseVisualStyleBackColor = true; + this.noteEditSelectedButton.Click += new System.EventHandler(this.noteEditSelectedButton_Click); + // + // noteBeatLabel + // + this.noteBeatLabel.AutoSize = true; + this.noteBeatLabel.Location = new System.Drawing.Point(173, 76); + this.noteBeatLabel.Name = "noteBeatLabel"; + this.noteBeatLabel.Size = new System.Drawing.Size(36, 15); + this.noteBeatLabel.TabIndex = 9; + this.noteBeatLabel.Text = "None"; + // + // notePositionLabel + // + this.notePositionLabel.AutoSize = true; + this.notePositionLabel.Location = new System.Drawing.Point(76, 118); + this.notePositionLabel.Name = "notePositionLabel"; + this.notePositionLabel.Size = new System.Drawing.Size(36, 15); + this.notePositionLabel.TabIndex = 8; + this.notePositionLabel.Text = "None"; + // + // noteTypeLabel + // + this.noteTypeLabel.AutoSize = true; + this.noteTypeLabel.Location = new System.Drawing.Point(76, 97); + this.noteTypeLabel.Name = "noteTypeLabel"; + this.noteTypeLabel.Size = new System.Drawing.Size(36, 15); + this.noteTypeLabel.TabIndex = 7; + this.noteTypeLabel.Text = "None"; + // + // noteMeasureLabel + // + this.noteMeasureLabel.AutoSize = true; + this.noteMeasureLabel.Location = new System.Drawing.Point(76, 76); + this.noteMeasureLabel.Name = "noteMeasureLabel"; + this.noteMeasureLabel.Size = new System.Drawing.Size(36, 15); + this.noteMeasureLabel.TabIndex = 6; + this.noteMeasureLabel.Text = "None"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label13.Location = new System.Drawing.Point(128, 74); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(39, 17); + this.label13.TabIndex = 5; + this.label13.Text = "Beat:"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label14.Location = new System.Drawing.Point(7, 116); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(63, 17); + this.label14.TabIndex = 4; + this.label14.Text = "Position:"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label15.Location = new System.Drawing.Point(29, 95); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(41, 17); + this.label15.TabIndex = 3; + this.label15.Text = "Type:"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label16.Location = new System.Drawing.Point(6, 74); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(64, 17); + this.label16.TabIndex = 2; + this.label16.Text = "Measure:"; + // + // noteNextButton + // + this.noteNextButton.Location = new System.Drawing.Point(134, 19); + this.noteNextButton.Name = "noteNextButton"; + this.noteNextButton.Size = new System.Drawing.Size(116, 23); + this.noteNextButton.TabIndex = 1; + this.noteNextButton.Text = "Next Note >"; + this.noteNextButton.UseVisualStyleBackColor = true; + this.noteNextButton.Click += new System.EventHandler(this.noteNextButton_Click); + // + // notePrevButton + // + this.notePrevButton.Location = new System.Drawing.Point(6, 19); + this.notePrevButton.Name = "notePrevButton"; + this.notePrevButton.Size = new System.Drawing.Size(116, 23); + this.notePrevButton.TabIndex = 0; + this.notePrevButton.Text = "< Previous Note"; + this.notePrevButton.UseVisualStyleBackColor = true; + this.notePrevButton.Click += new System.EventHandler(this.notePrevButton_Click); + // + // autoSaveTimer + // + this.autoSaveTimer.Tick += new System.EventHandler(this.autoSaveTimer_Tick); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ControlDark; + this.ClientSize = new System.Drawing.Size(1142, 787); + this.Controls.Add(this.noteViewGroupBox); + this.Controls.Add(this.groupBox6); + this.Controls.Add(this.insertButton); + this.Controls.Add(this.groupBox9); + this.Controls.Add(this.playbackGroupBox); + this.Controls.Add(this.groupBox5); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.gimmickTypeGroupBox); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.circlePanel); + this.Controls.Add(this.menuStrip); + this.MainMenuStrip = this.menuStrip; + this.MinimumSize = new System.Drawing.Size(1158, 826); + this.Name = "MainForm"; + this.Text = "BAKKA Sharp - [New File]"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); + this.Resize += new System.EventHandler(this.MainForm_Resize); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.beat2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.beat1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.measureNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.sizeNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.positionTrackBar)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.positionNumeric)).EndInit(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.gimmickTypeGroupBox.ResumeLayout(false); + this.gimmickTypeGroupBox.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.groupBox5.ResumeLayout(false); + this.groupBox5.PerformLayout(); + this.playbackGroupBox.ResumeLayout(false); + this.playbackGroupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.songTrackBar)).EndInit(); + this.groupBox9.ResumeLayout(false); + this.groupBox9.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.visualHispeedNumeric)).EndInit(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); + this.noteViewGroupBox.ResumeLayout(false); + this.noteViewGroupBox.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private OpenFileDialog openFileDialog; + private SaveFileDialog saveFileDialog; + private Panel circlePanel; + private GroupBox groupBox1; + private Label label4; + private NumericUpDown beat2Numeric; + private NumericUpDown beat1Numeric; + private NumericUpDown measureNumeric; + private Label label3; + private TrackBar sizeTrackBar; + private NumericUpDown sizeNumeric; + private Label label2; + private TrackBar positionTrackBar; + private NumericUpDown positionNumeric; + private Label label1; + private GroupBox groupBox2; + private RadioButton flairRadio; + private RadioButton bonusRadio; + private RadioButton noBonusRadio; + private CheckBox endHoldCheck; + private Button endChartButton; + private Button holdButton; + private Button chainButton; + private Button blueButton; + private Button redButton; + private Button greenButton; + private Button orangeButton; + private Button tapButton; + private GroupBox gimmickTypeGroupBox; + private RadioButton removeMaskRadio; + private Button reverseButton; + private RadioButton addMaskRadio; + private Button stopButton; + private Button hiSpeedButton; + private Button timeSigButton; + private Button bpmChangeButton; + private Button maskButton; + private GroupBox groupBox4; + private RadioButton centerMaskRadio; + private RadioButton clockwiseMaskRadio; + private RadioButton cClockwiseMaskRadio; + private GroupBox groupBox5; + private Label currentSelectionLabel; + private GroupBox playbackGroupBox; + private Label songFileLabel; + private Label label20; + private TrackBar songTrackBar; + private Button selectSongButton; + private Button playButton; + private OpenFileDialog openSongDialog; + private System.Windows.Forms.Timer updateTimer; + private GroupBox groupBox9; + private Label label21; + private NumericUpDown visualHispeedNumeric; + private Button insertButton; + private ToolStripMenuItem fileToolStripMenuItem; + private ToolStripMenuItem newToolStripMenuItem; + private ToolStripMenuItem openToolStripMenuItem; + private ToolStripMenuItem saveToolStripMenuItem; + private ToolStripMenuItem saveAsToolStripMenuItem; + private ToolStripMenuItem exitToolStripMenuItem; + private ToolStripMenuItem viewToolStripMenuItem; + private ToolStripMenuItem showCursorToolStripMenuItem; + private ToolStripMenuItem showCursorDuringPlaybackToolStripMenuItem; + private ToolStripMenuItem highlightViewedNoteToolStripMenuItem; + private ToolStripMenuItem chartToolStripMenuItem; + private ToolStripMenuItem initialChartSettingsToolStripMenuItem; + private ToolStripMenuItem aboutToolStripMenuItem; + private MenuStrip menuStrip; + private GroupBox groupBox6; + private Button gimmickDeleteButton; + private Button gimmickEditButton; + private Label gimmickBeatLabel; + private Label gimmickValueLabel; + private Label gimmickTypeLabel; + private Label gimmickMeasureLabel; + private Label label8; + private Label label7; + private Label label6; + private Label label5; + private Button gimmickNextButton; + private Button gimmickPrevButton; + private GroupBox noteViewGroupBox; + private Label noteMaskLabel; + private Label label9; + private Label noteSizeLabel; + private Label label17; + private Button noteNextMeasureButton; + private Button notePrevMeasureButton; + private Button noteDeleteSelectedButton; + private Button noteEditSelectedButton; + private Label noteBeatLabel; + private Label notePositionLabel; + private Label noteTypeLabel; + private Label noteMeasureLabel; + private Label label13; + private Label label14; + private Label label15; + private Label label16; + private Button noteNextButton; + private Button notePrevButton; + private ToolStripMenuItem editToolStripMenuItem; + private ToolStripMenuItem undoToolStripMenuItem; + private ToolStripMenuItem redoToolStripMenuItem; + private System.Windows.Forms.Timer autoSaveTimer; + } +} \ No newline at end of file diff --git a/BAKKA-Editor/Form1.cs b/BAKKA-Editor/MainForm.cs similarity index 82% rename from BAKKA-Editor/Form1.cs rename to BAKKA-Editor/MainForm.cs index ee9c799..4fdf15f 100644 --- a/BAKKA-Editor/Form1.cs +++ b/BAKKA-Editor/MainForm.cs @@ -10,9 +10,9 @@ using System.Windows.Forms; namespace BAKKA_Editor { - public partial class Form1 : Form + public partial class MainForm : Form { - public Form1() + public MainForm() { InitializeComponent(); } diff --git a/BAKKA-Editor/MainForm.resx b/BAKKA-Editor/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/BAKKA-Editor/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BAKKA-Editor/Note.cs b/BAKKA-Editor/Note.cs new file mode 100644 index 0000000..a789dde --- /dev/null +++ b/BAKKA-Editor/Note.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal class BeatInfo + { + public int Measure; + public int Beat; + + public BeatInfo(int measure, int beat) + { + Measure = measure; + Beat = beat; + } + + public BeatInfo(float measure) + { + Measure = (int)Math.Floor(measure); + Beat = (int)((measure - (float)Measure) * 1920.0f); + } + + public BeatInfo(BeatInfo info) + { + Measure = info.Measure; + Beat = info.Beat; + } + + public float MeasureDecimal { get { return (float)Measure + (float)Beat / 1920.0f; } } + } + + internal class TimeSignature + { + public int Upper; + public int Lower; + + public double Ratio { get { return (double)Upper / (double)Lower; } } + + public TimeSignature() + { + Upper = 4; + Lower = 4; + } + + public TimeSignature(TimeSignature sig) + { + Upper = sig.Upper; + Lower = sig.Lower; + } + } + + internal class NoteBase + { + public BeatInfo BeatInfo { get; set; } = new BeatInfo(-1, 0); + public GimmickType GimmickType { get; set; } = GimmickType.NoGimmick; + + public float Measure { get { return BeatInfo.MeasureDecimal; } } + } + + internal class Note : NoteBase + { + public NoteType NoteType { get; set; } = NoteType.TouchNoBonus; + public int Position { get; set; } + public int Size { get; set; } + [System.ComponentModel.Browsable(false)] + public bool HoldChange { get; set; } + [System.ComponentModel.Browsable(false)] + public MaskType MaskFill { get; set; } + [System.ComponentModel.Browsable(false)] + public Note NextNote { get; set; } + [System.ComponentModel.Browsable(false)] + public Note PrevNote { get; set; } + + [System.ComponentModel.Browsable(false)] + public bool IsHold + { + get + { + switch (NoteType) + { + case NoteType.HoldStartNoBonus: + case NoteType.HoldJoint: + case NoteType.HoldEnd: + case NoteType.HoldStartBonusFlair: + return true; + default: + return false; + } + } + } + [System.ComponentModel.Browsable(false)] + public bool IsMask + { + get + { + switch (NoteType) + { + case NoteType.MaskAdd: + case NoteType.MaskRemove: + return true; + default: + return false; + } + } + } + [System.ComponentModel.Browsable(false)] + public bool IsBonus + { + get + { + switch (NoteType) + { + case NoteType.TouchBonus: + case NoteType.SlideOrangeBonus: + case NoteType.SlideGreenBonus: + return true; + default: + return false; ; + } + } + } + [System.ComponentModel.Browsable(false)] + public bool IsFlair + { + get + { + switch (NoteType) + { + case NoteType.TouchBonusFlair: + case NoteType.SnapRedBonusFlair: + case NoteType.SnapBlueBonusFlair: + case NoteType.SlideOrangeBonusFlair: + case NoteType.SlideGreenBonusFlair: + case NoteType.HoldStartBonusFlair: + case NoteType.ChainBonusFlair: + return true; + default: + return false; + } + } + } + [System.ComponentModel.Browsable(false)] + public Color Color + { + get + { + return Utils.NoteTypeToColor(NoteType); + } + } + + public Note() { } + public Note(BeatInfo info) + { + BeatInfo = info; + GimmickType = GimmickType.NoGimmick; + } + + public Note(Note baseNote) : this(baseNote.BeatInfo) + { + Position = baseNote.Position; + Size = baseNote.Size; + NoteType = baseNote.NoteType; + } + } + + internal class Gimmick : NoteBase + { + public double BPM { get; set; } + public TimeSignature TimeSig { get; set; } = new(); + public double HiSpeed { get; set; } + public double StartTime { get; set; } + + public bool IsReverse + { + get + { + switch (GimmickType) + { + case GimmickType.ReverseStart: + case GimmickType.ReverseMiddle: + case GimmickType.ReverseEnd: + return true; + default: + return false; + } + } + } + + public bool IsStop + { + get + { + switch (GimmickType) + { + case GimmickType.StopStart: + case GimmickType.StopEnd: + return true; + default: + return false; + } + } + } + + public Gimmick() { } + public Gimmick(BeatInfo info, GimmickType type) + { + BeatInfo = info; + GimmickType = type; + } + public Gimmick(Gimmick baseGimmick) : this(baseGimmick.BeatInfo, baseGimmick.GimmickType) + { + switch (GimmickType) + { + case GimmickType.BpmChange: + HiSpeed = baseGimmick.HiSpeed; + break; + case GimmickType.TimeSignatureChange: + TimeSig = new TimeSignature(baseGimmick.TimeSig); + break; + case GimmickType.HiSpeedChange: + HiSpeed = baseGimmick.HiSpeed; + break; + } + } + } +} diff --git a/BAKKA-Editor/Operations/CompositeOperation.cs b/BAKKA-Editor/Operations/CompositeOperation.cs new file mode 100644 index 0000000..8f4a89a --- /dev/null +++ b/BAKKA-Editor/Operations/CompositeOperation.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor.Operations +{ + internal class CompositeOperation : IOperation + { + public string Description { get; } + + protected IEnumerable Operations { get; } + + public CompositeOperation(string description, IEnumerable operations) + { + Description = description; + Operations = operations; + } + + public void Redo() + { + foreach (var op in Operations) + { + op.Redo(); + } + } + + public void Undo() + { + foreach (var op in Operations) + { + op.Undo(); + } + } + } +} diff --git a/BAKKA-Editor/Operations/GimmickOperation.cs b/BAKKA-Editor/Operations/GimmickOperation.cs new file mode 100644 index 0000000..45ae9cf --- /dev/null +++ b/BAKKA-Editor/Operations/GimmickOperation.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor.Operations +{ + internal abstract class GimmickOperation : IOperation + { + protected Gimmick Gimmick { get; } + protected Chart Chart { get; } + public abstract string Description { get; } + + public GimmickOperation(Chart chart, Gimmick item) + { + Chart = chart; + Gimmick = item; + } + + public abstract void Redo(); + + public abstract void Undo(); + } + + internal class InsertGimmick : GimmickOperation + { + public override string Description => "Insert gimmick"; + + public InsertGimmick(Chart chart, Gimmick item) : base(chart, item) + { } + + public override void Redo() + { + Chart.Gimmicks.Add(Gimmick); + } + + public override void Undo() + { + Chart.Gimmicks.Remove(Gimmick); + } + } + + internal class RemoveGimmick : GimmickOperation + { + public override string Description => "Remove gimmick"; + + public RemoveGimmick(Chart chart, Gimmick item) : base(chart, item) + { } + + public override void Redo() + { + Chart.Gimmicks.Remove(Gimmick); + } + + public override void Undo() + { + Chart.Gimmicks.Add(Gimmick); + } + } + + internal class EditGimmick : IOperation + { + public string Description => "Edit gimmick"; + + protected Gimmick Base { get; } + protected Gimmick OldGimmick { get; } + protected Gimmick NewGimmick { get; } + + public EditGimmick(Gimmick baseGimmick, Gimmick newGimmick) + { + Base = baseGimmick; + OldGimmick = new Gimmick(baseGimmick); + NewGimmick = new Gimmick(newGimmick); + } + + public void Redo() + { + Base.BeatInfo = new BeatInfo(NewGimmick.BeatInfo); + switch (Base.GimmickType) + { + case GimmickType.BpmChange: + Base.BPM = NewGimmick.BPM; + break; + case GimmickType.TimeSignatureChange: + Base.TimeSig = new TimeSignature(NewGimmick.TimeSig); + break; + case GimmickType.HiSpeedChange: + Base.HiSpeed = NewGimmick.HiSpeed; + break; + } + } + + public void Undo() + { + Base.BeatInfo = new BeatInfo(OldGimmick.BeatInfo); + switch (Base.GimmickType) + { + case GimmickType.BpmChange: + Base.BPM = OldGimmick.BPM; + break; + case GimmickType.TimeSignatureChange: + Base.TimeSig = new TimeSignature(OldGimmick.TimeSig); + break; + case GimmickType.HiSpeedChange: + Base.HiSpeed = OldGimmick.HiSpeed; + break; + } + } + } +} diff --git a/BAKKA-Editor/Operations/IOperation.cs b/BAKKA-Editor/Operations/IOperation.cs new file mode 100644 index 0000000..6090d5e --- /dev/null +++ b/BAKKA-Editor/Operations/IOperation.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor.Operations +{ + internal interface IOperation + { + string Description { get; } + + void Undo(); + + void Redo(); + } +} diff --git a/BAKKA-Editor/Operations/NoteOperation.cs b/BAKKA-Editor/Operations/NoteOperation.cs new file mode 100644 index 0000000..521364a --- /dev/null +++ b/BAKKA-Editor/Operations/NoteOperation.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor.Operations +{ + internal abstract class NoteOperation : IOperation + { + protected Note Note { get; } + protected Chart Chart { get; } + public abstract string Description { get; } + + public NoteOperation(Chart chart, Note item) + { + Chart = chart; + Note = item; + } + + public abstract void Redo(); + + public abstract void Undo(); + } + + internal class InsertNote : NoteOperation + { + public override string Description => "Insert note"; + + public InsertNote(Chart chart, Note item) : base(chart, item) + { } + + public override void Redo() + { + Chart.Notes.Add(Note); + } + + public override void Undo() + { + Chart.Notes.Remove(Note); + } + } + + internal class RemoveNote : NoteOperation + { + public override string Description => "Remove note"; + + public RemoveNote(Chart chart, Note item) : base(chart, item) + { } + + public override void Redo() + { + Chart.Notes.Remove(Note); + } + + public override void Undo() + { + Chart.Notes.Add(Note); + } + } + + internal class EditNote : IOperation + { + public string Description => "Edit note"; + + protected Note Base { get; } + protected Note OldNote { get; } + protected Note NewNote { get; } + + public EditNote(Note baseNote, Note newNote) + { + Base = baseNote; + OldNote = new Note(baseNote); + NewNote = new Note(newNote); + } + + public void Redo() + { + Base.BeatInfo = new BeatInfo(NewNote.BeatInfo); + Base.Position = NewNote.Position; + Base.Size = NewNote.Size; + } + + public void Undo() + { + Base.BeatInfo = new BeatInfo(OldNote.BeatInfo); + Base.Position = OldNote.Position; + Base.Size = OldNote.Size; + } + } +} diff --git a/BAKKA-Editor/Operations/OperationManager.cs b/BAKKA-Editor/Operations/OperationManager.cs new file mode 100644 index 0000000..8be8e14 --- /dev/null +++ b/BAKKA-Editor/Operations/OperationManager.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor.Operations +{ + internal class OperationManager + { + public event EventHandler? OperationHistoryChanged; + public event EventHandler? ChangesCommitted; + + protected Stack UndoStack { get; } = new Stack(); + protected Stack RedoStack { get; } = new Stack(); + + private IOperation? LastCommittedOperation { get; set; } = null; + + public IEnumerable UndoOperationsDescription + { + get { return UndoStack.Select(p => p.Description); } + } + + public IEnumerable RedoOperationsDescription + { + get { return RedoStack.Select(p => p.Description); } + } + + public bool CanUndo { get { return UndoStack.Count > 0; } } + + public bool CanRedo { get { return RedoStack.Count > 0; } } + + public void Push(IOperation op) + { + UndoStack.Push(op); + RedoStack.Clear(); + OperationHistoryChanged?.Invoke(this, EventArgs.Empty); + } + + public void InvokeAndPush(IOperation op) + { + op.Redo(); + Push(op); + } + + public void Undo() + { + IOperation op = UndoStack.Pop(); + op.Undo(); + RedoStack.Push(op); + OperationHistoryChanged?.Invoke(this, EventArgs.Empty); + } + + public void Redo() + { + IOperation op = RedoStack.Pop(); + op.Redo(); + UndoStack.Push(op); + OperationHistoryChanged?.Invoke(this, EventArgs.Empty); + } + + public void Clear() + { + UndoStack.Clear(); + RedoStack.Clear(); + LastCommittedOperation = null; + OperationHistoryChanged?.Invoke(this, EventArgs.Empty); + } + } +} diff --git a/BAKKA-Editor/Program.cs b/BAKKA-Editor/Program.cs index c6a3636..d6e9205 100644 --- a/BAKKA-Editor/Program.cs +++ b/BAKKA-Editor/Program.cs @@ -1,22 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - namespace BAKKA_Editor { internal static class Program { /// - /// The main entry point for the application. + /// The main entry point for the application. /// [STAThread] static void Main() { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new MainForm()); } } -} +} \ No newline at end of file diff --git a/BAKKA-Editor/Properties/AssemblyInfo.cs b/BAKKA-Editor/Properties/AssemblyInfo.cs deleted file mode 100644 index 9adeecb..0000000 --- a/BAKKA-Editor/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BAKKA-Editor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("BAKKA-Editor")] -[assembly: AssemblyCopyright("Copyright © 2022")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("76336598-b2be-4f67-b3d6-821f6a0e302f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BAKKA-Editor/Properties/Resources.Designer.cs b/BAKKA-Editor/Properties/Resources.Designer.cs index 0761e9b..e3fba47 100644 --- a/BAKKA-Editor/Properties/Resources.Designer.cs +++ b/BAKKA-Editor/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace BAKKA_Editor.Properties -{ - - +namespace BAKKA_Editor.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,51 +19,43 @@ namespace BAKKA_Editor.Properties // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BAKKA_Editor.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/BAKKA-Editor/Properties/Resources.resx b/BAKKA-Editor/Properties/Resources.resx index af7dbeb..1af7de1 100644 --- a/BAKKA-Editor/Properties/Resources.resx +++ b/BAKKA-Editor/Properties/Resources.resx @@ -46,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -60,6 +60,7 @@ : and then encoded with base64 encoding. --> + @@ -68,9 +69,10 @@ - + + @@ -85,9 +87,10 @@ - + + @@ -109,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/BAKKA-Editor/Properties/Settings.Designer.cs b/BAKKA-Editor/Properties/Settings.Designer.cs deleted file mode 100644 index 7667584..0000000 --- a/BAKKA-Editor/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace BAKKA_Editor.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/BAKKA-Editor/Properties/Settings.settings b/BAKKA-Editor/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/BAKKA-Editor/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/BAKKA-Editor/Properties/launchSettings.json b/BAKKA-Editor/Properties/launchSettings.json new file mode 100644 index 0000000..a4a6877 --- /dev/null +++ b/BAKKA-Editor/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "BAKKA-Editor": { + "commandName": "Project" + } + } +} \ No newline at end of file diff --git a/BAKKA-Editor/UserSettings.cs b/BAKKA-Editor/UserSettings.cs new file mode 100644 index 0000000..ab8c009 --- /dev/null +++ b/BAKKA-Editor/UserSettings.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal class UserSettings + { + public ViewSettings ViewSettings { get; set; } = new(); + public SaveSettings SaveSettings { get; set; } = new(); + } + + internal class ViewSettings + { + public bool ShowCursor { get; set; } = true; + public bool ShowCursorDuringPlayback { get; set; } = false; + public bool HighlightViewedNote { get; set; } = true; + } + + internal class SaveSettings + { + /// + /// How frequently autosave occurs (in minutes) + /// + public int AutoSaveInterval { get; set; } = 1; + } +} diff --git a/BAKKA-Editor/Utils.cs b/BAKKA-Editor/Utils.cs new file mode 100644 index 0000000..d09c022 --- /dev/null +++ b/BAKKA-Editor/Utils.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BAKKA_Editor +{ + internal static class Utils + { + internal static string? GetTag(string input, string tag) + { + if(input.Contains(tag)) + { + return input.Substring(input.IndexOf(tag) + tag.Length); + } + + return null; + } + + internal static double DegToRad(double deg) + { + return deg * Math.PI / 180.0f; + } + + internal static Color NoteTypeToColor(NoteType type) + { + switch (type) + { + case NoteType.TouchNoBonus: + case NoteType.TouchBonus: + case NoteType.TouchBonusFlair: + return Color.Fuchsia; + case NoteType.SnapRedNoBonus: + case NoteType.SnapRedBonusFlair: + return Color.Red; + case NoteType.SnapBlueNoBonus: + case NoteType.SnapBlueBonusFlair: + return Color.Aqua; + case NoteType.SlideOrangeNoBonus: + case NoteType.SlideOrangeBonus: + case NoteType.SlideOrangeBonusFlair: + return Color.FromArgb(255, 128, 0); + case NoteType.SlideGreenNoBonus: + case NoteType.SlideGreenBonus: + case NoteType.SlideGreenBonusFlair: + return Color.LimeGreen; + case NoteType.HoldStartNoBonus: + case NoteType.HoldJoint: + case NoteType.HoldEnd: + case NoteType.HoldStartBonusFlair: + return Color.Yellow; + case NoteType.Chain: + case NoteType.ChainBonusFlair: + return Color.FromArgb(204, 190, 45); + default: + return Color.Transparent; + } + } + + internal static void InvokeIfRequired(this Control control, MethodInvoker action) + { + if (control.InvokeRequired) + { + control.Invoke(action); + } + else + { + action(); + } + } + + internal static Rectangle ToInt(this RectangleF rect) + { + return new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height); + } + + internal static int FindGCD(int a, int b) + { + if (b == 0) + return a; + return FindGCD(b, a & b); + } + + internal static string ToLabel(this NoteType type) + { + switch (type) + { + case NoteType.TouchNoBonus: + return "Touch"; + case NoteType.TouchBonus: + return "Touch [Bonus]"; + case NoteType.SnapRedNoBonus: + return "Snap (R)"; + case NoteType.SnapBlueNoBonus: + return "Snap (B)"; + case NoteType.SlideOrangeNoBonus: + return "Slide (O)"; + case NoteType.SlideOrangeBonus: + return "Slide (O) [Bonus]"; + case NoteType.SlideGreenNoBonus: + return "Slide (G)"; + case NoteType.SlideGreenBonus: + return "Slide (G) [Bonus]"; + case NoteType.HoldStartNoBonus: + return "Hold Start"; + case NoteType.HoldJoint: + return "Hold Joint"; + case NoteType.HoldEnd: + return "Hold End"; + case NoteType.MaskAdd: + return "Mask Add"; + case NoteType.MaskRemove: + return "Mask Remove"; + case NoteType.EndOfChart: + return "End of Chart"; + case NoteType.Chain: + return "Chain"; + case NoteType.TouchBonusFlair: + return "Touch [R Note]"; + case NoteType.SnapRedBonusFlair: + return "Snap (R) [R Note]"; + case NoteType.SnapBlueBonusFlair: + return "Snap (B) [R Note]"; + case NoteType.SlideOrangeBonusFlair: + return "Slide (O) [R Note]"; + case NoteType.SlideGreenBonusFlair: + return "Slide (G) [R Note]"; + case NoteType.HoldStartBonusFlair: + return "Hold Start [R Note]"; + case NoteType.ChainBonusFlair: + return "Chain [R Note]"; + default: + return "Undefined Note Type"; + } + } + + internal static string ToLabel(this GimmickType type) + { + switch (type) + { + case GimmickType.BpmChange: + return "BPM Change"; + case GimmickType.TimeSignatureChange: + return "Time Signature Change"; + case GimmickType.HiSpeedChange: + return "Hi-Speed Change"; + case GimmickType.ReverseStart: + return "Reverse Start"; + case GimmickType.ReverseMiddle: + return "Reverse Middle"; + case GimmickType.ReverseEnd: + return "Reverse Stop"; + case GimmickType.StopStart: + return "Stop Start"; + case GimmickType.StopEnd: + return "Stop End"; + default: + return "Undefined Gimmick"; + } + } + + internal static bool HasDecimal(double num) + { + return Math.Ceiling(num) == Math.Floor(num); + } + + internal static Tuple GetQuantization(int val, int min) + { + while (!HasDecimal((double)(val * min) / 1920.0)) + { + min *= 2; + } + return new Tuple((int)(val * min / 1920.0), min); + } + + internal static float GetDist(Point a, Point b) + { + return (float)Math.Sqrt(Math.Pow(a.X - b.X, 2) + Math.Pow(a.Y - b.Y, 2)); + } + } +} diff --git a/lib/ikpFlac.dll b/lib/ikpFlac.dll new file mode 100644 index 0000000..2271a3f Binary files /dev/null and b/lib/ikpFlac.dll differ diff --git a/lib/ikpMP3.dll b/lib/ikpMP3.dll new file mode 100644 index 0000000..b913400 Binary files /dev/null and b/lib/ikpMP3.dll differ diff --git a/lib/irrKlang.NET4.dll b/lib/irrKlang.NET4.dll new file mode 100644 index 0000000..ef53ee5 Binary files /dev/null and b/lib/irrKlang.NET4.dll differ