mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-25 02:04:23 +00:00
Fix a build error and some warnings when building the SamplerPluginDemo example on Windows
This commit is contained in:
parent
5cfc2d24ea
commit
563869300e
1 changed files with 70 additions and 68 deletions
|
|
@ -56,6 +56,7 @@
|
|||
#include <iomanip>
|
||||
#include <sstream>
|
||||
#include <functional>
|
||||
#include <mutex>
|
||||
|
||||
namespace IDs
|
||||
{
|
||||
|
|
@ -350,9 +351,9 @@ private:
|
|||
auto invAlpha = 1.0f - alpha;
|
||||
|
||||
// just using a very simple linear interpolation here..
|
||||
auto l = currentLevel * (inL[pos] * invAlpha + inL[nextPos] * alpha);
|
||||
auto r = (inR != nullptr) ? currentLevel * (inR[pos] * invAlpha + inR[nextPos] * alpha)
|
||||
: l;
|
||||
auto l = static_cast<float> (currentLevel * (inL[pos] * invAlpha + inL[nextPos] * alpha));
|
||||
auto r = static_cast<float> ((inR != nullptr) ? currentLevel * (inR[pos] * invAlpha + inR[nextPos] * alpha)
|
||||
: l);
|
||||
|
||||
if (outR != nullptr)
|
||||
{
|
||||
|
|
@ -360,7 +361,9 @@ private:
|
|||
outR[writePos] += r;
|
||||
}
|
||||
else
|
||||
{
|
||||
outL[writePos] += (l + r) * 0.5f;
|
||||
}
|
||||
|
||||
std::tie (currentSamplePos, currentDirection) = getNextState (currentFrequency,
|
||||
currentLoopBegin,
|
||||
|
|
@ -394,11 +397,11 @@ private:
|
|||
backward
|
||||
};
|
||||
|
||||
std::tuple<double, Direction> getNextState (double frequency,
|
||||
double loopBegin,
|
||||
double loopEnd) const
|
||||
std::tuple<double, Direction> getNextState (double freq,
|
||||
double begin,
|
||||
double end) const
|
||||
{
|
||||
auto nextPitchRatio = frequency / samplerSound->getCentreFrequencyInHz();
|
||||
auto nextPitchRatio = freq / samplerSound->getCentreFrequencyInHz();
|
||||
|
||||
auto nextSamplePos = currentSamplePos;
|
||||
auto nextDirection = currentDirection;
|
||||
|
|
@ -418,9 +421,9 @@ private:
|
|||
// Update current sample position, taking loop mode into account
|
||||
// If the loop mode was changed while we were travelling backwards, deal
|
||||
// with it gracefully.
|
||||
if (nextDirection == Direction::backward && nextSamplePos < loopBegin)
|
||||
if (nextDirection == Direction::backward && nextSamplePos < begin)
|
||||
{
|
||||
nextSamplePos = loopBegin;
|
||||
nextSamplePos = begin;
|
||||
nextDirection = Direction::forward;
|
||||
|
||||
return { nextSamplePos, nextDirection };
|
||||
|
|
@ -429,13 +432,13 @@ private:
|
|||
if (samplerSound->getLoopMode() == LoopMode::none)
|
||||
return { nextSamplePos, nextDirection };
|
||||
|
||||
if (nextDirection == Direction::forward && loopEnd < nextSamplePos && !isTailingOff())
|
||||
if (nextDirection == Direction::forward && end < nextSamplePos && !isTailingOff())
|
||||
{
|
||||
if (samplerSound->getLoopMode() == LoopMode::forward)
|
||||
nextSamplePos = loopBegin;
|
||||
nextSamplePos = begin;
|
||||
else if (samplerSound->getLoopMode() == LoopMode::pingpong)
|
||||
{
|
||||
nextSamplePos = loopEnd;
|
||||
nextSamplePos = end;
|
||||
nextDirection = Direction::backward;
|
||||
}
|
||||
}
|
||||
|
|
@ -625,8 +628,8 @@ public:
|
|||
{
|
||||
public:
|
||||
virtual ~Listener() noexcept = default;
|
||||
virtual void totalRangeChanged (Range<double> value) {}
|
||||
virtual void visibleRangeChanged (Range<double> value) {}
|
||||
virtual void totalRangeChanged (Range<double>) {}
|
||||
virtual void visibleRangeChanged (Range<double>) {}
|
||||
};
|
||||
|
||||
VisibleRangeDataModel()
|
||||
|
|
@ -691,8 +694,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
void valueTreePropertyChanged (ValueTree &treeWhosePropertyHasChanged,
|
||||
const Identifier &property) override
|
||||
void valueTreePropertyChanged (ValueTree &, const Identifier &property) override
|
||||
{
|
||||
if (property == IDs::totalRange)
|
||||
{
|
||||
|
|
@ -727,13 +729,13 @@ public:
|
|||
{
|
||||
public:
|
||||
virtual ~Listener() noexcept = default;
|
||||
virtual void synthVoicesChanged (int value) {}
|
||||
virtual void voiceStealingEnabledChanged (bool value) {}
|
||||
virtual void legacyModeEnabledChanged (bool value) {}
|
||||
virtual void mpeZoneLayoutChanged (const MPEZoneLayout& value) {}
|
||||
virtual void legacyFirstChannelChanged (int value) {}
|
||||
virtual void legacyLastChannelChanged (int value) {}
|
||||
virtual void legacyPitchbendRangeChanged (int value) {}
|
||||
virtual void synthVoicesChanged (int) {}
|
||||
virtual void voiceStealingEnabledChanged (bool) {}
|
||||
virtual void legacyModeEnabledChanged (bool) {}
|
||||
virtual void mpeZoneLayoutChanged (const MPEZoneLayout&) {}
|
||||
virtual void legacyFirstChannelChanged (int) {}
|
||||
virtual void legacyLastChannelChanged (int) {}
|
||||
virtual void legacyPitchbendRangeChanged (int) {}
|
||||
};
|
||||
|
||||
MPESettingsDataModel()
|
||||
|
|
@ -852,8 +854,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
void valueTreePropertyChanged (ValueTree &treeWhosePropertyHasChanged,
|
||||
const Identifier &property) override
|
||||
void valueTreePropertyChanged (ValueTree&, const Identifier &property) override
|
||||
{
|
||||
if (property == IDs::synthVoices)
|
||||
{
|
||||
|
|
@ -918,10 +919,10 @@ public:
|
|||
{
|
||||
public:
|
||||
virtual ~Listener() noexcept = default;
|
||||
virtual void sampleReaderChanged (std::shared_ptr<AudioFormatReaderFactory> value) {}
|
||||
virtual void centreFrequencyHzChanged (double value) {}
|
||||
virtual void loopModeChanged (LoopMode value) {}
|
||||
virtual void loopPointsSecondsChanged (Range<double> value) {}
|
||||
virtual void sampleReaderChanged (std::shared_ptr<AudioFormatReaderFactory>) {}
|
||||
virtual void centreFrequencyHzChanged (double) {}
|
||||
virtual void loopModeChanged (LoopMode) {}
|
||||
virtual void loopPointsSecondsChanged (Range<double>) {}
|
||||
};
|
||||
|
||||
explicit DataModel (AudioFormatManager& audioFormatManager)
|
||||
|
|
@ -966,8 +967,8 @@ public:
|
|||
|
||||
double getSampleLengthSeconds() const
|
||||
{
|
||||
if (auto sampleReader = getSampleReader())
|
||||
return sampleReader->lengthInSamples / sampleReader->sampleRate;
|
||||
if (auto r = getSampleReader())
|
||||
return r->lengthInSamples / r->sampleRate;
|
||||
|
||||
return 1.0;
|
||||
}
|
||||
|
|
@ -1031,8 +1032,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
void valueTreePropertyChanged (ValueTree &treeWhosePropertyHasChanged,
|
||||
const Identifier &property) override
|
||||
void valueTreePropertyChanged (ValueTree&, const Identifier& property) override
|
||||
{
|
||||
if (property == IDs::sampleReader)
|
||||
{
|
||||
|
|
@ -1438,7 +1438,8 @@ private:
|
|||
|
||||
newPath.startNewSubPath (bounds.getBottomLeft().toFloat());
|
||||
newPath.lineTo (bounds.getBottomRight().toFloat());
|
||||
Point<float> apex (bounds.getX() + (bounds.getWidth() / 2), bounds.getBottom() - triHeight);
|
||||
Point<float> apex (static_cast<float> (bounds.getX() + (bounds.getWidth() / 2)),
|
||||
static_cast<float> (bounds.getBottom() - triHeight));
|
||||
newPath.lineTo (apex);
|
||||
newPath.closeSubPath();
|
||||
|
||||
|
|
@ -1459,7 +1460,7 @@ private:
|
|||
|
||||
bool hitTest (int x, int y) override
|
||||
{
|
||||
return path.contains (x, y);
|
||||
return path.contains ((float) x, (float) y);
|
||||
}
|
||||
|
||||
void mouseDown (const MouseEvent& e) override
|
||||
|
|
@ -1511,14 +1512,14 @@ private:
|
|||
0,
|
||||
bg.darker(),
|
||||
0,
|
||||
getHeight(),
|
||||
(float) getHeight(),
|
||||
false));
|
||||
|
||||
g.fillAll();
|
||||
g.setColour (bg.brighter());
|
||||
g.drawHorizontalLine (0, 0, getWidth());
|
||||
g.drawHorizontalLine (0, 0.0f, (float) getWidth());
|
||||
g.setColour (bg.darker());
|
||||
g.drawHorizontalLine (1, 0, getWidth());
|
||||
g.drawHorizontalLine (1, 0.0f, (float) getWidth());
|
||||
g.setColour (Colours::lightgrey);
|
||||
|
||||
auto minLog = std::ceil (std::log10 (visibleRange.getVisibleRange().getLength() / maxDivisions));
|
||||
|
|
@ -1533,15 +1534,15 @@ private:
|
|||
/ visibleRange.getVisibleRange().getLength();
|
||||
|
||||
std::ostringstream out_stream;
|
||||
out_stream << std::setprecision (precision) << time;
|
||||
out_stream << std::setprecision (roundToInt (precision)) << roundToInt (time);
|
||||
|
||||
g.drawText (out_stream.str(),
|
||||
Rectangle<int> (Point<int> (xPos + 3, 0),
|
||||
Point<int> (xPos + minDivisionWidth, getHeight())),
|
||||
Rectangle<int> (Point<int> (roundToInt (xPos) + 3, 0),
|
||||
Point<int> (roundToInt (xPos + minDivisionWidth), getHeight())),
|
||||
Justification::centredLeft,
|
||||
false);
|
||||
|
||||
g.drawVerticalLine (xPos, 2, getHeight());
|
||||
g.drawVerticalLine (roundToInt (xPos), 2.0f, (float) getHeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1566,7 +1567,7 @@ private:
|
|||
visibleRange.setVisibleRange (range, nullptr);
|
||||
}
|
||||
|
||||
void visibleRangeChanged (Range<double> value) override
|
||||
void visibleRangeChanged (Range<double>) override
|
||||
{
|
||||
repaint();
|
||||
}
|
||||
|
|
@ -1610,7 +1611,7 @@ private:
|
|||
positionLoopPointMarkers();
|
||||
}
|
||||
|
||||
void loopPointMouseDown (LoopPointMarker& marker, const MouseEvent& e)
|
||||
void loopPointMouseDown (LoopPointMarker&, const MouseEvent&)
|
||||
{
|
||||
loopPointsOnMouseDown = dataModel.getLoopPointsSeconds();
|
||||
undoManager->beginNewTransaction();
|
||||
|
|
@ -1634,12 +1635,12 @@ private:
|
|||
dataModel.setLoopPointsSeconds (newLoopRange, undoManager);
|
||||
}
|
||||
|
||||
void loopPointsSecondsChanged (Range<double> value) override
|
||||
void loopPointsSecondsChanged (Range<double>) override
|
||||
{
|
||||
positionLoopPointMarkers();
|
||||
}
|
||||
|
||||
void visibleRangeChanged (Range<double> value) override
|
||||
void visibleRangeChanged (Range<double>) override
|
||||
{
|
||||
positionLoopPointMarkers();
|
||||
}
|
||||
|
|
@ -1666,7 +1667,7 @@ private:
|
|||
auto ptr = std::get<0> (tup);
|
||||
auto time = std::get<1> (tup);
|
||||
ptr->setSize (halfMarkerWidth * 2, getHeight());
|
||||
ptr->setTopLeftPosition (timeToXPosition (time) - halfMarkerWidth, 0);
|
||||
ptr->setTopLeftPosition (roundToInt (timeToXPosition (time) - halfMarkerWidth), 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1700,7 +1701,7 @@ private:
|
|||
|
||||
for (auto position : provider())
|
||||
{
|
||||
g.drawVerticalLine (timeToXPosition (position), 0, getHeight());
|
||||
g.drawVerticalLine (roundToInt (timeToXPosition (position)), 0.0f, (float) getHeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1753,7 +1754,7 @@ private:
|
|||
if (numChannels == 0)
|
||||
{
|
||||
g.setColour (Colours::white);
|
||||
g.drawFittedText ("No File Loaded", getLocalBounds(), Justification::centred, 1.0f);
|
||||
g.drawFittedText ("No File Loaded", getLocalBounds(), Justification::centred, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2085,7 +2086,7 @@ public:
|
|||
synthesiser.addVoice (new MPESamplerVoice (sound));
|
||||
}
|
||||
|
||||
void prepareToPlay (double sampleRate, int samplesPerBlock) override
|
||||
void prepareToPlay (double sampleRate, int) override
|
||||
{
|
||||
synthesiser.setCurrentPlaybackSampleRate (sampleRate);
|
||||
}
|
||||
|
|
@ -2180,25 +2181,26 @@ public:
|
|||
// Update the current playback positions
|
||||
for (auto i = 0; i != maxVoices; ++i)
|
||||
{
|
||||
MPESamplerVoice* voicePtr = nullptr;
|
||||
playbackPositions[i] = (i < numVoices && (voicePtr = dynamic_cast<MPESamplerVoice*> (synthesiser.getVoice (i))))
|
||||
? voicePtr->getCurrentSamplePosition() / loadedSamplerSound->getSample()->getSampleRate()
|
||||
: 0;
|
||||
auto* voicePtr = dynamic_cast<MPESamplerVoice*> (synthesiser.getVoice (i));
|
||||
|
||||
if (i < numVoices && voicePtr != nullptr)
|
||||
playbackPositions[i] = static_cast<float> (voicePtr->getCurrentSamplePosition() / loadedSamplerSound->getSample()->getSampleRate());
|
||||
else
|
||||
playbackPositions[i] = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
// These should be called from the GUI thread, and will block until the
|
||||
// command buffer has enough room to accept a command.
|
||||
void setSample (std::unique_ptr<AudioFormatReaderFactory> readerFactory,
|
||||
AudioFormatManager& formatManager)
|
||||
void setSample (std::unique_ptr<AudioFormatReaderFactory> fact, AudioFormatManager& formatManager)
|
||||
{
|
||||
class SetSampleCommand
|
||||
{
|
||||
public:
|
||||
SetSampleCommand (std::unique_ptr<AudioFormatReaderFactory> readerFactory,
|
||||
SetSampleCommand (std::unique_ptr<AudioFormatReaderFactory> r,
|
||||
std::unique_ptr<Sample> sample,
|
||||
std::vector<std::unique_ptr<MPESamplerVoice>> newVoices)
|
||||
: readerFactory (move (readerFactory)),
|
||||
: readerFactory (move (r)),
|
||||
sample (move (sample)),
|
||||
newVoices (move (newVoices))
|
||||
{}
|
||||
|
|
@ -2232,16 +2234,16 @@ public:
|
|||
for (auto i = 0; i != maxVoices; ++i)
|
||||
newSamplerVoices.emplace_back (new MPESamplerVoice (loadedSamplerSound));
|
||||
|
||||
if (readerFactory == nullptr)
|
||||
if (fact == nullptr)
|
||||
{
|
||||
pushCommand (SetSampleCommand (move (readerFactory),
|
||||
pushCommand (SetSampleCommand (move (fact),
|
||||
nullptr,
|
||||
move (newSamplerVoices)));
|
||||
}
|
||||
else
|
||||
{
|
||||
auto reader = readerFactory->make (formatManager);
|
||||
pushCommand (SetSampleCommand (move (readerFactory),
|
||||
auto reader = fact->make (formatManager);
|
||||
pushCommand (SetSampleCommand (move (fact),
|
||||
std::unique_ptr<Sample> (new Sample (*reader, 10.0)),
|
||||
move (newSamplerVoices)));
|
||||
}
|
||||
|
|
@ -2448,8 +2450,8 @@ private:
|
|||
{
|
||||
jassert (files.size() == 1);
|
||||
undoManager.beginNewTransaction();
|
||||
auto readerFactory = new FileAudioFormatReaderFactory (files[0]);
|
||||
dataModel.setSampleReader (std::unique_ptr<AudioFormatReaderFactory> (readerFactory),
|
||||
auto r = new FileAudioFormatReaderFactory (files[0]);
|
||||
dataModel.setSampleReader (std::unique_ptr<AudioFormatReaderFactory> (r),
|
||||
&undoManager);
|
||||
|
||||
}
|
||||
|
|
@ -2493,22 +2495,22 @@ private:
|
|||
setProcessorMPEMode();
|
||||
}
|
||||
|
||||
void mpeZoneLayoutChanged (const MPEZoneLayout& value) override
|
||||
void mpeZoneLayoutChanged (const MPEZoneLayout&) override
|
||||
{
|
||||
setProcessorMPEMode();
|
||||
}
|
||||
|
||||
void legacyFirstChannelChanged (int value) override
|
||||
void legacyFirstChannelChanged (int) override
|
||||
{
|
||||
setProcessorLegacyMode();
|
||||
}
|
||||
|
||||
void legacyLastChannelChanged (int value) override
|
||||
void legacyLastChannelChanged (int) override
|
||||
{
|
||||
setProcessorLegacyMode();
|
||||
}
|
||||
|
||||
void legacyPitchbendRangeChanged (int value) override
|
||||
void legacyPitchbendRangeChanged (int) override
|
||||
{
|
||||
setProcessorLegacyMode();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue