Volume control hooked up
This commit is contained in:
parent
4ea39c8525
commit
115517c795
|
@ -32,12 +32,12 @@ namespace BizHawk.MultiClient
|
|||
|
||||
var desc = new SoundBufferDescription();
|
||||
desc.Format = format;
|
||||
desc.Flags = BufferFlags.GlobalFocus | BufferFlags.Software | BufferFlags.GetCurrentPosition2;
|
||||
desc.Flags = BufferFlags.GlobalFocus | BufferFlags.Software | BufferFlags.GetCurrentPosition2 | BufferFlags.ControlVolume;
|
||||
desc.SizeInBytes = BufferSize;
|
||||
|
||||
DSoundBuffer = new SecondarySoundBuffer(device, desc);
|
||||
ChangeVolume(Global.Config.SoundVolume);
|
||||
SoundBuffer = new byte[BufferSize];
|
||||
|
||||
|
||||
disposed = false;
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,6 @@ namespace BizHawk.MultiClient
|
|||
needDiscard = true;
|
||||
|
||||
DSoundBuffer.Write(SoundBuffer, 0, LockFlags.EntireBuffer);
|
||||
|
||||
DSoundBuffer.CurrentPlayPosition = 0;
|
||||
DSoundBuffer.Play(0, PlayFlags.Looping);
|
||||
}
|
||||
|
@ -150,5 +149,18 @@ namespace BizHawk.MultiClient
|
|||
soundoffset += samplesNeeded * 2;
|
||||
soundoffset %= BufferSize;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Range: 0-100
|
||||
/// </summary>
|
||||
/// <param name="vol"></param>
|
||||
public void ChangeVolume(int vol)
|
||||
{
|
||||
if (vol > 100)
|
||||
vol = 100;
|
||||
if (vol < 0)
|
||||
vol = 0;
|
||||
DSoundBuffer.Volume = 0 - ((100 - Global.Config.SoundVolume) * 50);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -33,11 +33,11 @@
|
|||
this.SoundOnCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.MuteFrameAdvance = new System.Windows.Forms.CheckBox();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.SoundVolNumeric = new System.Windows.Forms.NumericUpDown();
|
||||
this.SoundVolBar = new System.Windows.Forms.TrackBar();
|
||||
this.SoundVolNumeric = new System.Windows.Forms.NumericUpDown();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolNumeric)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolBar)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolNumeric)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// Cancel
|
||||
|
@ -94,14 +94,6 @@
|
|||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Volume";
|
||||
//
|
||||
// SoundVolNumeric
|
||||
//
|
||||
this.SoundVolNumeric.Location = new System.Drawing.Point(16, 190);
|
||||
this.SoundVolNumeric.Name = "SoundVolNumeric";
|
||||
this.SoundVolNumeric.Size = new System.Drawing.Size(59, 20);
|
||||
this.SoundVolNumeric.TabIndex = 0;
|
||||
this.SoundVolNumeric.ValueChanged += new System.EventHandler(this.SoundVolNumeric_ValueChanged);
|
||||
//
|
||||
// SoundVolBar
|
||||
//
|
||||
this.SoundVolBar.LargeChange = 10;
|
||||
|
@ -109,11 +101,19 @@
|
|||
this.SoundVolBar.Maximum = 100;
|
||||
this.SoundVolBar.Name = "SoundVolBar";
|
||||
this.SoundVolBar.Orientation = System.Windows.Forms.Orientation.Vertical;
|
||||
this.SoundVolBar.Size = new System.Drawing.Size(45, 164);
|
||||
this.SoundVolBar.Size = new System.Drawing.Size(42, 164);
|
||||
this.SoundVolBar.TabIndex = 1;
|
||||
this.SoundVolBar.TickFrequency = 10;
|
||||
this.SoundVolBar.Scroll += new System.EventHandler(this.trackBar1_Scroll);
|
||||
//
|
||||
// SoundVolNumeric
|
||||
//
|
||||
this.SoundVolNumeric.Location = new System.Drawing.Point(16, 190);
|
||||
this.SoundVolNumeric.Name = "SoundVolNumeric";
|
||||
this.SoundVolNumeric.Size = new System.Drawing.Size(59, 20);
|
||||
this.SoundVolNumeric.TabIndex = 0;
|
||||
this.SoundVolNumeric.ValueChanged += new System.EventHandler(this.SoundVolNumeric_ValueChanged);
|
||||
//
|
||||
// SoundConfig
|
||||
//
|
||||
this.AcceptButton = this.OK;
|
||||
|
@ -127,12 +127,13 @@
|
|||
this.Controls.Add(this.OK);
|
||||
this.Controls.Add(this.Cancel);
|
||||
this.Name = "SoundConfig";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "Sound Configuration";
|
||||
this.Load += new System.EventHandler(this.SoundConfig_Load);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolNumeric)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolBar)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.SoundVolNumeric)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
SoundOnCheckBox.Checked = Global.Config.SoundEnabled;
|
||||
MuteFrameAdvance.Checked = Global.Config.MuteFrameAdvance;
|
||||
SoundVolBar.Value = Global.Config.SoundVolume;
|
||||
SoundVolNumeric.Value = Global.Config.SoundVolume;
|
||||
}
|
||||
|
||||
private void OK_Click(object sender, EventArgs e)
|
||||
|
@ -27,6 +29,7 @@ namespace BizHawk.MultiClient
|
|||
Global.Config.SoundEnabled = SoundOnCheckBox.Checked;
|
||||
Global.Config.MuteFrameAdvance = MuteFrameAdvance.Checked;
|
||||
Global.Config.SoundVolume = SoundVolBar.Value;
|
||||
Global.Sound.ChangeVolume(Global.Config.SoundVolume);
|
||||
Global.Sound.StartSound();
|
||||
this.Close();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue