diff options
-rw-r--r-- | src/audio/types.h | 4 | ||||
-rw-r--r-- | src/engine/channels/engineaux.cpp | 7 | ||||
-rw-r--r-- | src/engine/channels/enginedeck.cpp | 9 | ||||
-rw-r--r-- | src/engine/channels/enginemicrophone.cpp | 7 | ||||
-rw-r--r-- | src/engine/enginebuffer.h | 2 | ||||
-rw-r--r-- | src/soundio/soundmanager.cpp | 8 | ||||
-rw-r--r-- | src/soundio/soundmanager.h | 40 |
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 |