summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/audio/types.h4
-rw-r--r--src/engine/channels/engineaux.cpp7
-rw-r--r--src/engine/channels/enginedeck.cpp9
-rw-r--r--src/engine/channels/enginemicrophone.cpp7
-rw-r--r--src/engine/enginebuffer.h2
-rw-r--r--src/soundio/soundmanager.cpp8
-rw-r--r--src/soundio/soundmanager.h40
7 files changed, 34 insertions, 43 deletions
diff --git a/src/audio/types.h b/src/audio/types.h
index 72872d6870..1200343bfb 100644
--- a/src/audio/types.h
+++ b/src/audio/types.h
@@ -137,6 +137,10 @@ class SampleRate {
(m_value <= kValueMax);
}
+ void operator=(const value_t& value) {
+ m_value = value;
+ }
+
/*implicit*/ constexpr operator value_t() const {
return m_value;
}
diff --git a/src/engine/channels/engineaux.cpp b/src/engine/channels/engineaux.cpp
index d67b8912e5..eaaef154ae 100644
--- a/src/engine/channels/engineaux.cpp
+++ b/src/engine/channels/engineaux.cpp
@@ -75,14 +75,15 @@ void EngineAux::receiveBuffer(AudioInput input, const CSAMPLE* pBuffer,
void EngineAux::process(CSAMPLE* pOut, const int iBufferSize) {
const CSAMPLE* sampleBuffer = m_sampleBuffer; // save pointer on stack
- double pregain = m_pPregain->get();
+ CSAMPLE_GAIN pregain = static_cast<CSAMPLE_GAIN>(m_pPregain->get());
if (sampleBuffer) {
SampleUtil::copyWithGain(pOut, sampleBuffer, pregain, iBufferSize);
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
if (pEngineEffectsManager != nullptr) {
pEngineEffectsManager->processPreFaderInPlace(
- m_group.handle(), m_pEffectsManager->getMasterHandle(),
- pOut, iBufferSize, m_pSampleRate->get());
+ m_group.handle(), m_pEffectsManager->getMasterHandle(), pOut, iBufferSize,
+ // TODO(jholthuis): Use mixxx::audio::SampleRate instead
+ static_cast<unsigned int>(m_pSampleRate->get()));
}
m_sampleBuffer = NULL;
} else {
diff --git a/src/engine/channels/enginedeck.cpp b/src/engine/channels/enginedeck.cpp
index e0047eab61..27431078c6 100644
--- a/src/engine/channels/enginedeck.cpp
+++ b/src/engine/channels/enginedeck.cpp
@@ -90,9 +90,12 @@ void EngineDeck::process(CSAMPLE* pOut, const int iBufferSize) {
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
if (pEngineEffectsManager != nullptr) {
- pEngineEffectsManager->processPreFaderInPlace(
- m_group.handle(), m_pEffectsManager->getMasterHandle(),
- pOut, iBufferSize, m_pSampleRate->get());
+ pEngineEffectsManager->processPreFaderInPlace(m_group.handle(),
+ m_pEffectsManager->getMasterHandle(),
+ pOut,
+ iBufferSize,
+ // TODO(jholthuis): Use mixxx::audio::SampleRate instead
+ static_cast<unsigned int>(m_pSampleRate->get()));
}
// Update VU meter
diff --git a/src/engine/channels/enginemicrophone.cpp b/src/engine/channels/enginemicrophone.cpp
index ddc78fa882..be6e8c4174 100644
--- a/src/engine/channels/enginemicrophone.cpp
+++ b/src/engine/channels/enginemicrophone.cpp
@@ -74,14 +74,15 @@ void EngineMicrophone::process(CSAMPLE* pOut, const int iBufferSize) {
// If configured read into the output buffer.
// Otherwise, skip the appropriate number of samples to throw them away.
const CSAMPLE* sampleBuffer = m_sampleBuffer; // save pointer on stack
- double pregain = m_pPregain->get();
+ CSAMPLE_GAIN pregain = static_cast<CSAMPLE_GAIN>(m_pPregain->get());
if (sampleBuffer) {
SampleUtil::copyWithGain(pOut, sampleBuffer, pregain, iBufferSize);
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
if (pEngineEffectsManager != nullptr) {
pEngineEffectsManager->processPreFaderInPlace(
- m_group.handle(), m_pEffectsManager->getMasterHandle(),
- pOut, iBufferSize, m_pSampleRate->get());
+ m_group.handle(), m_pEffectsManager->getMasterHandle(), pOut, iBufferSize,
+ // TODO(jholthuis): Use mixxx::audio::SampleRate instead
+ static_cast<unsigned int>(m_pSampleRate->get()));
}
} else {
SampleUtil::clear(pOut, iBufferSize);
diff --git a/src/engine/enginebuffer.h b/src/engine/enginebuffer.h
index f00cc47d81..f51f9a59a3 100644
--- a/src/engine/enginebuffer.h
+++ b/src/engine/enginebuffer.h
@@ -316,7 +316,7 @@ class EngineBuffer : public EngineObject {
double m_rate_old;
// Copy of length of file
- int m_trackSamplesOld;
+ double m_trackSamplesOld;
// Copy of file sample rate
double m_trackSampleRateOld;
diff --git a/src/soundio/soundmanager.cpp b/src/soundio/soundmanager.cpp
index 21288fc5da..ea7eed5707 100644
--- a/src/soundio/soundmanager.cpp
+++ b/src/soundio/soundmanager.cpp
@@ -63,7 +63,6 @@ SoundManager::SoundManager(UserSettingsPointer pConfig,
: m_pMaster(pMaster),
m_pConfig(pConfig),
m_paInitialized(false),
- m_jackSampleRate(-1),
m_config(this),
m_pErrorDevice(NULL),
m_underflowHappened(0),
@@ -238,7 +237,9 @@ QList<unsigned int> SoundManager::getSampleRates(QString api) const {
// queryDevices must have been called for this to work, but the
// ctor calls it -bkgood
QList<unsigned int> samplerates;
- samplerates.append(m_jackSampleRate);
+ if (m_jackSampleRate.isValid()) {
+ samplerates.append(m_jackSampleRate);
+ }
return samplerates;
}
return m_samplerates;
@@ -319,7 +320,8 @@ void SoundManager::queryDevicesPortaudio() {
m_devices.push_back(currentDevice);
if (!strcmp(Pa_GetHostApiInfo(deviceInfo->hostApi)->name,
MIXXX_PORTAUDIO_JACK_STRING)) {
- m_jackSampleRate = deviceInfo->defaultSampleRate;
+ m_jackSampleRate = static_cast<mixxx::audio::SampleRate::value_t>(
+ deviceInfo->defaultSampleRate);
}
}
}
diff --git a/src/soundio/soundmanager.h b/src/soundio/soundmanager.h
index ec23934c0e..2009bfc817 100644
--- a/src/soundio/soundmanager.h
+++ b/src/soundio/soundmanager.h
@@ -1,37 +1,19 @@
-/**
- * @file soundmanager.h
- * @author Albert Santoni <gamegod at users dot sf dot net>
- * @author Bill Good <bkgood at gmail dot com>
- * @date 20070815
- */
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef SOUNDMANAGER_H
-#define SOUNDMANAGER_H
+#pragma once
-#include <memory>
-
-#include <QObject>
-#include <QString>
-#include <QList>
#include <QHash>
+#include <QList>
+#include <QObject>
#include <QSharedPointer>
+#include <QString>
+#include <memory>
-#include "preferences/usersettings.h"
+#include "audio/types.h"
#include "engine/sidechain/enginenetworkstream.h"
-#include "soundio/soundmanagerconfig.h"
+#include "preferences/usersettings.h"
#include "soundio/sounddevice.h"
-#include "util/types.h"
+#include "soundio/soundmanagerconfig.h"
#include "util/cmdlineargs.h"
-
+#include "util/types.h"
class EngineMaster;
class AudioOutput;
@@ -148,7 +130,7 @@ class SoundManager : public QObject {
EngineMaster *m_pMaster;
UserSettingsPointer m_pConfig;
bool m_paInitialized;
- unsigned int m_jackSampleRate;
+ mixxx::audio::SampleRate m_jackSampleRate;
QList<SoundDevicePointer> m_devices;
QList<unsigned int> m_samplerates;
QList<CSAMPLE*> m_inputBuffers;
@@ -167,5 +149,3 @@ class SoundManager : public QObject {
ControlProxy* m_pMasterAudioLatencyOverloadCount;
ControlProxy* m_pMasterAudioLatencyOverload;
};
-
-#endif