summaryrefslogtreecommitdiff
path: root/audio/sysvad/ToneGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'audio/sysvad/ToneGenerator.cpp')
-rw-r--r--audio/sysvad/ToneGenerator.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/audio/sysvad/ToneGenerator.cpp b/audio/sysvad/ToneGenerator.cpp
index 2a01e49a..6ef2a39a 100644
--- a/audio/sysvad/ToneGenerator.cpp
+++ b/audio/sysvad/ToneGenerator.cpp
@@ -15,7 +15,6 @@ Abstract:
#include <sysvad.h>
#include "ToneGenerator.h"
-const double TONE_AMPLITUDE = 0.5; // Scalar value, should be between 0.0 - 1.0
const double TWO_PI = M_PI * 2;
extern DWORD g_DisableToneGenerator;
@@ -89,7 +88,7 @@ VOID ToneGenerator::InitNewFrame
_In_ DWORD FrameSize
)
{
- double sinValue = TONE_AMPLITUDE * sin( m_Theta );
+ double sinValue = m_ToneDCOffset + m_ToneAmplitude * sin( m_Theta );
if (FrameSize != (DWORD)m_ChannelCount * m_BitsPerSample/8)
{
@@ -222,6 +221,9 @@ ZeroBuffer:
NTSTATUS ToneGenerator::Init
(
_In_ DWORD ToneFrequency,
+ _In_ double ToneAmplitude,
+ _In_ double ToneDCOffset,
+ _In_ double ToneInitialPhase,
_In_ PWAVEFORMATEXTENSIBLE WfExt
)
{
@@ -248,8 +250,11 @@ NTSTATUS ToneGenerator::Init
//
// Basic init.
//
- RtlZeroMemory(&m_Theta, sizeof(m_Theta));
+ m_Theta = ToneInitialPhase;
m_Frequency = ToneFrequency;
+ m_ToneAmplitude = ToneAmplitude;
+ m_ToneDCOffset = ToneDCOffset;
+
m_ChannelCount = WfExt->Format.nChannels; // # channels.
m_BitsPerSample = WfExt->Format.wBitsPerSample; // bits per sample.
m_SamplesPerSecond = WfExt->Format.nSamplesPerSec; // samples per sec.