Volume control hooked up

This commit is contained in:
andres.delikat 2011-05-24 01:20:08 +00:00
parent 4ea39c8525
commit 115517c795
3 changed files with 32 additions and 16 deletions

View File

@ -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);
}
}
}

View File

@ -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();

View File

@ -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();
}