示例#1
0
 public UIParams(ref WaveformPainter wavePainter, ref VolumeMeter volumeMeter, PCMAudioFormat format = PCMAudioFormat.PCM_24, Mode mode = Mode.Auscultate)
 {
     this.WavePainter = wavePainter;
     this.VolumeMeter = volumeMeter;
     this.Format      = format;
     this.Mode        = mode;
 }
示例#2
0
        private void SetupControls()
        {
            this.Controls.Clear();

            var channels = waveFormat.Channels;

            if (channels > 0)
            {
                TableLayoutPanel table = new TableLayoutPanel
                {
                    Dock = DockStyle.Fill,
                };

                table.RowCount = channels;
                for (int ch = 0; ch < channels; ch++)
                {
                    var wavePainter = new WaveformPainter
                    {
                        Tag       = ch,
                        Dock      = DockStyle.Fill,
                        BackColor = System.Drawing.SystemColors.Info,
                    };

                    waveformPainters.Add(wavePainter);

                    table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
                    table.Controls.Add(wavePainter, 0, ch);
                }


                this.Controls.Add(table);

                //this.AutoSize = true;
            }
        }
示例#3
0
        public GusboyVisualWaveProvider(WaveFormat waveFormat, Gameboy gb, WaveformPainter painter, int bufferLength)
        {
            this.waveFormat = waveFormat;
            this.gb         = gb;
            this.painter    = painter;

            // We can assume stereo (since the emulator doesn't support mono)
            this.bufferSkip  = waveFormat.SampleRate * 2 / 60;
            this.queueLength = bufferLength / 500 * waveFormat.SampleRate / this.bufferSkip;
        }
        void InitializePainer(WaveformPainter waveformPainter, float[] samples)
        {
            waveformPainter.ClearSamples();
            int step = samples.Length / waveformPainter.MaxSamples;
            int cnt  = 0;

            for (var i = 0; i < waveformPainter.MaxSamples; i++)
            {
                var avgs   = new List <float>();
                var avgNeg = new List <float>();
                var avgPos = new List <float>();
                for (var j = 0; j < step; j++, cnt++)
                {
                    if (cnt >= samples.Length)
                    {
                        break;
                    }

                    if (samples[cnt] > 0)
                    {
                        avgPos.Add(samples[cnt]);
                        avgNeg.Add(0);
                    }
                    if (samples[cnt] <= 0)
                    {
                        avgNeg.Add(samples[cnt]);
                        avgPos.Add(0);
                    }
                    avgs.Add(samples[cnt]);
                }

                if (avgPos.Count > 0)
                {
                    waveformPainter.PositiveSamples[i] = (avgPos.Max());
                }
                if (avgNeg.Count > 0)
                {
                    waveformPainter.NegativeSamples[i] = (avgNeg.Min());
                }
                if (avgs.Count > 0)
                {
                    waveformPainter.AverageSamples.Add(avgs.Average());
                }
            }

            waveformPainter.Invalidate();
        }
        public AudioTestView()
        {
            InitializeComponent();

            volumeSlider = new VolumeSlider();
            volumeSlider.VolumeChanged   += new EventHandler(OnVolumeSliderChanged);
            this.NAudioVolumeSlider.Child = volumeSlider;

            volumeMeter1                  = new VolumeMeter();
            volumeMeter2                  = new VolumeMeter();
            volumeMeter1.ForeColor        = volumeMeter2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
            this.NAudioVolumeMeter1.Child = volumeMeter1;
            this.NAudioVolumeMeter2.Child = volumeMeter2;

            waveformPainter1           = new WaveformPainter();
            waveformPainter2           = new WaveformPainter();
            waveformPainter1.BackColor = waveformPainter2.BackColor =
                System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
            waveformPainter1.ForeColor = waveformPainter2.ForeColor =
                System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
            this.NAudioPainter1.Child = waveformPainter1;
            this.NAudioPainter2.Child = waveformPainter2;
        }
示例#6
0
 public void SetWaveformPainter(WaveformPainter painter)
 {
     this.waveformPainter = painter;
 }