mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-22 15:02:54 +08:00
Added support for ADPCM codec, new features and bugfix in audio player
This commit is contained in:
parent
7dbaa8dd82
commit
54681da20a
130
Forms/AwcForm.Designer.cs
generated
130
Forms/AwcForm.Designer.cs
generated
@ -32,6 +32,9 @@
|
|||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AwcForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AwcForm));
|
||||||
this.MainTabControl = new System.Windows.Forms.TabControl();
|
this.MainTabControl = new System.Windows.Forms.TabControl();
|
||||||
this.PlayerTabPage = new System.Windows.Forms.TabPage();
|
this.PlayerTabPage = new System.Windows.Forms.TabPage();
|
||||||
|
this.LabelInfo = new System.Windows.Forms.Label();
|
||||||
|
this.LabelTime = new System.Windows.Forms.Label();
|
||||||
|
this.StopButton = new System.Windows.Forms.Button();
|
||||||
this.VolumeLabel = new System.Windows.Forms.Label();
|
this.VolumeLabel = new System.Windows.Forms.Label();
|
||||||
this.chbAutoJump = new System.Windows.Forms.CheckBox();
|
this.chbAutoJump = new System.Windows.Forms.CheckBox();
|
||||||
this.PrevButton = new System.Windows.Forms.Button();
|
this.PrevButton = new System.Windows.Forms.Button();
|
||||||
@ -41,13 +44,18 @@
|
|||||||
this.PlaylistNameHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.PlaylistNameHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.PlaylistTypeHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.PlaylistTypeHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.PlaylistLengthHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.PlaylistLengthHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
|
this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.ExportAsWav = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.VolumeTrackBar = new System.Windows.Forms.TrackBar();
|
this.VolumeTrackBar = new System.Windows.Forms.TrackBar();
|
||||||
this.PositionTrackBar = new System.Windows.Forms.TrackBar();
|
this.PositionTrackBar = new System.Windows.Forms.TrackBar();
|
||||||
this.DetailsTabPage = new System.Windows.Forms.TabPage();
|
this.DetailsTabPage = new System.Windows.Forms.TabPage();
|
||||||
this.DetailsPropertyGrid = new CodeWalker.WinForms.PropertyGridFix();
|
this.DetailsPropertyGrid = new CodeWalker.WinForms.PropertyGridFix();
|
||||||
this.Timer = new System.Windows.Forms.Timer(this.components);
|
this.Timer = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
|
||||||
|
this.PlaylistSizeHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.MainTabControl.SuspendLayout();
|
this.MainTabControl.SuspendLayout();
|
||||||
this.PlayerTabPage.SuspendLayout();
|
this.PlayerTabPage.SuspendLayout();
|
||||||
|
this.contextMenuStrip.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.VolumeTrackBar)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.VolumeTrackBar)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.PositionTrackBar)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.PositionTrackBar)).BeginInit();
|
||||||
this.DetailsTabPage.SuspendLayout();
|
this.DetailsTabPage.SuspendLayout();
|
||||||
@ -61,11 +69,14 @@
|
|||||||
this.MainTabControl.Location = new System.Drawing.Point(0, 0);
|
this.MainTabControl.Location = new System.Drawing.Point(0, 0);
|
||||||
this.MainTabControl.Name = "MainTabControl";
|
this.MainTabControl.Name = "MainTabControl";
|
||||||
this.MainTabControl.SelectedIndex = 0;
|
this.MainTabControl.SelectedIndex = 0;
|
||||||
this.MainTabControl.Size = new System.Drawing.Size(576, 358);
|
this.MainTabControl.Size = new System.Drawing.Size(576, 361);
|
||||||
this.MainTabControl.TabIndex = 0;
|
this.MainTabControl.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// PlayerTabPage
|
// PlayerTabPage
|
||||||
//
|
//
|
||||||
|
this.PlayerTabPage.Controls.Add(this.LabelInfo);
|
||||||
|
this.PlayerTabPage.Controls.Add(this.LabelTime);
|
||||||
|
this.PlayerTabPage.Controls.Add(this.StopButton);
|
||||||
this.PlayerTabPage.Controls.Add(this.VolumeLabel);
|
this.PlayerTabPage.Controls.Add(this.VolumeLabel);
|
||||||
this.PlayerTabPage.Controls.Add(this.chbAutoJump);
|
this.PlayerTabPage.Controls.Add(this.chbAutoJump);
|
||||||
this.PlayerTabPage.Controls.Add(this.PrevButton);
|
this.PlayerTabPage.Controls.Add(this.PrevButton);
|
||||||
@ -77,25 +88,54 @@
|
|||||||
this.PlayerTabPage.Location = new System.Drawing.Point(4, 22);
|
this.PlayerTabPage.Location = new System.Drawing.Point(4, 22);
|
||||||
this.PlayerTabPage.Name = "PlayerTabPage";
|
this.PlayerTabPage.Name = "PlayerTabPage";
|
||||||
this.PlayerTabPage.Padding = new System.Windows.Forms.Padding(3);
|
this.PlayerTabPage.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.PlayerTabPage.Size = new System.Drawing.Size(568, 332);
|
this.PlayerTabPage.Size = new System.Drawing.Size(568, 335);
|
||||||
this.PlayerTabPage.TabIndex = 0;
|
this.PlayerTabPage.TabIndex = 0;
|
||||||
this.PlayerTabPage.Text = "Player";
|
this.PlayerTabPage.Text = "Player";
|
||||||
this.PlayerTabPage.UseVisualStyleBackColor = true;
|
this.PlayerTabPage.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// LabelInfo
|
||||||
|
//
|
||||||
|
this.LabelInfo.AutoSize = true;
|
||||||
|
this.LabelInfo.Location = new System.Drawing.Point(8, 247);
|
||||||
|
this.LabelInfo.Name = "LabelInfo";
|
||||||
|
this.LabelInfo.Size = new System.Drawing.Size(0, 13);
|
||||||
|
this.LabelInfo.TabIndex = 12;
|
||||||
|
//
|
||||||
|
// LabelTime
|
||||||
|
//
|
||||||
|
this.LabelTime.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.LabelTime.Location = new System.Drawing.Point(285, 308);
|
||||||
|
this.LabelTime.Name = "LabelTime";
|
||||||
|
this.LabelTime.Size = new System.Drawing.Size(114, 17);
|
||||||
|
this.LabelTime.TabIndex = 11;
|
||||||
|
this.LabelTime.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||||
|
//
|
||||||
|
// StopButton
|
||||||
|
//
|
||||||
|
this.StopButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.StopButton.Enabled = false;
|
||||||
|
this.StopButton.Location = new System.Drawing.Point(211, 304);
|
||||||
|
this.StopButton.Name = "StopButton";
|
||||||
|
this.StopButton.Size = new System.Drawing.Size(31, 23);
|
||||||
|
this.StopButton.TabIndex = 10;
|
||||||
|
this.StopButton.Text = "◼";
|
||||||
|
this.StopButton.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// VolumeLabel
|
// VolumeLabel
|
||||||
//
|
//
|
||||||
|
this.VolumeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.VolumeLabel.AutoSize = true;
|
this.VolumeLabel.AutoSize = true;
|
||||||
this.VolumeLabel.Location = new System.Drawing.Point(414, 305);
|
this.VolumeLabel.Location = new System.Drawing.Point(405, 308);
|
||||||
this.VolumeLabel.Name = "VolumeLabel";
|
this.VolumeLabel.Name = "VolumeLabel";
|
||||||
this.VolumeLabel.Size = new System.Drawing.Size(42, 13);
|
this.VolumeLabel.Size = new System.Drawing.Size(60, 13);
|
||||||
this.VolumeLabel.TabIndex = 9;
|
this.VolumeLabel.TabIndex = 9;
|
||||||
this.VolumeLabel.Text = "Volume";
|
this.VolumeLabel.Text = "🕩 Volume";
|
||||||
//
|
//
|
||||||
// chbAutoJump
|
// chbAutoJump
|
||||||
//
|
//
|
||||||
|
this.chbAutoJump.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.chbAutoJump.AutoSize = true;
|
this.chbAutoJump.AutoSize = true;
|
||||||
this.chbAutoJump.Enabled = false;
|
this.chbAutoJump.Location = new System.Drawing.Point(17, 308);
|
||||||
this.chbAutoJump.Location = new System.Drawing.Point(17, 305);
|
|
||||||
this.chbAutoJump.Name = "chbAutoJump";
|
this.chbAutoJump.Name = "chbAutoJump";
|
||||||
this.chbAutoJump.Size = new System.Drawing.Size(108, 17);
|
this.chbAutoJump.Size = new System.Drawing.Size(108, 17);
|
||||||
this.chbAutoJump.TabIndex = 8;
|
this.chbAutoJump.TabIndex = 8;
|
||||||
@ -104,34 +144,34 @@
|
|||||||
//
|
//
|
||||||
// PrevButton
|
// PrevButton
|
||||||
//
|
//
|
||||||
this.PrevButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
this.PrevButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.PrevButton.Location = new System.Drawing.Point(137, 301);
|
this.PrevButton.Location = new System.Drawing.Point(137, 304);
|
||||||
this.PrevButton.Name = "PrevButton";
|
this.PrevButton.Name = "PrevButton";
|
||||||
this.PrevButton.Size = new System.Drawing.Size(31, 23);
|
this.PrevButton.Size = new System.Drawing.Size(31, 23);
|
||||||
this.PrevButton.TabIndex = 2;
|
this.PrevButton.TabIndex = 2;
|
||||||
this.PrevButton.Text = "<<";
|
this.PrevButton.Text = "⏮";
|
||||||
this.PrevButton.UseVisualStyleBackColor = true;
|
this.PrevButton.UseVisualStyleBackColor = true;
|
||||||
this.PrevButton.Click += new System.EventHandler(this.PrevButton_Click);
|
this.PrevButton.Click += new System.EventHandler(this.PrevButton_Click);
|
||||||
//
|
//
|
||||||
// NextButton
|
// NextButton
|
||||||
//
|
//
|
||||||
this.NextButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
this.NextButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.NextButton.Location = new System.Drawing.Point(255, 301);
|
this.NextButton.Location = new System.Drawing.Point(248, 304);
|
||||||
this.NextButton.Name = "NextButton";
|
this.NextButton.Name = "NextButton";
|
||||||
this.NextButton.Size = new System.Drawing.Size(31, 23);
|
this.NextButton.Size = new System.Drawing.Size(31, 23);
|
||||||
this.NextButton.TabIndex = 4;
|
this.NextButton.TabIndex = 4;
|
||||||
this.NextButton.Text = ">>";
|
this.NextButton.Text = "⏭";
|
||||||
this.NextButton.UseVisualStyleBackColor = true;
|
this.NextButton.UseVisualStyleBackColor = true;
|
||||||
this.NextButton.Click += new System.EventHandler(this.NextButton_Click);
|
this.NextButton.Click += new System.EventHandler(this.NextButton_Click);
|
||||||
//
|
//
|
||||||
// PlayButton
|
// PlayButton
|
||||||
//
|
//
|
||||||
this.PlayButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
this.PlayButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.PlayButton.Location = new System.Drawing.Point(174, 301);
|
this.PlayButton.Location = new System.Drawing.Point(174, 304);
|
||||||
this.PlayButton.Name = "PlayButton";
|
this.PlayButton.Name = "PlayButton";
|
||||||
this.PlayButton.Size = new System.Drawing.Size(75, 23);
|
this.PlayButton.Size = new System.Drawing.Size(31, 23);
|
||||||
this.PlayButton.TabIndex = 3;
|
this.PlayButton.TabIndex = 3;
|
||||||
this.PlayButton.Text = "Play/Pause";
|
this.PlayButton.Text = "▶";
|
||||||
this.PlayButton.UseVisualStyleBackColor = true;
|
this.PlayButton.UseVisualStyleBackColor = true;
|
||||||
this.PlayButton.Click += new System.EventHandler(this.PlayButton_Click);
|
this.PlayButton.Click += new System.EventHandler(this.PlayButton_Click);
|
||||||
//
|
//
|
||||||
@ -143,13 +183,15 @@
|
|||||||
this.PlayListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
this.PlayListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||||
this.PlaylistNameHeader,
|
this.PlaylistNameHeader,
|
||||||
this.PlaylistTypeHeader,
|
this.PlaylistTypeHeader,
|
||||||
this.PlaylistLengthHeader});
|
this.PlaylistLengthHeader,
|
||||||
|
this.PlaylistSizeHeader});
|
||||||
|
this.PlayListView.ContextMenuStrip = this.contextMenuStrip;
|
||||||
this.PlayListView.FullRowSelect = true;
|
this.PlayListView.FullRowSelect = true;
|
||||||
this.PlayListView.HideSelection = false;
|
this.PlayListView.HideSelection = false;
|
||||||
this.PlayListView.Location = new System.Drawing.Point(6, 6);
|
this.PlayListView.Location = new System.Drawing.Point(6, 6);
|
||||||
this.PlayListView.MultiSelect = false;
|
this.PlayListView.MultiSelect = false;
|
||||||
this.PlayListView.Name = "PlayListView";
|
this.PlayListView.Name = "PlayListView";
|
||||||
this.PlayListView.Size = new System.Drawing.Size(556, 235);
|
this.PlayListView.Size = new System.Drawing.Size(556, 238);
|
||||||
this.PlayListView.TabIndex = 0;
|
this.PlayListView.TabIndex = 0;
|
||||||
this.PlayListView.UseCompatibleStateImageBehavior = false;
|
this.PlayListView.UseCompatibleStateImageBehavior = false;
|
||||||
this.PlayListView.View = System.Windows.Forms.View.Details;
|
this.PlayListView.View = System.Windows.Forms.View.Details;
|
||||||
@ -158,7 +200,7 @@
|
|||||||
// PlaylistNameHeader
|
// PlaylistNameHeader
|
||||||
//
|
//
|
||||||
this.PlaylistNameHeader.Text = "Name";
|
this.PlaylistNameHeader.Text = "Name";
|
||||||
this.PlaylistNameHeader.Width = 303;
|
this.PlaylistNameHeader.Width = 260;
|
||||||
//
|
//
|
||||||
// PlaylistTypeHeader
|
// PlaylistTypeHeader
|
||||||
//
|
//
|
||||||
@ -168,14 +210,29 @@
|
|||||||
// PlaylistLengthHeader
|
// PlaylistLengthHeader
|
||||||
//
|
//
|
||||||
this.PlaylistLengthHeader.Text = "Length";
|
this.PlaylistLengthHeader.Text = "Length";
|
||||||
this.PlaylistLengthHeader.Width = 110;
|
this.PlaylistLengthHeader.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
|
||||||
|
this.PlaylistLengthHeader.Width = 80;
|
||||||
|
//
|
||||||
|
// contextMenuStrip
|
||||||
|
//
|
||||||
|
this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.ExportAsWav});
|
||||||
|
this.contextMenuStrip.Name = "contextMenuStrip1";
|
||||||
|
this.contextMenuStrip.Size = new System.Drawing.Size(153, 48);
|
||||||
|
//
|
||||||
|
// ExportAsWav
|
||||||
|
//
|
||||||
|
this.ExportAsWav.Name = "ExportAsWav";
|
||||||
|
this.ExportAsWav.Size = new System.Drawing.Size(152, 22);
|
||||||
|
this.ExportAsWav.Text = "Export as .wav";
|
||||||
|
this.ExportAsWav.Click += new System.EventHandler(this.ExportAsWav_Click);
|
||||||
//
|
//
|
||||||
// VolumeTrackBar
|
// VolumeTrackBar
|
||||||
//
|
//
|
||||||
this.VolumeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.VolumeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.VolumeTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.VolumeTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.VolumeTrackBar.LargeChange = 10;
|
this.VolumeTrackBar.LargeChange = 10;
|
||||||
this.VolumeTrackBar.Location = new System.Drawing.Point(455, 301);
|
this.VolumeTrackBar.Location = new System.Drawing.Point(455, 304);
|
||||||
this.VolumeTrackBar.Maximum = 100;
|
this.VolumeTrackBar.Maximum = 100;
|
||||||
this.VolumeTrackBar.Name = "VolumeTrackBar";
|
this.VolumeTrackBar.Name = "VolumeTrackBar";
|
||||||
this.VolumeTrackBar.Size = new System.Drawing.Size(105, 45);
|
this.VolumeTrackBar.Size = new System.Drawing.Size(105, 45);
|
||||||
@ -190,7 +247,7 @@
|
|||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.PositionTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.PositionTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.PositionTrackBar.LargeChange = 1000;
|
this.PositionTrackBar.LargeChange = 1000;
|
||||||
this.PositionTrackBar.Location = new System.Drawing.Point(6, 263);
|
this.PositionTrackBar.Location = new System.Drawing.Point(6, 266);
|
||||||
this.PositionTrackBar.Maximum = 1000;
|
this.PositionTrackBar.Maximum = 1000;
|
||||||
this.PositionTrackBar.Name = "PositionTrackBar";
|
this.PositionTrackBar.Name = "PositionTrackBar";
|
||||||
this.PositionTrackBar.Size = new System.Drawing.Size(554, 45);
|
this.PositionTrackBar.Size = new System.Drawing.Size(554, 45);
|
||||||
@ -204,7 +261,7 @@
|
|||||||
this.DetailsTabPage.Location = new System.Drawing.Point(4, 22);
|
this.DetailsTabPage.Location = new System.Drawing.Point(4, 22);
|
||||||
this.DetailsTabPage.Name = "DetailsTabPage";
|
this.DetailsTabPage.Name = "DetailsTabPage";
|
||||||
this.DetailsTabPage.Padding = new System.Windows.Forms.Padding(3);
|
this.DetailsTabPage.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.DetailsTabPage.Size = new System.Drawing.Size(568, 332);
|
this.DetailsTabPage.Size = new System.Drawing.Size(568, 335);
|
||||||
this.DetailsTabPage.TabIndex = 1;
|
this.DetailsTabPage.TabIndex = 1;
|
||||||
this.DetailsTabPage.Text = "Details";
|
this.DetailsTabPage.Text = "Details";
|
||||||
this.DetailsTabPage.UseVisualStyleBackColor = true;
|
this.DetailsTabPage.UseVisualStyleBackColor = true;
|
||||||
@ -215,27 +272,41 @@
|
|||||||
this.DetailsPropertyGrid.HelpVisible = false;
|
this.DetailsPropertyGrid.HelpVisible = false;
|
||||||
this.DetailsPropertyGrid.Location = new System.Drawing.Point(3, 3);
|
this.DetailsPropertyGrid.Location = new System.Drawing.Point(3, 3);
|
||||||
this.DetailsPropertyGrid.Name = "DetailsPropertyGrid";
|
this.DetailsPropertyGrid.Name = "DetailsPropertyGrid";
|
||||||
this.DetailsPropertyGrid.Size = new System.Drawing.Size(562, 326);
|
this.DetailsPropertyGrid.Size = new System.Drawing.Size(562, 329);
|
||||||
this.DetailsPropertyGrid.TabIndex = 0;
|
this.DetailsPropertyGrid.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// Timer
|
// Timer
|
||||||
//
|
//
|
||||||
this.Timer.Enabled = true;
|
this.Timer.Enabled = true;
|
||||||
|
this.Timer.Interval = 25;
|
||||||
this.Timer.Tick += new System.EventHandler(this.Timer_Tick);
|
this.Timer.Tick += new System.EventHandler(this.Timer_Tick);
|
||||||
//
|
//
|
||||||
|
// saveFileDialog
|
||||||
|
//
|
||||||
|
this.saveFileDialog.DefaultExt = "wav";
|
||||||
|
this.saveFileDialog.Filter = "Wave files (*.wav)|*.wav";
|
||||||
|
//
|
||||||
|
// PlaylistSizeHeader
|
||||||
|
//
|
||||||
|
this.PlaylistSizeHeader.Text = "Size";
|
||||||
|
this.PlaylistSizeHeader.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
|
||||||
|
this.PlaylistSizeHeader.Width = 80;
|
||||||
|
//
|
||||||
// AwcForm
|
// AwcForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(576, 358);
|
this.ClientSize = new System.Drawing.Size(576, 361);
|
||||||
this.Controls.Add(this.MainTabControl);
|
this.Controls.Add(this.MainTabControl);
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.MinimumSize = new System.Drawing.Size(592, 300);
|
||||||
this.Name = "AwcForm";
|
this.Name = "AwcForm";
|
||||||
this.Text = "AWC Player - CodeWalker by dexyfex";
|
this.Text = "AWC Player - CodeWalker by dexyfex";
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AwcForm_FormClosing);
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AwcForm_FormClosing);
|
||||||
this.MainTabControl.ResumeLayout(false);
|
this.MainTabControl.ResumeLayout(false);
|
||||||
this.PlayerTabPage.ResumeLayout(false);
|
this.PlayerTabPage.ResumeLayout(false);
|
||||||
this.PlayerTabPage.PerformLayout();
|
this.PlayerTabPage.PerformLayout();
|
||||||
|
this.contextMenuStrip.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.VolumeTrackBar)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.VolumeTrackBar)).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.PositionTrackBar)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.PositionTrackBar)).EndInit();
|
||||||
this.DetailsTabPage.ResumeLayout(false);
|
this.DetailsTabPage.ResumeLayout(false);
|
||||||
@ -261,5 +332,12 @@
|
|||||||
private System.Windows.Forms.Timer Timer;
|
private System.Windows.Forms.Timer Timer;
|
||||||
private System.Windows.Forms.CheckBox chbAutoJump;
|
private System.Windows.Forms.CheckBox chbAutoJump;
|
||||||
private System.Windows.Forms.Label VolumeLabel;
|
private System.Windows.Forms.Label VolumeLabel;
|
||||||
|
private System.Windows.Forms.Button StopButton;
|
||||||
|
private System.Windows.Forms.Label LabelTime;
|
||||||
|
private System.Windows.Forms.Label LabelInfo;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ExportAsWav;
|
||||||
|
private System.Windows.Forms.SaveFileDialog saveFileDialog;
|
||||||
|
private System.Windows.Forms.ColumnHeader PlaylistSizeHeader;
|
||||||
}
|
}
|
||||||
}
|
}
|
362
Forms/AwcForm.cs
362
Forms/AwcForm.cs
@ -1,78 +1,86 @@
|
|||||||
using CodeWalker.GameFiles;
|
using CodeWalker.GameFiles;
|
||||||
using SharpDX.Multimedia;
|
using SharpDX.Multimedia;
|
||||||
using SharpDX.XAudio2;
|
using SharpDX.XAudio2;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace CodeWalker.Forms
|
namespace CodeWalker.Forms
|
||||||
{
|
{
|
||||||
public partial class AwcForm : Form
|
public partial class AwcForm : Form
|
||||||
{
|
{
|
||||||
public AwcFile Awc { get; set; }
|
public AwcFile Awc { get; set; }
|
||||||
|
|
||||||
|
private AwcAudio currentAudio;
|
||||||
private XAudio2 xAudio2;
|
private XAudio2 xAudio2;
|
||||||
private MasteringVoice masteringVoice;
|
private MasteringVoice masteringVoice;
|
||||||
private AudioBuffer audioBuffer;
|
private AudioBuffer audioBuffer;
|
||||||
private SourceVoice sourceVoice;
|
private SourceVoice sourceVoice;
|
||||||
|
|
||||||
|
private string fileName;
|
||||||
|
public string FileName
|
||||||
|
{
|
||||||
|
get { return fileName; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
fileName = value;
|
||||||
|
UpdateFormTitle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string FilePath { get; set; }
|
||||||
|
|
||||||
|
private enum PlayerState { Stopped, Playing, Paused };
|
||||||
|
private PlayerState playerState = PlayerState.Stopped;
|
||||||
|
|
||||||
|
private Stopwatch playtime;
|
||||||
|
private int playBeginMs;
|
||||||
|
private float trackLength;
|
||||||
|
private bool trackFinished;
|
||||||
|
|
||||||
|
public AwcForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
playtime = new Stopwatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateFormTitle()
|
||||||
|
{
|
||||||
|
Text = fileName + " - AWC Player - CodeWalker by dexyfex";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadAwc(AwcFile awc)
|
||||||
|
{
|
||||||
|
Awc = awc;
|
||||||
|
DetailsPropertyGrid.SelectedObject = awc;
|
||||||
|
|
||||||
|
fileName = awc?.Name;
|
||||||
|
if (string.IsNullOrEmpty(fileName))
|
||||||
|
{
|
||||||
|
fileName = awc?.FileEntry?.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayListView.Items.Clear();
|
||||||
|
|
||||||
|
float totalLength = 0;
|
||||||
|
if (awc.Audios != null)
|
||||||
|
{
|
||||||
|
foreach (var audio in awc.Audios)
|
||||||
|
{
|
||||||
|
var item = PlayListView.Items.Add(audio.Name);
|
||||||
|
item.SubItems.Add(audio.Type);
|
||||||
|
item.SubItems.Add(audio.LengthStr);
|
||||||
|
item.SubItems.Add(TextUtil.GetBytesReadable(audio.Data.Length));
|
||||||
|
item.Tag = audio;
|
||||||
|
totalLength += audio.Length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LabelInfo.Text = awc.Audios.Length.ToString() + " track(s), Length: " + TimeSpan.FromSeconds((float)totalLength).ToString("m\\:ss");
|
||||||
|
UpdateFormTitle();
|
||||||
|
}
|
||||||
|
|
||||||
private string fileName;
|
|
||||||
public string FileName
|
|
||||||
{
|
|
||||||
get { return fileName; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
fileName = value;
|
|
||||||
UpdateFormTitle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public string FilePath { get; set; }
|
|
||||||
|
|
||||||
private enum PlayerState { Stopped, Playing, Paused };
|
|
||||||
private PlayerState playerState = PlayerState.Stopped;
|
|
||||||
|
|
||||||
private Stopwatch playtime;
|
|
||||||
private float trackLength;
|
|
||||||
|
|
||||||
public AwcForm()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
playtime = new Stopwatch();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateFormTitle()
|
|
||||||
{
|
|
||||||
Text = fileName + " - AWC Player - CodeWalker by dexyfex";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadAwc(AwcFile awc)
|
|
||||||
{
|
|
||||||
Awc = awc;
|
|
||||||
DetailsPropertyGrid.SelectedObject = awc;
|
|
||||||
|
|
||||||
fileName = awc?.Name;
|
|
||||||
if (string.IsNullOrEmpty(fileName))
|
|
||||||
{
|
|
||||||
fileName = awc?.FileEntry?.Name;
|
|
||||||
}
|
|
||||||
|
|
||||||
PlayListView.Items.Clear();
|
|
||||||
if (awc.Audios != null)
|
|
||||||
{
|
|
||||||
foreach (var audio in awc.Audios)
|
|
||||||
{
|
|
||||||
var item = PlayListView.Items.Add(audio.Name);
|
|
||||||
item.SubItems.Add(audio.Type);
|
|
||||||
item.SubItems.Add(audio.LengthStr);
|
|
||||||
item.Tag = audio;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateFormTitle();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Stop()
|
private void Stop()
|
||||||
{
|
{
|
||||||
if (playerState != PlayerState.Stopped)
|
if (playerState != PlayerState.Stopped)
|
||||||
@ -82,8 +90,8 @@ namespace CodeWalker.Forms
|
|||||||
audioBuffer.Stream.Dispose();
|
audioBuffer.Stream.Dispose();
|
||||||
SetPlayerState(PlayerState.Stopped);
|
SetPlayerState(PlayerState.Stopped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetPlayerState(PlayerState newState)
|
private void SetPlayerState(PlayerState newState)
|
||||||
{
|
{
|
||||||
if (playerState != newState)
|
if (playerState != newState)
|
||||||
@ -94,60 +102,88 @@ namespace CodeWalker.Forms
|
|||||||
if (playerState == PlayerState.Stopped)
|
if (playerState == PlayerState.Stopped)
|
||||||
playtime.Reset();
|
playtime.Reset();
|
||||||
playtime.Start();
|
playtime.Start();
|
||||||
|
|
||||||
|
PlayButton.Text = "\u275A\u275A";
|
||||||
|
StopButton.Enabled = true;
|
||||||
|
LabelTime.Visible = true;
|
||||||
break;
|
break;
|
||||||
default:
|
case PlayerState.Paused:
|
||||||
playtime.Stop();
|
playtime.Stop();
|
||||||
|
PlayButton.Text = "\u25B6";
|
||||||
|
StopButton.Enabled = true;
|
||||||
|
LabelTime.Visible = true;
|
||||||
|
break;
|
||||||
|
case PlayerState.Stopped:
|
||||||
|
playtime.Stop();
|
||||||
|
PlayButton.Text = "\u25B6";
|
||||||
|
LabelTime.Visible = false;
|
||||||
|
StopButton.Enabled = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerState = newState;
|
playerState = newState;
|
||||||
|
UpdateUI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeAudio(AwcAudio audio)
|
private void InitializeAudio(AwcAudio audio, float playBegin = 0)
|
||||||
{
|
{
|
||||||
|
currentAudio = audio;
|
||||||
trackLength = audio.Length;
|
trackLength = audio.Length;
|
||||||
|
|
||||||
if (xAudio2 == null)
|
if (xAudio2 == null)
|
||||||
{
|
{
|
||||||
xAudio2 = new XAudio2();
|
xAudio2 = new XAudio2();
|
||||||
masteringVoice = new MasteringVoice(xAudio2);
|
masteringVoice = new MasteringVoice(xAudio2);
|
||||||
}
|
}
|
||||||
|
|
||||||
Stream wavStream = audio.GetWavStream();
|
Stream wavStream = audio.GetWavStream();
|
||||||
SoundStream soundStream = new SoundStream(wavStream);
|
SoundStream soundStream = new SoundStream(wavStream);
|
||||||
audioBuffer = new AudioBuffer
|
audioBuffer = new AudioBuffer
|
||||||
{
|
{
|
||||||
Stream = soundStream.ToDataStream(),
|
Stream = soundStream.ToDataStream(),
|
||||||
AudioBytes = (int)soundStream.Length,
|
AudioBytes = (int)soundStream.Length,
|
||||||
Flags = BufferFlags.EndOfStream
|
Flags = BufferFlags.EndOfStream
|
||||||
};
|
};
|
||||||
|
if (playBegin > 0)
|
||||||
|
{
|
||||||
|
audioBuffer.PlayBegin = (int)(soundStream.Format.SampleRate * playBegin) / 128 * 128;
|
||||||
|
if (playtime.IsRunning)
|
||||||
|
playtime.Restart();
|
||||||
|
else
|
||||||
|
playtime.Reset();
|
||||||
|
playBeginMs = (int)(playBegin * 1000);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
playBeginMs = 0;
|
||||||
soundStream.Close();
|
soundStream.Close();
|
||||||
wavStream.Close();
|
wavStream.Close();
|
||||||
|
|
||||||
sourceVoice = new SourceVoice(xAudio2, soundStream.Format, true);
|
trackFinished = false;
|
||||||
|
sourceVoice = new SourceVoice(xAudio2, soundStream.Format, true);
|
||||||
sourceVoice.SubmitSourceBuffer(audioBuffer, soundStream.DecodedPacketsInfo);
|
sourceVoice.SubmitSourceBuffer(audioBuffer, soundStream.DecodedPacketsInfo);
|
||||||
sourceVoice.SetVolume((float)VolumeTrackBar.Value / 100);
|
sourceVoice.BufferEnd += (context) => trackFinished = true;
|
||||||
}
|
sourceVoice.SetVolume((float)VolumeTrackBar.Value / 100);
|
||||||
|
}
|
||||||
private void Play()
|
|
||||||
{
|
private void Play()
|
||||||
Stop();
|
{
|
||||||
|
Stop();
|
||||||
|
|
||||||
if (PlayListView.SelectedItems.Count == 1)
|
if (PlayListView.SelectedItems.Count == 1)
|
||||||
{
|
{
|
||||||
var item = PlayListView.SelectedItems[0];
|
var item = PlayListView.SelectedItems[0];
|
||||||
var audio = item.Tag as AwcAudio;
|
var audio = item.Tag as AwcAudio;
|
||||||
|
|
||||||
if (audio != null)
|
if (audio != null)
|
||||||
{
|
{
|
||||||
InitializeAudio(audio);
|
InitializeAudio(audio);
|
||||||
sourceVoice.Start();
|
sourceVoice.Start();
|
||||||
SetPlayerState(PlayerState.Playing);
|
SetPlayerState(PlayerState.Playing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayPrevious()
|
private void PlayPrevious()
|
||||||
{
|
{
|
||||||
Stop();
|
Stop();
|
||||||
@ -161,8 +197,8 @@ namespace CodeWalker.Forms
|
|||||||
Play();
|
Play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayNext()
|
private void PlayNext()
|
||||||
{
|
{
|
||||||
Stop();
|
Stop();
|
||||||
@ -176,33 +212,36 @@ namespace CodeWalker.Forms
|
|||||||
Play();
|
Play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Pause()
|
private void Pause()
|
||||||
{
|
{
|
||||||
if (playerState == PlayerState.Playing)
|
if (playerState == PlayerState.Playing)
|
||||||
{
|
{
|
||||||
sourceVoice.Stop();
|
sourceVoice.Stop();
|
||||||
SetPlayerState(PlayerState.Paused);
|
SetPlayerState(PlayerState.Paused);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Resume()
|
private void Resume()
|
||||||
{
|
{
|
||||||
if (playerState == PlayerState.Paused)
|
if (playerState == PlayerState.Paused)
|
||||||
{
|
{
|
||||||
sourceVoice.Start();
|
sourceVoice.Start();
|
||||||
SetPlayerState(PlayerState.Playing);
|
SetPlayerState(PlayerState.Playing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PositionTrackBar_Scroll(object sender, EventArgs e)
|
private void PositionTrackBar_Scroll(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
sourceVoice.Stop();
|
||||||
|
InitializeAudio(currentAudio, PositionTrackBar.Value / 1000);
|
||||||
private void PlayButton_Click(object sender, EventArgs e)
|
sourceVoice.Start();
|
||||||
{
|
}
|
||||||
|
|
||||||
|
private void PlayButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
switch (playerState)
|
switch (playerState)
|
||||||
{
|
{
|
||||||
case PlayerState.Stopped:
|
case PlayerState.Stopped:
|
||||||
@ -214,33 +253,44 @@ namespace CodeWalker.Forms
|
|||||||
case PlayerState.Paused:
|
case PlayerState.Paused:
|
||||||
Resume();
|
Resume();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private void PrevButton_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
PlayPrevious();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void NextButton_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
PlayNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void VolumeTrackBar_Scroll(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (playerState == PlayerState.Playing)
|
|
||||||
sourceVoice.SetVolume((float)VolumeTrackBar.Value / 100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timer_Tick(object sender, EventArgs e)
|
private void PrevButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
PlayPrevious();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NextButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
PlayNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void VolumeTrackBar_Scroll(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (playerState == PlayerState.Playing)
|
||||||
|
sourceVoice.SetVolume((float)VolumeTrackBar.Value / 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateUI()
|
||||||
|
{
|
||||||
|
if (playerState != PlayerState.Stopped && trackFinished)
|
||||||
|
{
|
||||||
|
if (chbAutoJump.Checked)
|
||||||
|
PlayNext();
|
||||||
|
else
|
||||||
|
Stop();
|
||||||
|
}
|
||||||
|
|
||||||
if (playerState != PlayerState.Stopped)
|
if (playerState != PlayerState.Stopped)
|
||||||
{
|
{
|
||||||
int playedMs = (int)playtime.Elapsed.TotalMilliseconds;
|
int playedMs = (int)playtime.Elapsed.TotalMilliseconds + playBeginMs;
|
||||||
int totalMs = (int)(trackLength * 1000);
|
int totalMs = (int)(trackLength * 1000);
|
||||||
PositionTrackBar.Maximum = totalMs;
|
PositionTrackBar.Maximum = totalMs;
|
||||||
PositionTrackBar.Value = playedMs < totalMs ? playedMs : totalMs;
|
PositionTrackBar.Value = playedMs < totalMs ? playedMs : totalMs;
|
||||||
|
|
||||||
|
LabelTime.Text = TimeSpan.FromSeconds(playedMs / 1000).ToString("m\\:ss")
|
||||||
|
+ " / " + TimeSpan.FromSeconds(totalMs / 1000).ToString("m\\:ss");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -248,6 +298,11 @@ namespace CodeWalker.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Timer_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
|
|
||||||
private void PlayListView_DoubleClick(object sender, EventArgs e)
|
private void PlayListView_DoubleClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (playerState == PlayerState.Playing)
|
if (playerState == PlayerState.Playing)
|
||||||
@ -263,6 +318,25 @@ namespace CodeWalker.Forms
|
|||||||
masteringVoice.Dispose();
|
masteringVoice.Dispose();
|
||||||
xAudio2.Dispose();
|
xAudio2.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
private void ExportAsWav_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (PlayListView.SelectedItems.Count == 1)
|
||||||
|
{
|
||||||
|
var item = PlayListView.SelectedItems[0];
|
||||||
|
var audio = item.Tag as AwcAudio;
|
||||||
|
|
||||||
|
saveFileDialog.FileName = audio.Name + ".wav";
|
||||||
|
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
Stream wavStream = audio.GetWavStream();
|
||||||
|
FileStream stream = File.Create(saveFileDialog.FileName);
|
||||||
|
wavStream.CopyTo(stream);
|
||||||
|
stream.Close();
|
||||||
|
wavStream.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -117,9 +117,15 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>99, 17</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="Timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="Timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>254, 17</value>
|
||||||
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user