@@ -114,7 +114,7 @@ public: | |||
// (Our component is opaque, so we must completely fill the background with a solid colour) | |||
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); | |||
auto centreY = getHeight() / 2.0f; | |||
auto centreY = (float) getHeight() / 2.0f; | |||
auto radius = amplitude * 200.0f; | |||
if (radius >= 0.0f) | |||
@@ -131,8 +131,8 @@ public: | |||
Path wavePath; | |||
wavePath.startNewSubPath (0, centreY); | |||
for (auto x = 1.0f; x < getWidth(); ++x) | |||
wavePath.lineTo (x, centreY + amplitude * getHeight() * 2.0f | |||
for (auto x = 1.0f; x < (float) getWidth(); ++x) | |||
wavePath.lineTo (x, centreY + amplitude * (float) getHeight() * 2.0f | |||
* std::sin (x * frequency * 0.0001f)); | |||
g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); | |||
@@ -149,8 +149,8 @@ public: | |||
{ | |||
lastMousePosition = e.position; | |||
frequency = (getHeight() - e.y) * 10.0f; | |||
amplitude = jmin (0.9f, 0.2f * e.position.x / getWidth()); | |||
frequency = (float) (getHeight() - e.y) * 10.0f; | |||
amplitude = jmin (0.9f, 0.2f * e.position.x / (float) getWidth()); | |||
phaseDelta = (float) (MathConstants<double>::twoPi * frequency / sampleRate); | |||
@@ -116,7 +116,7 @@ public: | |||
if (thumbnail.getTotalLength() > 0) | |||
{ | |||
auto newScale = jmax (0.001, thumbnail.getTotalLength() * (1.0 - jlimit (0.0, 0.99, amount))); | |||
auto timeAtCentre = xToTime (getWidth() / 2.0f); | |||
auto timeAtCentre = xToTime ((float) getWidth() / 2.0f); | |||
setRange ({ timeAtCentre - newScale * 0.5, timeAtCentre + newScale * 0.5 }); | |||
} | |||
@@ -229,12 +229,12 @@ private: | |||
if (visibleRange.getLength() <= 0) | |||
return 0; | |||
return getWidth() * (float) ((time - visibleRange.getStart()) / visibleRange.getLength()); | |||
return (float) getWidth() * (float) ((time - visibleRange.getStart()) / visibleRange.getLength()); | |||
} | |||
double xToTime (const float x) const | |||
{ | |||
return (x / getWidth()) * (visibleRange.getLength()) + visibleRange.getStart(); | |||
return (x / (float) getWidth()) * (visibleRange.getLength()) + visibleRange.getStart(); | |||
} | |||
bool canMoveTransport() const noexcept | |||
@@ -209,7 +209,7 @@ public: | |||
auto noteDistance = float (getWidth()) / 128; | |||
for (auto i = 0; i < 128; ++i) | |||
{ | |||
auto x = noteDistance * i; | |||
auto x = noteDistance * (float) i; | |||
auto noteHeight = int (MidiMessage::isMidiNoteBlack (i) ? 0.7 * getHeight() : getHeight()); | |||
g.setColour (MidiMessage::isMidiNoteBlack (i) ? Colours::white : Colours::grey); | |||
@@ -302,8 +302,8 @@ private: | |||
Point<float> getCentrePositionForNote (MPENote note) const | |||
{ | |||
auto n = float (note.initialNote) + float (note.totalPitchbendInSemitones); | |||
auto x = getWidth() * n / 128; | |||
auto y = getHeight() * (1 - note.timbre.asUnsignedFloat()); | |||
auto x = (float) getWidth() * n / 128; | |||
auto y = (float) getHeight() * (1 - note.timbre.asUnsignedFloat()); | |||
return { x, y }; | |||
} | |||
@@ -656,8 +656,8 @@ private: | |||
auto xPos = zone.isLowerZone() ? 0 : zone.getLastMemberChannel() - 1; | |||
Rectangle<int> zoneRect { int (channelWidth * (xPos)), 20, | |||
int (channelWidth * (zone.numMemberChannels + 1)), getHeight() - 20 }; | |||
Rectangle<int> zoneRect { int (channelWidth * (float) xPos), 20, | |||
int (channelWidth * (float) (zone.numMemberChannels + 1)), getHeight() - 20 }; | |||
g.setColour (zoneColour); | |||
g.drawRect (zoneRect, 3); | |||
@@ -680,8 +680,8 @@ private: | |||
auto numChannels = legacyModeChannelRange.getEnd() - startChannel - 1; | |||
Rectangle<int> zoneRect (int (getChannelRectangleWidth() * startChannel), 0, | |||
int (getChannelRectangleWidth() * numChannels), getHeight()); | |||
Rectangle<int> zoneRect (int (getChannelRectangleWidth() * (float) startChannel), 0, | |||
int (getChannelRectangleWidth() * (float) numChannels), getHeight()); | |||
zoneRect.removeFromTop (20); | |||
@@ -694,7 +694,7 @@ private: | |||
//============================================================================== | |||
float getChannelRectangleWidth() const noexcept | |||
{ | |||
return float (getWidth()) / numMidiChannels; | |||
return (float) getWidth() / (float) numMidiChannels; | |||
} | |||
//============================================================================== | |||
@@ -273,7 +273,7 @@ private: | |||
g.setColour (textColour); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
if (isInput) | |||
{ | |||
@@ -201,11 +201,11 @@ public: | |||
Path generateStringPath() const | |||
{ | |||
auto y = height / 2.0f; | |||
auto y = (float) height / 2.0f; | |||
Path stringPath; | |||
stringPath.startNewSubPath (0, y); | |||
stringPath.quadraticTo (length / 2.0f, y + (std::sin (phase) * amplitude), (float) length, y); | |||
stringPath.quadraticTo ((float) length / 2.0f, y + (std::sin (phase) * amplitude), (float) length, y); | |||
return stringPath; | |||
} | |||
@@ -227,7 +227,7 @@ public: | |||
{ | |||
// this determines the visible vibration frequency. | |||
// just an arbitrary number chosen to look OK: | |||
auto phaseStep = 400.0f / length; | |||
auto phaseStep = 400.0f / (float) length; | |||
phase += phaseStep; | |||
@@ -337,7 +337,7 @@ private: | |||
if (stringLine->getBounds().contains (e.getPosition())) | |||
{ | |||
auto position = (e.position.x - stringLine->getX()) / stringLine->getWidth(); | |||
auto position = (e.position.x - (float) stringLine->getX()) / (float) stringLine->getWidth(); | |||
stringLine->stringPlucked (position); | |||
stringSynths.getUnchecked (i)->stringPlucked (position); | |||
@@ -162,7 +162,7 @@ public: | |||
for (auto y = 1; y < imageHeight; ++y) | |||
{ | |||
auto skewedProportionY = 1.0f - std::exp (std::log (y / (float) imageHeight) * 0.2f); | |||
auto skewedProportionY = 1.0f - std::exp (std::log ((float) y / (float) imageHeight) * 0.2f); | |||
auto fftDataIndex = jlimit (0, fftSize / 2, (int) (skewedProportionY * (int) fftSize / 2)); | |||
auto level = jmap (fftData[fftDataIndex], 0.0f, jmax (maxLevel.getEnd(), 1e-5f), 0.0f, 1.0f); | |||
@@ -403,8 +403,8 @@ public: | |||
if (auto grid = activeBlock->getLEDGrid()) | |||
{ | |||
// Work out scale factors to translate X and Y touches to LED indexes | |||
scaleX = (float) (grid->getNumColumns() - 1) / activeBlock->getWidth(); | |||
scaleY = (float) (grid->getNumRows() - 1) / activeBlock->getHeight(); | |||
scaleX = (float) (grid->getNumColumns() - 1) / (float) activeBlock->getWidth(); | |||
scaleY = (float) (grid->getNumRows() - 1) / (float) activeBlock->getHeight(); | |||
setLEDProgram (*activeBlock); | |||
} | |||
@@ -188,11 +188,11 @@ public: | |||
case e::north: | |||
return { 0.0f, static_cast<float> (port.index) }; | |||
case e::east: | |||
return { static_cast<float> (-1.0f - port.index), static_cast<float> (block->getWidth()) }; | |||
return { static_cast<float> (-1.0f - (float) port.index), static_cast<float> (block->getWidth()) }; | |||
case e::south: | |||
return { static_cast<float> (0.0f - block->getHeight()), static_cast<float> (port.index) }; | |||
return { static_cast<float> (0.0f - (float) block->getHeight()), static_cast<float> (port.index) }; | |||
case e::west: | |||
return { static_cast<float> (-1.0f - port.index), 0.0f }; | |||
return { static_cast<float> (-1.0f - (float) port.index), 0.0f }; | |||
default: | |||
break; | |||
} | |||
@@ -204,13 +204,13 @@ public: | |||
switch (port.edge) | |||
{ | |||
case e::north: | |||
return { static_cast<float> (-1.0f - port.index), 0.0f }; | |||
return { static_cast<float> (-1.0f - (float) port.index), 0.0f }; | |||
case e::east: | |||
return { static_cast<float> (0.0f - block->getWidth()), static_cast<float> (-1.0f - port.index) }; | |||
return { static_cast<float> (0.0f - (float) block->getWidth()), static_cast<float> (-1.0f - (float) port.index) }; | |||
case e::south: | |||
return { static_cast<float> (-1.0f - port.index), static_cast<float> (0.0f - block->getHeight()) }; | |||
return { static_cast<float> (-1.0f - (float) port.index), static_cast<float> (0.0f - (float) block->getHeight()) }; | |||
case e::west: | |||
return { 0.0f, static_cast<float> (-1.0f - port.index) }; | |||
return { 0.0f, static_cast<float> (-1.0f - (float) port.index) }; | |||
default: | |||
break; | |||
} | |||
@@ -222,11 +222,11 @@ public: | |||
switch (port.edge) | |||
{ | |||
case e::north: | |||
return { 0.0f, static_cast<float> (-1.0f - port.index) }; | |||
return { 0.0f, static_cast<float> (-1.0f - (float) port.index) }; | |||
case e::east: | |||
return { static_cast<float> (port.index), static_cast<float> (0 - block->getWidth()) }; | |||
return { static_cast<float> (port.index), static_cast<float> (0 - (float) block->getWidth()) }; | |||
case e::south: | |||
return { static_cast<float> (block->getHeight()), static_cast<float> (-1.0f - port.index) }; | |||
return { static_cast<float> (block->getHeight()), static_cast<float> (-1.0f - (float) port.index) }; | |||
case e::west: | |||
return { static_cast<float> (port.index), 0.0f }; | |||
default: | |||
@@ -309,10 +309,10 @@ public: | |||
g.fillAll (Colours::black); | |||
// size ration between physical and on-screen blocks | |||
Point<float> ratio (r.getWidth() / block->getWidth(), | |||
r.getHeight() / block->getHeight()); | |||
Point<float> ratio (r.getWidth() / (float) block->getWidth(), | |||
r.getHeight() / (float) block->getHeight()); | |||
auto maxCircleSize = block->getWidth() / 3.0f; | |||
auto maxCircleSize = (float) block->getWidth() / 3.0f; | |||
// iterate over the list of current touches and draw them on the onscreen Block | |||
for (auto touch : touches) | |||
@@ -367,7 +367,7 @@ public: | |||
addAndMakeVisible (roundedRectangleButton); | |||
// Display the battery level on the LEDRow | |||
auto numLedsToTurnOn = static_cast<int> (numLeds * block->getBatteryLevel()); | |||
auto numLedsToTurnOn = static_cast<int> ((float) numLeds * block->getBatteryLevel()); | |||
// add LEDs | |||
for (auto i = 0; i < numLeds; ++i) | |||
@@ -442,7 +442,7 @@ public: | |||
void handleBatteryLevelUpdate (float batteryLevel) override | |||
{ | |||
// Update the number of LEDs that are on to represent the battery level | |||
auto numLedsOn = static_cast<int> (numLeds * batteryLevel); | |||
auto numLedsOn = static_cast<int> ((float) numLeds * batteryLevel); | |||
if (numLedsOn != previousNumLedsOn) | |||
for (auto i = 0; i < numLeds; ++i) | |||
@@ -600,11 +600,11 @@ public: | |||
noBlocksLabel.setJustificationType (Justification::centred); | |||
zoomOutButton.setButtonText ("+"); | |||
zoomOutButton.onClick = [this] { blockUnitInPixels = (int) (blockUnitInPixels * 1.05f); resized(); }; | |||
zoomOutButton.onClick = [this] { blockUnitInPixels = (int) ((float) blockUnitInPixels * 1.05f); resized(); }; | |||
zoomOutButton.setAlwaysOnTop (true); | |||
zoomInButton.setButtonText ("-"); | |||
zoomInButton.onClick = [this] { blockUnitInPixels = (int) (blockUnitInPixels * 0.95f); resized(); }; | |||
zoomInButton.onClick = [this] { blockUnitInPixels = (int) ((float) blockUnitInPixels * 0.95f); resized(); }; | |||
zoomInButton.setAlwaysOnTop (true); | |||
// Register BlocksMonitorDemo as a listener to the PhysicalTopologySource object | |||
@@ -670,8 +670,8 @@ public: | |||
else if (rotation == 90) | |||
blockSize = blockComponent->block->getHeight(); | |||
if (topLeft.x - blockSize < maxArea.getX()) | |||
maxArea.setX (topLeft.x - blockSize); | |||
if (topLeft.x - (float) blockSize < maxArea.getX()) | |||
maxArea.setX (topLeft.x - (float) blockSize); | |||
blockSize = 0; | |||
if (rotation == 0) | |||
@@ -679,8 +679,8 @@ public: | |||
else if (rotation == 270) | |||
blockSize = blockComponent->block->getHeight(); | |||
if (topLeft.x + blockSize > maxArea.getRight()) | |||
maxArea.setWidth (topLeft.x + blockSize); | |||
if (topLeft.x + (float) blockSize > maxArea.getRight()) | |||
maxArea.setWidth (topLeft.x + (float) blockSize); | |||
blockSize = 0; | |||
if (rotation == 180) | |||
@@ -688,8 +688,8 @@ public: | |||
else if (rotation == 270) | |||
blockSize = blockComponent->block->getWidth(); | |||
if (topLeft.y - blockSize < maxArea.getY()) | |||
maxArea.setY (topLeft.y - blockSize); | |||
if (topLeft.y - (float) blockSize < maxArea.getY()) | |||
maxArea.setY (topLeft.y - (float) blockSize); | |||
blockSize = 0; | |||
if (rotation == 0) | |||
@@ -697,14 +697,14 @@ public: | |||
else if (rotation == 90) | |||
blockSize = blockComponent->block->getWidth(); | |||
if (topLeft.y + blockSize > maxArea.getBottom()) | |||
maxArea.setHeight (topLeft.y + blockSize); | |||
if (topLeft.y + (float) blockSize > maxArea.getBottom()) | |||
maxArea.setHeight (topLeft.y + (float) blockSize); | |||
} | |||
auto totalWidth = std::abs (maxArea.getX()) + maxArea.getWidth(); | |||
auto totalHeight = std::abs (maxArea.getY()) + maxArea.getHeight(); | |||
blockUnitInPixels = static_cast<int> (jmin ((getHeight() / totalHeight) - 50, (getWidth() / totalWidth) - 50)); | |||
blockUnitInPixels = static_cast<int> (jmin (((float) getHeight() / totalHeight) - 50, ((float) getWidth() / totalWidth) - 50)); | |||
masterBlockComponent->centreWithSize (masterBlockComponent->block->getWidth() * blockUnitInPixels, | |||
masterBlockComponent->block->getHeight() * blockUnitInPixels); | |||
@@ -721,8 +721,8 @@ public: | |||
if (blockComponent == masterBlockComponent) | |||
continue; | |||
blockComponent->setBounds (masterBlockComponent->getX() + static_cast<int> (blockComponent->topLeft.x * blockUnitInPixels), | |||
masterBlockComponent->getY() + static_cast<int> (blockComponent->topLeft.y * blockUnitInPixels), | |||
blockComponent->setBounds (masterBlockComponent->getX() + static_cast<int> (blockComponent->topLeft.x * (float) blockUnitInPixels), | |||
masterBlockComponent->getY() + static_cast<int> (blockComponent->topLeft.y * (float) blockUnitInPixels), | |||
blockComponent->block->getWidth() * blockUnitInPixels, | |||
blockComponent->block->getHeight() * blockUnitInPixels); | |||
@@ -665,8 +665,8 @@ public: | |||
if (auto grid = activeBlock->getLEDGrid()) | |||
{ | |||
// Work out scale factors to translate X and Y touches to LED indexes | |||
scaleX = static_cast<float> (grid->getNumColumns() - 1) / activeBlock->getWidth(); | |||
scaleY = static_cast<float> (grid->getNumRows() - 1) / activeBlock->getHeight(); | |||
scaleX = static_cast<float> (grid->getNumColumns() - 1) / (float) activeBlock->getWidth(); | |||
scaleY = static_cast<float> (grid->getNumRows() - 1) / (float) activeBlock->getHeight(); | |||
setLEDProgram (*activeBlock); | |||
} | |||
@@ -731,7 +731,7 @@ private: | |||
layout.touchColour); | |||
// Send pitch change and pressure values to the Audio class | |||
audio.pitchChange (midiChannel, (touch.x - touch.startX) / activeBlock->getWidth()); | |||
audio.pitchChange (midiChannel, (touch.x - touch.startX) / (float) activeBlock->getWidth()); | |||
audio.pressureChange (midiChannel, touch.z); | |||
} | |||
@@ -31,23 +31,19 @@ function(_juce_add_pips) | |||
CONFIGURE_DEPENDS LIST_DIRECTORIES false | |||
"${CMAKE_CURRENT_SOURCE_DIR}/*.h") | |||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") | |||
list(REMOVE_ITEM headers | |||
"${CMAKE_CURRENT_SOURCE_DIR}/CameraDemo.h" | |||
"${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h" | |||
"${CMAKE_CURRENT_SOURCE_DIR}/VideoDemo.h") | |||
endif() | |||
foreach(header IN ITEMS ${headers}) | |||
juce_add_pip(${header} added_target) | |||
target_link_libraries(${added_target} PRIVATE | |||
target_link_libraries(${added_target} PUBLIC | |||
juce::juce_recommended_config_flags | |||
juce::juce_recommended_lto_flags | |||
juce::juce_recommended_warning_flags) | |||
get_target_property(active_targets ${added_target} JUCE_ACTIVE_PLUGIN_TARGETS) | |||
if(active_targets) | |||
foreach(plugin_target IN LISTS active_targets) | |||
target_link_libraries(${plugin_target} PRIVATE | |||
juce::juce_recommended_config_flags | |||
juce::juce_recommended_lto_flags | |||
juce::juce_recommended_warning_flags) | |||
endforeach() | |||
endif() | |||
endforeach() | |||
endfunction() | |||
@@ -80,13 +80,13 @@ private: | |||
Path wavePath; | |||
auto waveStep = 10.0f; | |||
auto waveY = getHeight() * 0.44f; | |||
auto waveY = (float) getHeight() * 0.44f; | |||
int i = 0; | |||
for (auto x = waveStep * 0.5f; x < getWidth(); x += waveStep) | |||
for (auto x = waveStep * 0.5f; x < (float) getWidth(); x += waveStep) | |||
{ | |||
auto y1 = waveY + getHeight() * 0.05f * std::sin (i * 0.38f + elapsed); | |||
auto y2 = waveY + getHeight() * 0.10f * std::sin (i * 0.20f + elapsed * 2.0f); | |||
auto y1 = waveY + (float) getHeight() * 0.05f * std::sin ((float) i * 0.38f + elapsed); | |||
auto y2 = waveY + (float) getHeight() * 0.10f * std::sin ((float) i * 0.20f + elapsed * 2.0f); | |||
wavePath.addLineSegment ({ x, y1, x, y2 }, 2.0f); | |||
wavePath.addEllipse (x - waveStep * 0.3f, y1 - waveStep * 0.3f, waveStep * 0.6f, waveStep * 0.6f); | |||
@@ -131,10 +131,10 @@ private: | |||
setFullScreen (true); | |||
Desktop::getInstance().setOrientationsEnabled (Desktop::rotatedClockwise | Desktop::rotatedAntiClockwise); | |||
#else | |||
setBounds ((int) (0.1f * getParentWidth()), | |||
(int) (0.1f * getParentHeight()), | |||
jmax (850, (int) (0.5f * getParentWidth())), | |||
jmax (600, (int) (0.7f * getParentHeight()))); | |||
setBounds ((int) (0.1f * (float) getParentWidth()), | |||
(int) (0.1f * (float) getParentHeight()), | |||
jmax (850, (int) (0.5f * (float) getParentWidth())), | |||
jmax (600, (int) (0.7f * (float) getParentHeight()))); | |||
#endif | |||
setContentOwned (new MainComponent(), false); | |||
@@ -119,8 +119,8 @@ private: | |||
graphicsTitleLabel.setBounds (bounds.removeFromTop (30)); | |||
bounds.removeFromTop (space); | |||
auto xPos = bounds.getX() + (bounds.getWidth() * 0.35f); | |||
auto width = bounds.getWidth() * 0.6f; | |||
auto xPos = (float) bounds.getX() + ((float) bounds.getWidth() * 0.35f); | |||
auto width = (float) bounds.getWidth() * 0.6f; | |||
lookAndFeelSelector.setBounds (bounds.removeFromTop (itemHeight).withWidth ((int) width).withX ((int) xPos)); | |||
@@ -80,13 +80,13 @@ public: | |||
for (auto i = 0; i < fishLength; ++i) | |||
{ | |||
auto radius = 100 + 10 * std::sin (getFrameCounter() * 0.1f + i * 0.5f); | |||
auto radius = 100 + 10 * std::sin ((float) getFrameCounter() * 0.1f + (float) i * 0.5f); | |||
Point<float> p (getWidth() / 2.0f + 1.5f * radius * std::sin (getFrameCounter() * 0.02f + i * 0.12f), | |||
getHeight() / 2.0f + 1.0f * radius * std::cos (getFrameCounter() * 0.04f + i * 0.12f)); | |||
Point<float> p ((float) getWidth() / 2.0f + 1.5f * radius * std::sin ((float) getFrameCounter() * 0.02f + (float) i * 0.12f), | |||
(float) getHeight() / 2.0f + 1.0f * radius * std::cos ((float) getFrameCounter() * 0.04f + (float) i * 0.12f)); | |||
// draw the circles along the fish | |||
g.fillEllipse (p.x - i, p.y - i, 2.0f + 2.0f * i, 2.0f + 2.0f * i); | |||
g.fillEllipse (p.x - (float) i, p.y - (float) i, 2.0f + 2.0f * (float) i, 2.0f + 2.0f * (float) i); | |||
if (i == 0) | |||
spinePath.startNewSubPath (p); // if this is the first point, start a new path.. | |||
@@ -123,10 +123,10 @@ struct BallComponent : public Component | |||
void paint (Graphics& g) override | |||
{ | |||
g.setColour (colour); | |||
g.fillEllipse (2.0f, 2.0f, getWidth() - 4.0f, getHeight() - 4.0f); | |||
g.fillEllipse (2.0f, 2.0f, (float) getWidth() - 4.0f, (float) getHeight() - 4.0f); | |||
g.setColour (Colours::darkgrey); | |||
g.drawEllipse (2.0f, 2.0f, getWidth() - 4.0f, getHeight() - 4.0f, 1.0f); | |||
g.drawEllipse (2.0f, 2.0f, (float) getWidth() - 4.0f, (float) getHeight() - 4.0f, 1.0f); | |||
} | |||
Point<float> position, speed; | |||
@@ -262,10 +262,10 @@ private: | |||
auto newIndex = (componentsToAnimate.indexOf (component) + 3 * cycleCount) | |||
% componentsToAnimate.size(); | |||
auto angle = newIndex * MathConstants<float>::twoPi / componentsToAnimate.size(); | |||
auto angle = (float) newIndex * MathConstants<float>::twoPi / (float) componentsToAnimate.size(); | |||
auto radius = useWidth ? width * 0.35f | |||
: height * 0.35f; | |||
auto radius = useWidth ? (float) width * 0.35f | |||
: (float) height * 0.35f; | |||
Rectangle<int> r (getWidth() / 2 + (int) (radius * std::sin (angle)) - 50, | |||
getHeight() / 2 + (int) (radius * std::cos (angle)) - 50, | |||
@@ -125,13 +125,13 @@ public: | |||
auto nextPos = pos + delta; | |||
if (nextPos.x < 10 || nextPos.x + 10 > getWidth()) | |||
if (nextPos.x < 10 || nextPos.x + 10 > (float) getWidth()) | |||
{ | |||
delta.x = -delta.x; | |||
nextPos.x = pos.x + delta.x; | |||
} | |||
if (nextPos.y < 50 || nextPos.y + 10 > getHeight()) | |||
if (nextPos.y < 50 || nextPos.y + 10 > (float) getHeight()) | |||
{ | |||
delta.y = -delta.y; | |||
nextPos.y = pos.y + delta.y; | |||
@@ -234,17 +234,17 @@ public: | |||
float amplitudeToY (float amp) const noexcept | |||
{ | |||
return getHeight() - (amp + 1.0f) * getHeight() / 2.0f; | |||
return (float) getHeight() - (amp + 1.0f) * (float) getHeight() / 2.0f; | |||
} | |||
float xToAmplitude (float x) const noexcept | |||
{ | |||
return jlimit (-1.0f, 1.0f, 2.0f * (getWidth() - x) / getWidth() - 1.0f); | |||
return jlimit (-1.0f, 1.0f, 2.0f * ((float) getWidth() - x) / (float) getWidth() - 1.0f); | |||
} | |||
float yToAmplitude (float y) const noexcept | |||
{ | |||
return jlimit (-1.0f, 1.0f, 2.0f * (getHeight() - y) / getHeight() - 1.0f); | |||
return jlimit (-1.0f, 1.0f, 2.0f * ((float) getHeight() - y) / (float) getHeight() - 1.0f); | |||
} | |||
void timerCallback() override | |||
@@ -197,8 +197,8 @@ public: | |||
AttributedString s; | |||
s.setWordWrap (AttributedString::none); | |||
s.setJustification (Justification::centredLeft); | |||
s.append (font.getTypefaceName(), font.withHeight (height * 0.7f), Colours::black); | |||
s.append (" " + font.getTypefaceName(), Font (height * 0.5f, Font::italic), Colours::grey); | |||
s.append (font.getTypefaceName(), font.withHeight ((float) height * 0.7f), Colours::black); | |||
s.append (" " + font.getTypefaceName(), Font ((float) height * 0.5f, Font::italic), Colours::grey); | |||
s.draw (g, Rectangle<int> (width, height).expanded (-4, 50).toFloat()); | |||
} | |||
@@ -125,8 +125,8 @@ public: | |||
AffineTransform getTransform() | |||
{ | |||
auto hw = 0.5f * getWidth(); | |||
auto hh = 0.5f * getHeight(); | |||
auto hw = 0.5f * (float) getWidth(); | |||
auto hh = 0.5f * (float) getHeight(); | |||
AffineTransform t; | |||
@@ -197,7 +197,7 @@ public: | |||
"Time: " + String (averageTimeMs, 2) | |||
+ " ms\nEffective FPS: " + String (effectiveFPS, 1) | |||
+ "\nActual FPS: " + String (averageActualFPS, 1), | |||
0, 10.0f, getWidth() - 10.0f, (float) getHeight(), Justification::topRight, 3); | |||
0, 10.0f, (float) getWidth() - 10.0f, (float) getHeight(), Justification::topRight, 3); | |||
g.setColour (Colours::white.withAlpha (0.5f)); | |||
g.fillRect (ga.getBoundingBox (0, ga.getNumGlyphs(), true).getSmallestIntegerContainer().expanded (4)); | |||
@@ -213,8 +213,8 @@ public: | |||
auto w = getWidth() / 2; | |||
auto h = getHeight() / 2; | |||
auto x = (int) (w * clipRectX.getValue()); | |||
auto y = (int) (h * clipRectY.getValue()); | |||
auto x = (int) ((float) w * clipRectX.getValue()); | |||
auto y = (int) ((float) h * clipRectY.getValue()); | |||
g.reduceClipRegion (x, y, w, h); | |||
} | |||
@@ -239,12 +239,12 @@ public: | |||
if (! clipImage.isValid()) | |||
createClipImage(); | |||
AffineTransform transform (AffineTransform::translation (clipImage.getWidth() / -2.0f, | |||
clipImage.getHeight() / -2.0f) | |||
AffineTransform transform (AffineTransform::translation ((float) clipImage.getWidth() / -2.0f, | |||
(float) clipImage.getHeight() / -2.0f) | |||
.rotated (clipImageAngle.getValue() * MathConstants<float>::twoPi) | |||
.scaled (2.0f + clipImageSize.getValue() * 3.0f) | |||
.translated (getWidth() * 0.5f, | |||
getHeight() * 0.5f)); | |||
.translated ((float) getWidth() * 0.5f, | |||
(float) getHeight() * 0.5f)); | |||
g.reduceClipRegion (clipImage, transform); | |||
} | |||
@@ -297,17 +297,17 @@ public: | |||
g.fillRect (-rectSize, -rectSize, rectSize, rectSize); | |||
g.setGradientFill (ColourGradient (colour1, 10.0f, (float) -rectSize, | |||
colour2, 10.0f + rectSize, 0.0f, false)); | |||
colour2, 10.0f + (float) rectSize, 0.0f, false)); | |||
g.setOpacity (getAlpha()); | |||
g.fillRect (10, -rectSize, rectSize, rectSize); | |||
g.setGradientFill (ColourGradient (colour1, rectSize * -0.5f, 10.0f + rectSize * 0.5f, | |||
colour2, 0, 10.0f + rectSize, true)); | |||
g.setGradientFill (ColourGradient (colour1, (float) rectSize * -0.5f, 10.0f + (float) rectSize * 0.5f, | |||
colour2, 0, 10.0f + (float) rectSize, true)); | |||
g.setOpacity (getAlpha()); | |||
g.fillRect (-rectSize, 10, rectSize, rectSize); | |||
g.setGradientFill (ColourGradient (colour1, 10.0f, 10.0f, | |||
colour2, 10.0f + rectSize, 10.0f + rectSize, false)); | |||
colour2, 10.0f + (float) rectSize, 10.0f + (float) rectSize, false)); | |||
g.setOpacity (getAlpha()); | |||
g.drawRect (10, 10, rectSize, rectSize, 5); | |||
} | |||
@@ -349,10 +349,10 @@ public: | |||
Colour c2 (gradientColours[3].getValue(), gradientColours[4].getValue(), gradientColours[5].getValue(), 1.0f); | |||
Colour c3 (gradientColours[6].getValue(), gradientColours[7].getValue(), gradientColours[8].getValue(), 1.0f); | |||
auto x1 = gradientPositions[0].getValue() * getWidth() * 0.25f; | |||
auto y1 = gradientPositions[1].getValue() * getHeight() * 0.25f; | |||
auto x2 = gradientPositions[2].getValue() * getWidth() * 0.75f; | |||
auto y2 = gradientPositions[3].getValue() * getHeight() * 0.75f; | |||
auto x1 = gradientPositions[0].getValue() * (float) getWidth() * 0.25f; | |||
auto y1 = gradientPositions[1].getValue() * (float) getHeight() * 0.25f; | |||
auto x2 = gradientPositions[2].getValue() * (float) getWidth() * 0.75f; | |||
auto y2 = gradientPositions[3].getValue() * (float) getHeight() * 0.75f; | |||
ColourGradient gradient (c1, x1, y1, | |||
c2, x2, y2, | |||
@@ -530,8 +530,8 @@ public: | |||
for (int x = 0; x < getWidth(); ++x) | |||
{ | |||
auto y = getHeight() * 0.3f; | |||
auto length = y * std::abs (std::sin (x / 100.0f + 2.0f * pos)); | |||
auto y = (float) getHeight() * 0.3f; | |||
auto length = y * std::abs (std::sin ((float) x / 100.0f + 2.0f * pos)); | |||
verticalLines.addWithoutMerging (Rectangle<float> ((float) x, y - length * 0.5f, 1.0f, length)); | |||
} | |||
@@ -547,8 +547,8 @@ public: | |||
for (int y = 0; y < getHeight(); ++y) | |||
{ | |||
auto x = getWidth() * 0.3f; | |||
auto length = x * std::abs (std::sin (y / 100.0f + 2.0f * pos)); | |||
auto x = (float) getWidth() * 0.3f; | |||
auto length = x * std::abs (std::sin ((float) y / 100.0f + 2.0f * pos)); | |||
horizontalLines.addWithoutMerging (Rectangle<float> (x - length * 0.5f, (float) y, length, 1.0f)); | |||
} | |||
@@ -90,8 +90,8 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
auto flatOnTop = button.isConnectedOnTop(); | |||
auto flatOnBottom = button.isConnectedOnBottom(); | |||
auto width = button.getWidth() - 1.0f; | |||
auto height = button.getHeight() - 1.0f; | |||
auto width = (float) button.getWidth() - 1.0f; | |||
auto height = (float) button.getHeight() - 1.0f; | |||
if (width > 0 && height > 0) | |||
{ | |||
@@ -168,13 +168,13 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
if (style == Slider::LinearVertical) | |||
{ | |||
kx = x + width * 0.5f; | |||
kx = (float) x + (float) width * 0.5f; | |||
ky = sliderPos; | |||
} | |||
else | |||
{ | |||
kx = sliderPos; | |||
ky = y + height * 0.5f; | |||
ky = (float) y + (float) height * 0.5f; | |||
} | |||
auto outlineThickness = slider.isEnabled() ? 0.8f : 0.3f; | |||
@@ -203,9 +203,9 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
Path p; | |||
if (style == Slider::LinearBarVertical) | |||
p.addRectangle ((float) x, sliderPos, (float) width, 1.0f + height - sliderPos); | |||
p.addRectangle ((float) x, sliderPos, (float) width, 1.0f + (float) height - sliderPos); | |||
else | |||
p.addRectangle ((float) x, (float) y, sliderPos - x, (float) height); | |||
p.addRectangle ((float) x, (float) y, sliderPos - (float) x, (float) height); | |||
auto baseColour = slider.findColour (Slider::rotarySliderFillColourId) | |||
.withMultipliedSaturation (slider.isEnabled() ? 1.0f : 0.5f) | |||
@@ -214,7 +214,7 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
g.setColour (baseColour); | |||
g.fillPath (p); | |||
auto lineThickness = jmin (15.0f, jmin (width, height) * 0.45f) * 0.1f; | |||
auto lineThickness = jmin (15.0f, (float) jmin (width, height) * 0.45f) * 0.1f; | |||
g.drawRect (slider.getLocalBounds().toFloat(), lineThickness); | |||
} | |||
else | |||
@@ -230,13 +230,13 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
float /*maxSliderPos*/, | |||
const Slider::SliderStyle /*style*/, Slider& slider) override | |||
{ | |||
auto sliderRadius = getSliderThumbRadius (slider) - 5.0f; | |||
auto sliderRadius = (float) getSliderThumbRadius (slider) - 5.0f; | |||
Path on, off; | |||
if (slider.isHorizontal()) | |||
{ | |||
auto iy = y + height * 0.5f - sliderRadius * 0.5f; | |||
Rectangle<float> r (x - sliderRadius * 0.5f, iy, width + sliderRadius, sliderRadius); | |||
auto iy = (float) y + (float) height * 0.5f - sliderRadius * 0.5f; | |||
Rectangle<float> r ((float) x - sliderRadius * 0.5f, iy, (float) width + sliderRadius, sliderRadius); | |||
auto onW = r.getWidth() * ((float) slider.valueToProportionOfLength (slider.getValue())); | |||
on.addRectangle (r.removeFromLeft (onW)); | |||
@@ -244,8 +244,8 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
} | |||
else | |||
{ | |||
auto ix = x + width * 0.5f - sliderRadius * 0.5f; | |||
Rectangle<float> r (ix, y - sliderRadius * 0.5f, sliderRadius, height + sliderRadius); | |||
auto ix = (float) x + (float) width * 0.5f - sliderRadius * 0.5f; | |||
Rectangle<float> r (ix, (float) y - sliderRadius * 0.5f, sliderRadius, (float) height + sliderRadius); | |||
auto onH = r.getHeight() * ((float) slider.valueToProportionOfLength (slider.getValue())); | |||
on.addRectangle (r.removeFromBottom (onH)); | |||
@@ -262,9 +262,9 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
void drawRotarySlider (Graphics& g, int x, int y, int width, int height, float sliderPos, | |||
float rotaryStartAngle, float rotaryEndAngle, Slider& slider) override | |||
{ | |||
auto radius = jmin (width / 2, height / 2) - 2.0f; | |||
auto centreX = x + width * 0.5f; | |||
auto centreY = y + height * 0.5f; | |||
auto radius = (float) jmin (width / 2, height / 2) - 2.0f; | |||
auto centreX = (float) x + (float) width * 0.5f; | |||
auto centreY = (float) y + (float) height * 0.5f; | |||
auto rx = centreX - radius; | |||
auto ry = centreY - radius; | |||
auto rw = radius * 2.0f; | |||
@@ -283,7 +283,7 @@ struct CustomLookAndFeel : public LookAndFeel_V4 | |||
} | |||
{ | |||
auto lineThickness = jmin (15.0f, jmin (width, height) * 0.45f) * 0.1f; | |||
auto lineThickness = jmin (15.0f, (float) jmin (width, height) * 0.45f) * 0.1f; | |||
Path outlineArc; | |||
outlineArc.addPieSegment (rx, ry, rw, rw, rotaryStartAngle, rotaryEndAngle, 0.0); | |||
g.strokePath (outlineArc, PathStrokeType (lineThickness)); | |||
@@ -307,8 +307,8 @@ struct SquareLookAndFeel : public CustomLookAndFeel | |||
if (isButtonDown || isMouseOverButton) | |||
baseColour = baseColour.contrasting (isButtonDown ? 0.2f : 0.1f); | |||
auto width = button.getWidth() - 1.0f; | |||
auto height = button.getHeight() - 1.0f; | |||
auto width = (float) button.getWidth() - 1.0f; | |||
auto height = (float) button.getHeight() - 1.0f; | |||
if (width > 0 && height > 0) | |||
{ | |||
@@ -372,14 +372,14 @@ struct SquareLookAndFeel : public CustomLookAndFeel | |||
if (style == Slider::LinearVertical) | |||
{ | |||
kx = x + width * 0.5f; | |||
kx = (float) x + (float) width * 0.5f; | |||
ky = sliderPos; | |||
g.fillRect (Rectangle<float> (kx - sliderRadius, ky - 2.5f, sliderRadius * 2.0f, 5.0f)); | |||
} | |||
else | |||
{ | |||
kx = sliderPos; | |||
ky = y + height * 0.5f; | |||
ky = (float) y + (float) height * 0.5f; | |||
g.fillRect (Rectangle<float> (kx - 2.5f, ky - sliderRadius, 5.0f, sliderRadius * 2.0f)); | |||
} | |||
} | |||
@@ -393,10 +393,10 @@ struct SquareLookAndFeel : public CustomLookAndFeel | |||
void drawRotarySlider (Graphics& g, int x, int y, int width, int height, float sliderPos, | |||
float rotaryStartAngle, float rotaryEndAngle, Slider& slider) override | |||
{ | |||
auto diameter = jmin (width, height) - 4.0f; | |||
auto diameter = (float) jmin (width, height) - 4.0f; | |||
auto radius = (diameter / 2.0f) * std::cos (MathConstants<float>::pi / 4.0f); | |||
auto centreX = x + width * 0.5f; | |||
auto centreY = y + height * 0.5f; | |||
auto centreX = (float) x + (float) width * 0.5f; | |||
auto centreY = (float) y + (float) height * 0.5f; | |||
auto rx = centreX - radius; | |||
auto ry = centreY - radius; | |||
auto rw = radius * 2.0f; | |||
@@ -102,7 +102,7 @@ private: | |||
burgerButton.setBounds (r.removeFromRight (40).withSizeKeepingCentre (20, 20)); | |||
titleLabel.setFont (Font (getHeight() * 0.5f, Font::plain)); | |||
titleLabel.setFont (Font ((float) getHeight() * 0.5f, Font::plain)); | |||
titleLabel.setBounds (r); | |||
} | |||
@@ -92,7 +92,7 @@ public: | |||
Matrix3D<float> getViewMatrix() const | |||
{ | |||
Matrix3D<float> viewMatrix ({ 0.0f, 0.0f, -10.0f }); | |||
Matrix3D<float> rotationMatrix = viewMatrix.rotation ({ -0.3f, 5.0f * std::sin (getFrameCounter() * 0.01f), 0.0f }); | |||
Matrix3D<float> rotationMatrix = viewMatrix.rotation ({ -0.3f, 5.0f * std::sin ((float) getFrameCounter() * 0.01f), 0.0f }); | |||
return rotationMatrix * viewMatrix; | |||
} | |||
@@ -107,7 +107,7 @@ public: | |||
glEnable (GL_BLEND); | |||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | |||
glViewport (0, 0, roundToInt (desktopScale * getWidth()), roundToInt (desktopScale * getHeight())); | |||
glViewport (0, 0, roundToInt (desktopScale * (float) getWidth()), roundToInt (desktopScale * (float) getHeight())); | |||
shader->use(); | |||
@@ -655,7 +655,10 @@ struct OpenGLUtils | |||
g.drawRect (0, 0, size, size, 2); | |||
g.setColour (Colours::green); | |||
g.fillEllipse (x.getValue() * size * 0.9f, y.getValue() * size * 0.9f, size * 0.1f, size * 0.1f); | |||
g.fillEllipse (x.getValue() * (float) size * 0.9f, | |||
y.getValue() * (float) size * 0.9f, | |||
(float) size * 0.1f, | |||
(float) size * 0.1f); | |||
g.setColour (Colours::black); | |||
g.setFont (40); | |||
@@ -827,7 +830,7 @@ public: | |||
openGLContext.extensions.glActiveTexture (GL_TEXTURE0); | |||
glEnable (GL_TEXTURE_2D); | |||
glViewport (0, 0, roundToInt (desktopScale * getWidth()), roundToInt (desktopScale * getHeight())); | |||
glViewport (0, 0, roundToInt (desktopScale * (float) getWidth()), roundToInt (desktopScale * (float) getHeight())); | |||
texture.bind(); | |||
@@ -913,8 +916,8 @@ private: | |||
{ | |||
// Create an OpenGLGraphicsContext that will draw into this GL window.. | |||
std::unique_ptr<LowLevelGraphicsContext> glRenderer (createOpenGLGraphicsContext (openGLContext, | |||
roundToInt (desktopScale * getWidth()), | |||
roundToInt (desktopScale * getHeight()))); | |||
roundToInt (desktopScale * (float) getWidth()), | |||
roundToInt (desktopScale * (float) getHeight()))); | |||
if (glRenderer.get() != nullptr) | |||
{ | |||
@@ -927,11 +930,11 @@ private: | |||
// This stuff just creates a spinning star shape and fills it.. | |||
Path p; | |||
p.addStar ({ getWidth() * s.x.getValue(), | |||
getHeight() * s.y.getValue() }, | |||
p.addStar ({ (float) getWidth() * s.x.getValue(), | |||
(float) getHeight() * s.y.getValue() }, | |||
7, | |||
getHeight() * size * 0.5f, | |||
getHeight() * size, | |||
(float) getHeight() * size * 0.5f, | |||
(float) getHeight() * size, | |||
s.angle.getValue()); | |||
auto hue = s.hue.getValue(); | |||
@@ -1106,7 +1106,7 @@ private: | |||
g.fillAll (Colours::lightblue); | |||
g.setColour (LookAndFeel::getDefaultLookAndFeel().findColour (Label::textColourId)); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
g.drawText ("Draggable Thing #" + String (rowNumber + 1), | |||
5, 0, width, height, | |||
@@ -116,7 +116,7 @@ public: | |||
Random random; | |||
auto size = 10.0f + random.nextInt (30); | |||
auto size = 10.0f + (float) random.nextInt (30); | |||
ballBounds.setBounds (random.nextFloat() * 100.0f, | |||
random.nextFloat() * 100.0f, | |||
@@ -142,10 +142,10 @@ public: | |||
{ | |||
ballBounds += direction; | |||
if (ballBounds.getX() < 0) direction.x = std::abs (direction.x); | |||
if (ballBounds.getY() < 0) direction.y = std::abs (direction.y); | |||
if (ballBounds.getRight() > getParentWidth()) direction.x = -std::abs (direction.x); | |||
if (ballBounds.getBottom() > getParentHeight()) direction.y = -std::abs (direction.y); | |||
if (ballBounds.getX() < 0) direction.x = std::abs (direction.x); | |||
if (ballBounds.getY() < 0) direction.y = std::abs (direction.y); | |||
if (ballBounds.getRight() > (float) getParentWidth()) direction.x = -std::abs (direction.x); | |||
if (ballBounds.getBottom() > (float) getParentHeight()) direction.y = -std::abs (direction.y); | |||
setBounds (ballBounds.getSmallestIntegerContainer()); | |||
} | |||
@@ -115,7 +115,7 @@ public: | |||
sliderPos = (sliderPos - minSliderPos) / static_cast<float> (width); | |||
auto knobPos = static_cast<int> (sliderPos * r.getWidth()); | |||
auto knobPos = static_cast<int> (sliderPos * (float) r.getWidth()); | |||
g.setColour (sliderActivePart); | |||
g.fillRect (backgroundBar.removeFromLeft (knobPos)); | |||
@@ -303,7 +303,7 @@ private: | |||
Path rewindShape; | |||
rewindShape.addRectangle (0.0, 0.0, 5.0, buttonSize); | |||
rewindShape.addTriangle (0.0, buttonSize / 2, buttonSize, 0.0, buttonSize, buttonSize); | |||
rewindShape.addTriangle (0.0, buttonSize * 0.5f, buttonSize, 0.0, buttonSize, buttonSize); | |||
rewindButton.setShape (rewindShape, true, true, false); | |||
rewindButton.onClick = [this] | |||
{ | |||
@@ -383,19 +383,19 @@ private: | |||
area.removeFromLeft (20); | |||
transportText.setBounds (area.removeFromTop (120)); | |||
auto navigationArea = area.removeFromTop (buttonSize); | |||
auto navigationArea = area.removeFromTop ((int) buttonSize); | |||
rewindButton.setTopLeftPosition (navigationArea.getPosition()); | |||
navigationArea.removeFromLeft (buttonSize + 10); | |||
navigationArea.removeFromLeft ((int) buttonSize + 10); | |||
playButton.setTopLeftPosition (navigationArea.getPosition()); | |||
navigationArea.removeFromLeft (buttonSize + 10); | |||
navigationArea.removeFromLeft ((int) buttonSize + 10); | |||
recordButton.setTopLeftPosition (navigationArea.getPosition()); | |||
area.removeFromTop (30); | |||
auto appSwitchArea = area.removeFromTop (buttonSize); | |||
auto appSwitchArea = area.removeFromTop ((int) buttonSize); | |||
switchToHostButtonLabel.setBounds (appSwitchArea.removeFromLeft (100)); | |||
appSwitchArea.removeFromLeft (5); | |||
switchToHostButton.setBounds (appSwitchArea.removeFromLeft (buttonSize)); | |||
switchToHostButton.setBounds (appSwitchArea.removeFromLeft ((int) buttonSize)); | |||
} | |||
private: | |||
@@ -513,7 +513,7 @@ private: | |||
if (visible) | |||
{ | |||
auto icon = hostType.getHostIcon (buttonSize); | |||
auto icon = hostType.getHostIcon ((int) buttonSize); | |||
switchToHostButton.setImages(false, true, true, | |||
icon, 1.0, Colours::transparentBlack, | |||
icon, 1.0, Colours::transparentBlack, | |||
@@ -525,7 +525,7 @@ private: | |||
IAAEffectProcessor& iaaEffectProcessor; | |||
AudioProcessorValueTreeState& parameters; | |||
const int buttonSize = 30; | |||
const float buttonSize = 30.0f; | |||
const Colour defaultButtonColour = Colours::darkgrey; | |||
ShapeButton rewindButton {"Rewind", defaultButtonColour, defaultButtonColour, defaultButtonColour}; | |||
ShapeButton playButton {"Play", defaultButtonColour, defaultButtonColour, defaultButtonColour}; | |||
@@ -1005,7 +1005,7 @@ public: | |||
double getSampleLengthSeconds() const | |||
{ | |||
if (auto r = getSampleReader()) | |||
return r->lengthInSamples / r->sampleRate; | |||
return (double) r->lengthInSamples / r->sampleRate; | |||
return 1.0; | |||
} | |||
@@ -1538,7 +1538,7 @@ private: | |||
void paint (Graphics& g) override | |||
{ | |||
auto minDivisionWidth = 50.0f; | |||
auto maxDivisions = getWidth() / minDivisionWidth; | |||
auto maxDivisions = (float) getWidth() / minDivisionWidth; | |||
auto lookFeel = dynamic_cast<LookAndFeel_V4*> (&getLookAndFeel()); | |||
auto bg = lookFeel->getCurrentColourScheme() | |||
@@ -1593,7 +1593,7 @@ private: | |||
{ | |||
// Work out the scale of the new range | |||
auto unitDistance = 100.0f; | |||
auto scaleFactor = 1.0 / std::pow (2, e.getDistanceFromDragStartY() / unitDistance); | |||
auto scaleFactor = 1.0 / std::pow (2, (float) e.getDistanceFromDragStartY() / unitDistance); | |||
// Now position it so that the mouse continues to point at the same | |||
// place on the ruler. | |||
@@ -88,11 +88,15 @@ struct Test | |||
std::unique_ptr<b2World> m_world { new b2World (b2Vec2 (0.0f, -10.0f)) }; | |||
}; | |||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wimplicit-int-float-conversion") | |||
#include "../Assets/Box2DTests/AddPair.h" | |||
#include "../Assets/Box2DTests/ApplyForce.h" | |||
#include "../Assets/Box2DTests/Dominos.h" | |||
#include "../Assets/Box2DTests/Chain.h" | |||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE | |||
//============================================================================== | |||
/** This list box just displays a StringArray and broadcasts a change message when the | |||
selected row changes. | |||
@@ -118,7 +122,7 @@ public: | |||
lf.findColour (ListBox::backgroundColourId))); | |||
g.setColour (lf.findColour (ListBox::textColourId)); | |||
g.setFont (h * 0.7f); | |||
g.setFont ((float) h * 0.7f); | |||
g.drawText (tests[row], Rectangle<int> (0, 0, w, h).reduced (2), | |||
Justification::centredLeft, true); | |||
} | |||
@@ -275,7 +275,7 @@ public: | |||
Rectangle<int> r (0, 0, w, h); | |||
auto& lf = Desktop::getInstance().getDefaultLookAndFeel(); | |||
g.setColour (lf.findColour (isSelected ? TextEditor::highlightColourId : ListBox::backgroundColourId)); | |||
g.setColour (lf.findColour (isSelected ? (int) TextEditor::highlightColourId : (int) ListBox::backgroundColourId)); | |||
g.fillRect (r); | |||
g.setColour (lf.findColour (ListBox::textColourId)); | |||
@@ -461,7 +461,7 @@ public: | |||
auto r = Rectangle<int> (0, 0, w, h).reduced (4); | |||
auto& lf = Desktop::getInstance().getDefaultLookAndFeel(); | |||
g.setColour (lf.findColour (isSelected ? TextEditor::highlightColourId : ListBox::backgroundColourId)); | |||
g.setColour (lf.findColour (isSelected ? (int) TextEditor::highlightColourId : (int) ListBox::backgroundColourId)); | |||
g.fillRect (r); | |||
} | |||
@@ -121,8 +121,8 @@ private: | |||
{ | |||
const ScopedLock lock (drawing); | |||
parentWidth = comp.getWidth() - size; | |||
parentHeight = comp.getHeight() - size; | |||
parentWidth = (float) comp.getWidth() - size; | |||
parentHeight = (float) comp.getHeight() - size; | |||
} | |||
float x = 0.0f, y = 0.0f, | |||
@@ -75,7 +75,7 @@ public: | |||
// use a "colour" attribute in the xml tag for this node to set the text colour.. | |||
g.setColour (Colour::fromString (xml.getStringAttribute ("colour", "ff000000"))); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
// draw the xml element's tag name.. | |||
g.drawText (xml.getTagName(), | |||
@@ -145,7 +145,7 @@ public: | |||
g.fillAll (Colours::blue.withAlpha (0.3f)); | |||
g.setColour (Colours::black); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
// draw the element's tag name.. | |||
g.drawText (getText(), | |||
@@ -245,13 +245,13 @@ private: | |||
//============================================================================== | |||
static double getPreciseTimeMs() noexcept | |||
{ | |||
return 1000.0 * Time::getHighResolutionTicks() / (double) Time::getHighResolutionTicksPerSecond(); | |||
return 1000.0 * (double) Time::getHighResolutionTicks() / (double) Time::getHighResolutionTicksPerSecond(); | |||
} | |||
//============================================================================== | |||
double getPhysicalTimeLimitMs() const noexcept | |||
{ | |||
return 1000.0 * a.size() / currentSampleRate; | |||
return 1000.0 * (double) a.size() / currentSampleRate; | |||
} | |||
//============================================================================== | |||
@@ -139,7 +139,7 @@ struct GraphEditorPanel::PinComponent : public Component, | |||
auto colour = (pin.isMIDI() ? Colours::red : Colours::green); | |||
g.setColour (colour.withRotatedHue (busIdx / 5.0f)); | |||
g.setColour (colour.withRotatedHue ((float) busIdx / 5.0f)); | |||
g.fillPath (p); | |||
} | |||
@@ -963,7 +963,7 @@ struct GraphDocumentComponent::TooltipBar : public Component, | |||
void paint (Graphics& g) override | |||
{ | |||
g.setFont (Font (getHeight() * 0.7f, Font::bold)); | |||
g.setFont (Font ((float) getHeight() * 0.7f, Font::bold)); | |||
g.setColour (Colours::black); | |||
g.drawFittedText (tip, 10, 0, getWidth() - 12, getHeight(), Justification::centredLeft, 1); | |||
} | |||
@@ -256,8 +256,8 @@ private: | |||
{ | |||
auto total = currentCanvas.getLimits(); | |||
return { getWidth() * (p.x - total.getX()) / total.getWidth(), | |||
getHeight() * (p.y - total.getY()) / total.getHeight() }; | |||
return { (float) getWidth() * (p.x - total.getX()) / total.getWidth(), | |||
(float) getHeight() * (p.y - total.getY()) / total.getHeight() }; | |||
} | |||
Rectangle<float> virtualSpaceToLocal (Rectangle<float> p) const | |||
@@ -270,8 +270,8 @@ private: | |||
{ | |||
auto total = currentCanvas.getLimits(); | |||
return { total.getX() + total.getWidth() * (p.x / getWidth()), | |||
total.getY() + total.getHeight() * (p.y / getHeight()) }; | |||
return { total.getX() + total.getWidth() * (p.x / (float) getWidth()), | |||
total.getY() + total.getHeight() * (p.y / (float) getHeight()) }; | |||
} | |||
//============================================================================== | |||
@@ -80,8 +80,8 @@ private: | |||
OSCMessage message (userInputOSCAddress); | |||
message.addString (clientName); | |||
message.addFloat32 (e.position.x * clientArea.getWidth() / getWidth() + clientArea.getX()); | |||
message.addFloat32 (e.position.y * clientArea.getHeight() / getHeight() + clientArea.getY()); | |||
message.addFloat32 (e.position.x * clientArea.getWidth() / (float) getWidth() + clientArea.getX()); | |||
message.addFloat32 (e.position.y * clientArea.getHeight() / (float) getHeight() + clientArea.getY()); | |||
send (message); | |||
} | |||
@@ -104,8 +104,8 @@ public: | |||
passwordBox.setBounds (bounds.removeFromTop (textEditorHeight)); | |||
bounds.removeFromTop (spacing * 2); | |||
emailBox.setFont (Font (textEditorHeight / 2.5f)); | |||
passwordBox.setFont (Font (textEditorHeight / 2.5f)); | |||
emailBox.setFont (Font ((float) textEditorHeight / 2.5f)); | |||
passwordBox.setFont (Font ((float) textEditorHeight / 2.5f)); | |||
logInButton.setBounds (bounds.removeFromTop (textEditorHeight)); | |||
@@ -97,7 +97,8 @@ private: | |||
auto parentBounds = mainWindow.getBounds(); | |||
componentImage = mainWindow.createComponentSnapshot (mainWindow.getLocalBounds()) | |||
.rescaled (roundToInt (parentBounds.getWidth() / 1.75f), roundToInt (parentBounds.getHeight() / 1.75f)); | |||
.rescaled (roundToInt ((float) parentBounds.getWidth() / 1.75f), | |||
roundToInt ((float) parentBounds.getHeight() / 1.75f)); | |||
kernel.applyToImage (componentImage, componentImage, getLocalBounds()); | |||
@@ -53,7 +53,7 @@ public: | |||
} | |||
auto area = RectanglePlacement (RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize) | |||
.appliedTo (contentBounds, Rectangle<float> (4.0f, 22.0f, getWidth() - 8.0f, getHeight() - 26.0f)); | |||
.appliedTo (contentBounds, Rectangle<float> (4.0f, 22.0f, (float) getWidth() - 8.0f, (float) getHeight() - 26.0f)); | |||
Path p; | |||
p.addRectangle (area); | |||
@@ -150,7 +150,7 @@ private: | |||
const auto charArea = codeEditor->getCharacterBounds (startPosition); | |||
const int height = charArea.getHeight() + 8; | |||
Font f (height * 0.7f); | |||
Font f ((float) height * 0.7f); | |||
const int width = jmin (height * 2 + f.getStringWidth (launchButton.getName()), | |||
jmax (120, codeEditor->proportionOfWidth (0.2f))); | |||
@@ -191,7 +191,7 @@ private: | |||
.draw (g, r.removeFromLeft (getHeight()).toFloat(), false); | |||
g.setColour (Colours::white); | |||
g.setFont (getHeight() * 0.7f); | |||
g.setFont ((float) getHeight() * 0.7f); | |||
g.drawFittedText (getName(), r, Justification::centredLeft, 1); | |||
} | |||
@@ -324,9 +324,9 @@ private: | |||
g.fillRect (getLocalBounds().withTrimmedBottom (lineOffset)); | |||
Path path; | |||
const float bottomY = getHeight() - (lineOffset / 2.0f); | |||
const float bottomY = (float) getHeight() - ((float) lineOffset / 2.0f); | |||
path.addTriangle ((float) arrowXMin, bottomY, | |||
(arrowXMax + arrowXMin) / 2.0f, (float) lineOffset, | |||
(float) (arrowXMax + arrowXMin) / 2.0f, (float) lineOffset, | |||
(float) arrowXMax, bottomY); | |||
g.setColour (diagColour.withAlpha (0.8f)); | |||
@@ -403,7 +403,7 @@ public: | |||
void paint (Graphics& g) override | |||
{ | |||
Path outline; | |||
outline.addRoundedRectangle (1.0f, 1.0f, getWidth() - 2.0f, getHeight() - 2.0f, 8.0f); | |||
outline.addRoundedRectangle (1.0f, 1.0f, (float) getWidth() - 2.0f, (float) getHeight() - 2.0f, 8.0f); | |||
g.setColour (Colours::black.withAlpha (0.6f)); | |||
g.fillPath (outline); | |||
@@ -146,7 +146,7 @@ private: | |||
g.fillAll (Colours::lightblue); | |||
g.setColour (Colours::black); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
g.drawText (name, 4, 0, width - 4, height, Justification::centredLeft, true); | |||
} | |||
@@ -407,7 +407,7 @@ private: | |||
Graphics g (image); | |||
g.fillCheckerBoard (image.getBounds().toFloat(), | |||
image.getWidth() * 0.5f, image.getHeight() * 0.5f, | |||
(float) image.getWidth() * 0.5f, (float) image.getHeight() * 0.5f, | |||
Colours::white, Colours::lightgrey); | |||
g.setFont (12.0f); | |||
@@ -83,7 +83,7 @@ protected: | |||
void changed() const | |||
{ | |||
jassert (routine.getDocument() != 0); | |||
jassert (routine.getDocument() != nullptr); | |||
routine.getDocument()->changed(); | |||
} | |||
@@ -57,10 +57,10 @@ public: | |||
void paint (Graphics& g) override | |||
{ | |||
g.setColour (Colours::white); | |||
g.drawEllipse (2.0f, 2.0f, getWidth() - 4.0f, getHeight() - 4.0f, 2.0f); | |||
g.drawEllipse (2.0f, 2.0f, (float) getWidth() - 4.0f, (float) getHeight() - 4.0f, 2.0f); | |||
g.setColour (Colours::black); | |||
g.drawEllipse (1.0f, 1.0f, getWidth() - 2.0f, getHeight() - 2.0f, 2.0f); | |||
g.drawEllipse (1.0f, 1.0f, (float) getWidth() - 2.0f, (float) getHeight() - 2.0f, 2.0f); | |||
} | |||
//============================================================================== | |||
@@ -66,7 +66,7 @@ public: | |||
Colour (0xffffffff).overlaidWith (colour)); | |||
g.setColour (Colours::white.overlaidWith (colour).contrasting()); | |||
g.setFont (Font (getHeight() * 0.6f, Font::bold)); | |||
g.setFont (Font ((float) getHeight() * 0.6f, Font::bold)); | |||
g.drawFittedText (colour.toDisplayString (true), | |||
2, 1, getWidth() - 4, getHeight() - 1, | |||
Justification::centred, 1); | |||
@@ -78,7 +78,7 @@ public: | |||
g.setColour (findColour (defaultTextColourId)); | |||
} | |||
g.setFont (height * 0.6f); | |||
g.setFont ((float) height * 0.6f); | |||
g.drawText (returnValues [row] + " " + baseClasses [row] + "::" + methods [row], | |||
30, 0, width - 32, height, | |||
Justification::centredLeft, true); | |||
@@ -1037,7 +1037,7 @@ bool JucerDocumentEditor::perform (const InvocationInfo& info) | |||
else if (info.commandID == JucerCommandIDs::compOverlay100) | |||
amount = 100; | |||
document->setComponentOverlayOpacity (amount * 0.01f); | |||
document->setComponentOverlayOpacity ((float) amount * 0.01f); | |||
} | |||
break; | |||
@@ -74,8 +74,8 @@ public: | |||
*/ | |||
PositionedRectangle() noexcept | |||
: x (0.0), y (0.0), w (0.0), h (0.0), | |||
xMode (anchorAtLeftOrTop | absoluteFromParentTopLeft), | |||
yMode (anchorAtLeftOrTop | absoluteFromParentTopLeft), | |||
xMode ((int) anchorAtLeftOrTop | (int) absoluteFromParentTopLeft), | |||
yMode ((int) anchorAtLeftOrTop | (int) absoluteFromParentTopLeft), | |||
wMode (absoluteSize), hMode (absoluteSize) | |||
{ | |||
} | |||
@@ -283,23 +283,23 @@ public: | |||
const SizeMode widthMode, const SizeMode heightMode, | |||
const Rectangle<int>& target) noexcept | |||
{ | |||
if (xMode != (xAnchor | xMode_) || wMode != widthMode) | |||
if (xMode != ((int) xAnchor | (int) xMode_) || wMode != widthMode) | |||
{ | |||
double tx, tw; | |||
applyPosAndSize (tx, tw, x, w, xMode, wMode, target.getX(), target.getWidth()); | |||
xMode = (uint8) (xAnchor | xMode_); | |||
xMode = (uint8) ((int) xAnchor | (int) xMode_); | |||
wMode = (uint8) widthMode; | |||
updatePosAndSize (x, w, tx, tw, xMode, wMode, target.getX(), target.getWidth()); | |||
} | |||
if (yMode != (yAnchor | yMode_) || hMode != heightMode) | |||
if (yMode != ((int) yAnchor | (int) yMode_) || hMode != heightMode) | |||
{ | |||
double ty, th; | |||
applyPosAndSize (ty, th, y, h, yMode, hMode, target.getY(), target.getHeight()); | |||
yMode = (uint8) (yAnchor | yMode_); | |||
yMode = (uint8) ((int) yAnchor | (int) yMode_); | |||
hMode = (uint8) heightMode; | |||
updatePosAndSize (y, h, ty, th, yMode, hMode, target.getY(), target.getHeight()); | |||
@@ -65,7 +65,7 @@ public: | |||
{ | |||
g.setColour (findColour (defaultTextColourId)); | |||
g.setFont (height * 0.7f); | |||
g.setFont ((float) height * 0.7f); | |||
g.drawText (activities [rowNumber], | |||
4, 0, width - 5, height, Justification::centredLeft, true); | |||
} | |||
@@ -206,14 +206,14 @@ public: | |||
jassert (isPositiveAndBelow (panelIndex, concertinaPanel.getNumPanels())); | |||
concertinaPanel.setPanelSize (concertinaPanel.getPanel (panelIndex), | |||
roundToInt (prop * (concertinaPanel.getHeight() - 90)), false); | |||
roundToInt (prop * (float) (concertinaPanel.getHeight() - 90)), false); | |||
} | |||
float getPanelHeightProportion (int panelIndex) | |||
{ | |||
jassert (isPositiveAndBelow (panelIndex, concertinaPanel.getNumPanels())); | |||
return ((float) (concertinaPanel.getPanel (panelIndex)->getHeight()) / (concertinaPanel.getHeight() - 90)); | |||
return ((float) (concertinaPanel.getPanel (panelIndex)->getHeight()) / (float) (concertinaPanel.getHeight() - 90)); | |||
} | |||
private: | |||
@@ -60,7 +60,7 @@ public: | |||
for (auto s : columnHeaders) | |||
{ | |||
addAndMakeVisible (headers.add (new Label (s, s))); | |||
widths.add (1.0f / columnHeaders.size()); | |||
widths.add (1.0f / (float) columnHeaders.size()); | |||
} | |||
setSize (200, 40); | |||
@@ -90,7 +90,7 @@ public: | |||
auto index = 0; | |||
for (auto h : headers) | |||
{ | |||
auto headerWidth = roundToInt (width * widths.getUnchecked (index)); | |||
auto headerWidth = roundToInt ((float) width * widths.getUnchecked (index)); | |||
h->setBounds (bounds.removeFromLeft (headerWidth)); | |||
++index; | |||
} | |||
@@ -114,7 +114,7 @@ public: | |||
for (int i = 0; i < index; ++i) | |||
prop += widths.getUnchecked (i); | |||
return roundToInt (prop * getWidth()); | |||
return roundToInt (prop * (float) getWidth()); | |||
} | |||
float getProportionAtIndex (int index) | |||
@@ -372,7 +372,7 @@ private: | |||
if (availableTextWidth == 0) | |||
return 0; | |||
return static_cast<int> (nameWidth / availableTextWidth); | |||
return static_cast<int> (nameWidth / (float) availableTextWidth); | |||
} | |||
//============================================================================== | |||
@@ -155,7 +155,7 @@ private: | |||
{ | |||
if (header != nullptr) | |||
{ | |||
auto textBounds = getLocalBounds().removeFromLeft (roundToInt (header->getProportionAtIndex (0) * getWidth())); | |||
auto textBounds = getLocalBounds().removeFromLeft (roundToInt (header->getProportionAtIndex (0) * (float) getWidth())); | |||
auto iconBounds = textBounds.removeFromLeft (25); | |||
@@ -175,7 +175,7 @@ private: | |||
if (header != nullptr) | |||
{ | |||
auto bounds = getLocalBounds(); | |||
auto width = getWidth(); | |||
auto width = (float) getWidth(); | |||
bounds.removeFromLeft (roundToInt (header->getProportionAtIndex (0) * width)); | |||
@@ -70,7 +70,7 @@ HeaderComponent::~HeaderComponent() | |||
void HeaderComponent::resized() | |||
{ | |||
auto bounds = getLocalBounds(); | |||
configLabel.setFont ({ bounds.getHeight() / 3.0f }); | |||
configLabel.setFont ({ (float) bounds.getHeight() / 3.0f }); | |||
{ | |||
auto headerBounds = bounds.removeFromLeft (tabsWidth); | |||
@@ -96,11 +96,11 @@ void HeaderComponent::resized() | |||
saveAndOpenInIDEButton.setBounds (exporterBounds.removeFromRight (exporterBounds.getHeight()).reduced (2)); | |||
exporterBounds.removeFromRight (5); | |||
exporterBox.setBounds (exporterBounds.removeFromBottom (roundToInt (exporterBounds.getHeight() / 1.8f))); | |||
exporterBox.setBounds (exporterBounds.removeFromBottom (roundToInt ((float) exporterBounds.getHeight() / 1.8f))); | |||
configLabel.setBounds (exporterBounds); | |||
} | |||
userAvatar.setBounds (bounds.removeFromRight (userAvatar.isDisplaingGPLLogo() ? roundToInt (bounds.getHeight() * 1.9f) | |||
userAvatar.setBounds (bounds.removeFromRight (userAvatar.isDisplaingGPLLogo() ? roundToInt ((float) bounds.getHeight() * 1.9f) | |||
: bounds.getHeight()).reduced (2)); | |||
} | |||
@@ -125,18 +125,18 @@ public: | |||
//============================================================================== | |||
auto moduleID = project.getEnabledModules().getModuleID (rowNumber); | |||
g.drawFittedText (moduleID, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (0) * width)), Justification::centredLeft, 1); | |||
g.drawFittedText (moduleID, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (0) * (float) width)), Justification::centredLeft, 1); | |||
//============================================================================== | |||
auto version = project.getEnabledModules().getModuleInfo (moduleID).getVersion(); | |||
if (version.isEmpty()) | |||
version = "?"; | |||
g.drawFittedText (version, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (1) * width)), Justification::centredLeft, 1); | |||
g.drawFittedText (version, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (1) * (float) width)), Justification::centredLeft, 1); | |||
//============================================================================== | |||
g.drawFittedText (String (project.getEnabledModules().shouldCopyModuleFilesLocally (moduleID) ? "Yes" : "No"), | |||
bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (2) * width)), Justification::centredLeft, 1); | |||
bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (2) * (float) width)), Justification::centredLeft, 1); | |||
//============================================================================== | |||
String pathText; | |||
@@ -155,7 +155,7 @@ public: | |||
pathText = paths.joinIntoString (", "); | |||
} | |||
g.drawFittedText (pathText, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (3) * width)), Justification::centredLeft, 1); | |||
g.drawFittedText (pathText, bounds.removeFromLeft (roundToInt (listHeader->getProportionAtIndex (3) * (float) width)), Justification::centredLeft, 1); | |||
} | |||
void listBoxItemDoubleClicked (int row, const MouseEvent&) override | |||
@@ -218,7 +218,7 @@ private: | |||
{ | |||
auto buttonBounds = bounds.removeFromBottom (buttonHeight); | |||
auto buttonWidth = roundToInt (buttonBounds.getWidth() / 3.5f); | |||
auto buttonWidth = roundToInt ((float) buttonBounds.getWidth() / 3.5f); | |||
auto requiredWidth = (numButtons * buttonWidth) + ((numButtons - 1) * buttonSpacing); | |||
buttonBounds.reduce ((buttonBounds.getWidth() - requiredWidth) / 2, 0); | |||
@@ -47,7 +47,7 @@ public: | |||
const std::vector<Asset> assets; | |||
private: | |||
VersionInfo() = default; | |||
VersionInfo() = delete; | |||
static std::unique_ptr<VersionInfo> fetch (const String&); | |||
}; |
@@ -71,7 +71,7 @@ private: | |||
Colour (0xffffffff).overlaidWith (colour)); | |||
g.setColour (Colours::white.overlaidWith (colour).contrasting()); | |||
g.setFont (Font (getHeight() * 0.6f, Font::bold)); | |||
g.setFont (Font ((float) getHeight() * 0.6f, Font::bold)); | |||
g.drawFittedText (colour.toDisplayString (true), getLocalBounds().reduced (2, 1), | |||
Justification::centred, 1); | |||
} | |||
@@ -80,7 +80,7 @@ void JucerTreeViewBase::refreshSubItems() | |||
Font JucerTreeViewBase::getFont() const | |||
{ | |||
return Font (getItemHeight() * 0.6f); | |||
return Font ((float) getItemHeight() * 0.6f); | |||
} | |||
void JucerTreeViewBase::paintOpenCloseButton (Graphics& g, const Rectangle<float>& area, Colour /*backgroundColour*/, bool isMouseOver) | |||
@@ -214,7 +214,7 @@ public: | |||
auto bounds = getLocalBounds().toFloat(); | |||
auto iconBounds = bounds.removeFromLeft ((float) iconWidth).reduced (7, 5); | |||
bounds.removeFromRight (buttons.size() * bounds.getHeight()); | |||
bounds.removeFromRight ((float) buttons.size() * bounds.getHeight()); | |||
item.paintIcon (g, iconBounds); | |||
item.paintContent (g, bounds.toNearestInt()); | |||
@@ -206,7 +206,7 @@ void ProjucerLookAndFeel::drawToggleButton (Graphics& g, ToggleButton& button, b | |||
{ | |||
bounds.removeFromLeft (5); | |||
const auto fontSize = jmin (15.0f, button.getHeight() * 0.75f); | |||
const auto fontSize = jmin (15.0f, (float) button.getHeight() * 0.75f); | |||
g.setFont (fontSize); | |||
g.setColour (isPropertyComponentChild ? findColour (widgetTextColourId) | |||
@@ -475,7 +475,7 @@ Path ProjucerLookAndFeel::getArrowPath (Rectangle<float> arrowZone, const int di | |||
if (filled) | |||
path.closeSubPath(); | |||
path.applyTransform (AffineTransform::rotation (direction * MathConstants<float>::halfPi, | |||
path.applyTransform (AffineTransform::rotation ((float) direction * MathConstants<float>::halfPi, | |||
arrowZone.getCentreX(), arrowZone.getCentreY())); | |||
return path; | |||
@@ -319,7 +319,7 @@ void AudioDataConverters::convertInt32LEToFloat (const void* source, float* dest | |||
{ | |||
for (int i = 0; i < numSamples; ++i) | |||
{ | |||
dest[i] = scale * (int) ByteOrder::swapIfBigEndian (*reinterpret_cast<const uint32*> (intData)); | |||
dest[i] = scale * (float) ByteOrder::swapIfBigEndian (*reinterpret_cast<const uint32*> (intData)); | |||
intData += srcBytesPerSample; | |||
} | |||
} | |||
@@ -330,7 +330,7 @@ void AudioDataConverters::convertInt32LEToFloat (const void* source, float* dest | |||
for (int i = numSamples; --i >= 0;) | |||
{ | |||
intData -= srcBytesPerSample; | |||
dest[i] = scale * (int) ByteOrder::swapIfBigEndian (*reinterpret_cast<const uint32*> (intData)); | |||
dest[i] = scale * (float) ByteOrder::swapIfBigEndian (*reinterpret_cast<const uint32*> (intData)); | |||
} | |||
} | |||
} | |||
@@ -344,7 +344,7 @@ void AudioDataConverters::convertInt32BEToFloat (const void* source, float* dest | |||
{ | |||
for (int i = 0; i < numSamples; ++i) | |||
{ | |||
dest[i] = scale * (int) ByteOrder::swapIfLittleEndian (*reinterpret_cast<const uint32*> (intData)); | |||
dest[i] = scale * (float) ByteOrder::swapIfLittleEndian (*reinterpret_cast<const uint32*> (intData)); | |||
intData += srcBytesPerSample; | |||
} | |||
} | |||
@@ -355,7 +355,7 @@ void AudioDataConverters::convertInt32BEToFloat (const void* source, float* dest | |||
for (int i = numSamples; --i >= 0;) | |||
{ | |||
intData -= srcBytesPerSample; | |||
dest[i] = scale * (int) ByteOrder::swapIfLittleEndian (*reinterpret_cast<const uint32*> (intData)); | |||
dest[i] = scale * (float) ByteOrder::swapIfLittleEndian (*reinterpret_cast<const uint32*> (intData)); | |||
} | |||
} | |||
} | |||
@@ -528,8 +528,8 @@ public: | |||
if (v < mn) mn = v; | |||
} | |||
return Range<float> (mn * (float) (1.0 / (1.0 + (double) Int32::maxValue)), | |||
mx * (float) (1.0 / (1.0 + (double) Int32::maxValue))); | |||
return Range<float> ((float) mn * (float) (1.0 / (1.0 + (double) Int32::maxValue)), | |||
(float) mx * (float) (1.0 / (1.0 + (double) Int32::maxValue))); | |||
} | |||
/** Scans a block of data, returning the lowest and highest levels as floats */ | |||
@@ -491,7 +491,7 @@ void MPEInstrument::updateNoteTotalPitchbend (MPENote& note) | |||
{ | |||
if (legacyMode.isEnabled) | |||
{ | |||
note.totalPitchbendInSemitones = note.pitchbend.asSignedFloat() * legacyMode.pitchbendRange; | |||
note.totalPitchbendInSemitones = note.pitchbend.asSignedFloat() * (float) legacyMode.pitchbendRange; | |||
} | |||
else | |||
{ | |||
@@ -516,11 +516,11 @@ void MPEInstrument::updateNoteTotalPitchbend (MPENote& note) | |||
auto notePitchbendInSemitones = 0.0f; | |||
if (zone.isUsingChannelAsMemberChannel (note.midiChannel)) | |||
notePitchbendInSemitones = note.pitchbend.asSignedFloat() * zone.perNotePitchbendRange; | |||
notePitchbendInSemitones = note.pitchbend.asSignedFloat() * (float) zone.perNotePitchbendRange; | |||
auto masterPitchbendInSemitones = pitchbendDimension.lastValueReceivedOnChannel[zone.getMasterChannel() - 1] | |||
.asSignedFloat() | |||
* zone.masterPitchbendRange; | |||
* (float) zone.masterPitchbendRange; | |||
note.totalPitchbendInSemitones = notePitchbendInSemitones + masterPitchbendInSemitones; | |||
} | |||
@@ -345,7 +345,7 @@ namespace | |||
const auto& e = synth.events; | |||
expectWithinAbsoluteError (float (e.blocks.size()), | |||
std::ceil (float (blockSize) / subblockSize), | |||
std::ceil ((float) blockSize / (float) subblockSize), | |||
1.0f); | |||
expect (e.messages.size() == blockSize); | |||
expect (std::is_sorted (e.blocks.begin(), e.blocks.end())); | |||
@@ -167,7 +167,7 @@ private: | |||
(int) input.size(), (int) input.size()); | |||
std::vector<float> secondGaussian (doubleLengthOutput.size()); | |||
createGaussian (secondGaussian, 1.0f, expectedGaussianMidpoint + outputBufferSize, expectedGaussianWidth); | |||
createGaussian (secondGaussian, 1.0f, expectedGaussianMidpoint + (float) outputBufferSize, expectedGaussianWidth); | |||
FloatVectorOperations::add (expectedDoubleLengthOutput.data(), secondGaussian.data(), (int) expectedDoubleLengthOutput.size()); | |||
expectAllElementsWithin (doubleLengthOutput, expectedDoubleLengthOutput, 0.02f); | |||
@@ -54,7 +54,8 @@ private: | |||
static forcedinline float valueAtOffset (const float* const inputs, const float offset, int indexBuffer) noexcept | |||
{ | |||
int numCrossings = 100; | |||
const int numCrossings = 100; | |||
const float floatCrossings = (float) numCrossings; | |||
float result = 0.0f; | |||
auto samplePosition = indexBuffer; | |||
@@ -69,14 +70,15 @@ private: | |||
if (i == -numCrossings || (sincPosition >= 0 && lastSincPosition < 0)) | |||
{ | |||
auto indexFloat = (sincPosition >= 0.f ? sincPosition : -sincPosition) * 100.0f; | |||
index = (int) std::floor (indexFloat); | |||
firstFrac = indexFloat - index; | |||
auto indexFloored = std::floor (indexFloat); | |||
index = (int) indexFloored; | |||
firstFrac = indexFloat - indexFloored; | |||
sign = (sincPosition < 0 ? -1 : 1); | |||
} | |||
if (sincPosition == 0.0f) | |||
result += inputs[samplePosition]; | |||
else if (sincPosition < numCrossings && sincPosition > -numCrossings) | |||
else if (sincPosition < floatCrossings && sincPosition > -floatCrossings) | |||
result += inputs[samplePosition] * windowedSinc (firstFrac, index); | |||
if (++samplePosition == numCrossings * 2) | |||
@@ -369,7 +369,7 @@ private: | |||
template <typename T = SmoothingType> | |||
MultiplicativeVoid<T> setStepSize() | |||
{ | |||
step = std::exp ((std::log (std::abs (this->target)) - std::log (std::abs (this->currentValue))) / this->countdown); | |||
step = std::exp ((std::log (std::abs (this->target)) - std::log (std::abs (this->currentValue))) / (FloatType) this->countdown); | |||
} | |||
//============================================================================== | |||
@@ -1968,8 +1968,8 @@ private: | |||
{ | |||
const uint8 n0 = si.allocation[i][0]; | |||
const uint8 n1 = si.allocation[i][1]; | |||
fraction[0][i] = n0 > 0 ? (float) ((-(1 << n0) + getBitsUint16 (n0 + 1) + 1) * constants.muls[n0 + 1][si.scaleFactor[i][0]]) : 0; | |||
fraction[1][i] = n1 > 0 ? (float) ((-(1 << n1) + getBitsUint16 (n1 + 1) + 1) * constants.muls[n1 + 1][si.scaleFactor[i][1]]) : 0; | |||
fraction[0][i] = n0 > 0 ? ((float) (-(1 << n0) + getBitsUint16 (n0 + 1) + 1) * constants.muls[n0 + 1][si.scaleFactor[i][0]]) : 0.0f; | |||
fraction[1][i] = n1 > 0 ? ((float) (-(1 << n1) + getBitsUint16 (n1 + 1) + 1) * constants.muls[n1 + 1][si.scaleFactor[i][1]]) : 0.0f; | |||
} | |||
for (i = jsbound; i < 32; ++i) | |||
@@ -1979,8 +1979,8 @@ private: | |||
if (n > 0) | |||
{ | |||
const uint32 w = ((uint32) -(1 << n) + getBitsUint16 (n + 1) + 1); | |||
fraction[0][i] = (float) (w * constants.muls[n + 1][si.scaleFactor[i][0]]); | |||
fraction[1][i] = (float) (w * constants.muls[n + 1][si.scaleFactor[i][1]]); | |||
fraction[0][i] = ((float) w * constants.muls[n + 1][si.scaleFactor[i][0]]); | |||
fraction[1][i] = ((float) w * constants.muls[n + 1][si.scaleFactor[i][1]]); | |||
} | |||
else | |||
fraction[0][i] = fraction[1][i] = 0; | |||
@@ -1994,7 +1994,7 @@ private: | |||
const uint8 j = si.scaleFactor[i][0]; | |||
if (n > 0) | |||
fraction[0][i] = (float) ((-(1 << n) + getBitsUint16 (n + 1) + 1) * constants.muls[n + 1][j]); | |||
fraction[0][i] = ((float) (-(1 << n) + getBitsUint16 (n + 1) + 1) * constants.muls[n + 1][j]); | |||
else | |||
fraction[0][i] = 0; | |||
} | |||
@@ -3113,7 +3113,7 @@ private: | |||
const int bytesPerFrame = stream.frame.frameSize + 4; | |||
if (bytesPerFrame == 417 || bytesPerFrame == 418) | |||
numFrames = roundToInt ((streamSize - streamStartPos) / 417.95918); // more accurate for 128k | |||
numFrames = roundToInt ((double) (streamSize - streamStartPos) / 417.95918); // more accurate for 128k | |||
else | |||
numFrames = (streamSize - streamStartPos) / bytesPerFrame; | |||
} | |||
@@ -135,7 +135,7 @@ public: | |||
lengthInSamples = (uint32) ov_pcm_total (&ovFile, -1); | |||
numChannels = (unsigned int) info->channels; | |||
bitsPerSample = 16; | |||
sampleRate = info->rate; | |||
sampleRate = (double) info->rate; | |||
reservoir.setSize ((int) numChannels, (int) jmin (lengthInSamples, (int64) 4096)); | |||
} | |||
@@ -276,7 +276,7 @@ public: | |||
vorbis_info_init (&vi); | |||
if (vorbis_encode_init_vbr (&vi, (int) numChans, (int) rate, | |||
jlimit (0.0f, 1.0f, qualityIndex * 0.1f)) == 0) | |||
jlimit (0.0f, 1.0f, (float) qualityIndex * 0.1f)) == 0) | |||
{ | |||
vorbis_comment_init (&vc); | |||
@@ -483,8 +483,8 @@ int OggVorbisAudioFormat::estimateOggFileQuality (const File& source) | |||
{ | |||
if (auto r = std::unique_ptr<AudioFormatReader> (createReaderFor (in.release(), true))) | |||
{ | |||
auto lengthSecs = r->lengthInSamples / r->sampleRate; | |||
auto approxBitsPerSecond = (int) (source.getSize() * 8 / lengthSecs); | |||
auto lengthSecs = (double) r->lengthInSamples / r->sampleRate; | |||
auto approxBitsPerSecond = (int) ((double) source.getSize() * 8 / lengthSecs); | |||
auto qualities = getQualityOptions(); | |||
int bestIndex = 0; | |||
@@ -1474,7 +1474,7 @@ private: | |||
output->writeShort ((short) numChannels); | |||
output->writeInt ((int) sampleRate); | |||
output->writeInt ((int) (bytesPerFrame * sampleRate)); // nAvgBytesPerSec | |||
output->writeInt ((int) ((double) bytesPerFrame * sampleRate)); // nAvgBytesPerSec | |||
output->writeShort ((short) bytesPerFrame); // nBlockAlign | |||
output->writeShort ((short) bitsPerSample); // wBitsPerSample | |||
@@ -235,8 +235,8 @@ void AudioFormatReader::readMaxLevels (int64 startSampleInFile, int64 numSamples | |||
{ | |||
auto intRange = Range<int>::findMinAndMax (intBuffer[i], numToDo); | |||
r = Range<float> (intRange.getStart() / (float) std::numeric_limits<int>::max(), | |||
intRange.getEnd() / (float) std::numeric_limits<int>::max()); | |||
r = Range<float> ((float) intRange.getStart() / (float) std::numeric_limits<int>::max(), | |||
(float) intRange.getEnd() / (float) std::numeric_limits<int>::max()); | |||
} | |||
results[i] = isFirstBlock ? r : results[i].getUnionWith (r); | |||
@@ -1262,10 +1262,10 @@ private: | |||
auto transformScale = std::sqrt (std::abs (editor->getTransform().getDeterminant())); | |||
auto minW = (double) (constrainer->getMinimumWidth() * transformScale); | |||
auto maxW = (double) (constrainer->getMaximumWidth() * transformScale); | |||
auto minH = (double) (constrainer->getMinimumHeight() * transformScale); | |||
auto maxH = (double) (constrainer->getMaximumHeight() * transformScale); | |||
auto minW = (double) ((float) constrainer->getMinimumWidth() * transformScale); | |||
auto maxW = (double) ((float) constrainer->getMaximumWidth() * transformScale); | |||
auto minH = (double) ((float) constrainer->getMinimumHeight() * transformScale); | |||
auto maxH = (double) ((float) constrainer->getMaximumHeight() * transformScale); | |||
auto width = (double) (rectToCheck->right - rectToCheck->left); | |||
auto height = (double) (rectToCheck->bottom - rectToCheck->top); | |||
@@ -1381,10 +1381,10 @@ private: | |||
if (approximatelyEqual (desktopScale, 1.0f)) | |||
return pluginRect; | |||
return { roundToInt (pluginRect.left * desktopScale), | |||
roundToInt (pluginRect.top * desktopScale), | |||
roundToInt (pluginRect.right * desktopScale), | |||
roundToInt (pluginRect.bottom * desktopScale) }; | |||
return { roundToInt ((float) pluginRect.left * desktopScale), | |||
roundToInt ((float) pluginRect.top * desktopScale), | |||
roundToInt ((float) pluginRect.right * desktopScale), | |||
roundToInt ((float) pluginRect.bottom * desktopScale) }; | |||
} | |||
static ViewRect convertFromHostBounds (ViewRect hostRect) | |||
@@ -1394,10 +1394,10 @@ private: | |||
if (approximatelyEqual (desktopScale, 1.0f)) | |||
return hostRect; | |||
return { roundToInt (hostRect.left / desktopScale), | |||
roundToInt (hostRect.top / desktopScale), | |||
roundToInt (hostRect.right / desktopScale), | |||
roundToInt (hostRect.bottom / desktopScale) }; | |||
return { roundToInt ((float) hostRect.left / desktopScale), | |||
roundToInt ((float) hostRect.top / desktopScale), | |||
roundToInt ((float) hostRect.right / desktopScale), | |||
roundToInt ((float) hostRect.bottom / desktopScale) }; | |||
} | |||
//============================================================================== | |||
@@ -1359,13 +1359,13 @@ struct VST3PluginWindow : public AudioProcessorEditor, | |||
if (wasResized && view->canResize() == kResultTrue) | |||
{ | |||
rect.right = (Steinberg::int32) roundToInt (getWidth() * nativeScaleFactor); | |||
rect.bottom = (Steinberg::int32) roundToInt (getHeight() * nativeScaleFactor); | |||
rect.right = (Steinberg::int32) roundToInt ((float) getWidth() * nativeScaleFactor); | |||
rect.bottom = (Steinberg::int32) roundToInt ((float) getHeight() * nativeScaleFactor); | |||
view->checkSizeConstraint (&rect); | |||
auto w = roundToInt (rect.getWidth() / nativeScaleFactor); | |||
auto h = roundToInt (rect.getHeight() / nativeScaleFactor); | |||
auto w = roundToInt ((float) rect.getWidth() / nativeScaleFactor); | |||
auto h = roundToInt ((float) rect.getHeight() / nativeScaleFactor); | |||
setSize (w, h); | |||
@@ -1459,10 +1459,10 @@ private: | |||
//============================================================================== | |||
static void resizeWithRect (Component& comp, const ViewRect& rect, float scaleFactor) | |||
{ | |||
comp.setBounds (roundToInt (rect.left / scaleFactor), | |||
roundToInt (rect.top / scaleFactor), | |||
jmax (10, std::abs (roundToInt (rect.getWidth() / scaleFactor))), | |||
jmax (10, std::abs (roundToInt (rect.getHeight() / scaleFactor)))); | |||
comp.setBounds (roundToInt ((float) rect.left / scaleFactor), | |||
roundToInt ((float) rect.top / scaleFactor), | |||
jmax (10, std::abs (roundToInt ((float) rect.getWidth() / scaleFactor))), | |||
jmax (10, std::abs (roundToInt ((float) rect.getHeight() / scaleFactor)))); | |||
} | |||
void attachPluginWindow() | |||
@@ -1545,7 +1545,7 @@ StringArray AudioProcessorParameter::getAllValueStrings() const | |||
auto maxIndex = getNumSteps() - 1; | |||
for (int i = 0; i < getNumSteps(); ++i) | |||
valueStrings.add (getText ((float) i / maxIndex, 1024)); | |||
valueStrings.add (getText ((float) i / (float) maxIndex, 1024)); | |||
} | |||
return valueStrings; | |||
@@ -284,7 +284,7 @@ private: | |||
{ | |||
// The parameter is producing some unexpected text, so we'll do | |||
// some linear interpolation. | |||
index = roundToInt (getParameter().getValue() * (parameterValues.size() - 1)); | |||
index = roundToInt (getParameter().getValue() * (float) (parameterValues.size() - 1)); | |||
} | |||
box.setSelectedItemIndex (index); | |||
@@ -77,7 +77,7 @@ String PluginDirectoryScanner::getNextPluginFileThatWillBeScanned() const | |||
void PluginDirectoryScanner::updateProgress() | |||
{ | |||
progress = (1.0f - nextIndex.get() / (float) filesOrIdentifiersToScan.size()); | |||
progress = (1.0f - (float) nextIndex.get() / (float) filesOrIdentifiersToScan.size()); | |||
} | |||
bool PluginDirectoryScanner::scanNextFile (bool dontRescanIfAlreadyInList, | |||
@@ -88,7 +88,7 @@ public: | |||
g.setColour (isBlacklisted ? Colours::red | |||
: columnId == nameCol ? defaultTextColour | |||
: defaultTextColour.interpolatedWith (Colours::transparentBlack, 0.3f)); | |||
g.setFont (Font (height * 0.7f, Font::bold)); | |||
g.setFont (Font ((float) height * 0.7f, Font::bold)); | |||
g.drawFittedText (text, 4, 0, width - 6, height, Justification::centredLeft, 1, 0.9f); | |||
} | |||
} | |||
@@ -33,7 +33,7 @@ AudioParameterChoice::AudioParameterChoice (const String& idToUse, const String& | |||
: RangedAudioParameter (idToUse, nameToUse, labelToUse), choices (c), | |||
range ([this] | |||
{ | |||
NormalisableRange<float> rangeWithInterval { 0.0f, choices.size() - 1.0f, | |||
NormalisableRange<float> rangeWithInterval { 0.0f, (float) choices.size() - 1.0f, | |||
[] (float, float end, float v) { return jlimit (0.0f, end, v * end); }, | |||
[] (float, float end, float v) { return jlimit (0.0f, 1.0f, v / end); }, | |||
[] (float start, float end, float v) { return (float) roundToInt (juce::jlimit (start, end, v)); } }; | |||
@@ -44,7 +44,7 @@ AudioParameterFloat::AudioParameterFloat (const String& idToUse, const String& n | |||
if (range.interval != 0.0f) | |||
{ | |||
if (approximatelyEqual (std::abs (range.interval - (int) range.interval), 0.0f)) | |||
if (approximatelyEqual (std::abs (range.interval - std::floor (range.interval)), 0.0f)) | |||
return 0; | |||
auto v = std::abs (roundToInt (range.interval * pow (10, numDecimalPlaces))); | |||
@@ -109,12 +109,12 @@ public: | |||
bool enabled = deviceManager.isMidiInputDeviceEnabled (item.identifier); | |||
auto x = getTickX(); | |||
auto tickW = height * 0.75f; | |||
auto tickW = (float) height * 0.75f; | |||
getLookAndFeel().drawTickBox (g, *this, x - tickW, (height - tickW) / 2, tickW, tickW, | |||
getLookAndFeel().drawTickBox (g, *this, (float) x - tickW, ((float) height - tickW) * 0.5f, tickW, tickW, | |||
enabled, true, true, false); | |||
g.setFont (height * 0.6f); | |||
g.setFont ((float) height * 0.6f); | |||
g.setColour (findColour (ListBox::textColourId, true).withMultipliedAlpha (enabled ? 1.0f : 0.6f)); | |||
g.drawText (item.name, x + 5, 0, width - x - 5, height, Justification::centredLeft, true); | |||
} | |||
@@ -145,7 +145,7 @@ public: | |||
if (items.isEmpty()) | |||
{ | |||
g.setColour (Colours::grey); | |||
g.setFont (0.5f * getRowHeight()); | |||
g.setFont (0.5f * (float) getRowHeight()); | |||
g.drawText (noItemsMessage, | |||
0, 0, getWidth(), getHeight() / 2, | |||
Justification::centred, true); | |||
@@ -800,12 +800,12 @@ public: | |||
} | |||
auto x = getTickX(); | |||
auto tickW = height * 0.75f; | |||
auto tickW = (float) height * 0.75f; | |||
getLookAndFeel().drawTickBox (g, *this, x - tickW, (height - tickW) / 2, tickW, tickW, | |||
getLookAndFeel().drawTickBox (g, *this, (float) x - tickW, ((float) height - tickW) * 0.5f, tickW, tickW, | |||
enabled, true, true, false); | |||
g.setFont (height * 0.6f); | |||
g.setFont ((float) height * 0.6f); | |||
g.setColour (findColour (ListBox::textColourId, true).withMultipliedAlpha (enabled ? 1.0f : 0.6f)); | |||
g.drawText (item, x + 5, 0, width - x - 5, height, Justification::centredLeft, true); | |||
} | |||
@@ -836,7 +836,7 @@ public: | |||
if (items.isEmpty()) | |||
{ | |||
g.setColour (Colours::grey); | |||
g.setFont (0.5f * getRowHeight()); | |||
g.setFont (0.5f * (float) getRowHeight()); | |||
g.drawText (noItemsMessage, | |||
0, 0, getWidth(), getHeight() / 2, | |||
Justification::centred, true); | |||
@@ -753,7 +753,7 @@ int AudioThumbnail::getNumChannels() const noexcept | |||
double AudioThumbnail::getTotalLength() const noexcept | |||
{ | |||
return sampleRate > 0 ? (totalSamples / sampleRate) : 0; | |||
return sampleRate > 0 ? ((double) totalSamples / sampleRate) : 0.0; | |||
} | |||
bool AudioThumbnail::isFullyLoaded() const noexcept | |||
@@ -763,7 +763,7 @@ bool AudioThumbnail::isFullyLoaded() const noexcept | |||
double AudioThumbnail::getProportionComplete() const noexcept | |||
{ | |||
return jlimit (0.0, 1.0, numSamplesFinished / (double) jmax ((int64) 1, totalSamples.load())); | |||
return jlimit (0.0, 1.0, (double) numSamplesFinished / (double) jmax ((int64) 1, totalSamples.load())); | |||
} | |||
int64 AudioThumbnail::getNumSamplesFinished() const noexcept | |||
@@ -779,7 +779,7 @@ float AudioThumbnail::getApproximatePeak() const | |||
for (auto* c : channels) | |||
peak = jmax (peak, c->getPeak()); | |||
return jlimit (0, 127, peak) / 127.0f; | |||
return (float) jlimit (0, 127, peak) / 127.0f; | |||
} | |||
void AudioThumbnail::getApproximateMinMax (double startTime, double endTime, int channelIndex, | |||
@@ -178,7 +178,7 @@ void AudioVisualiserComponent::paint (Graphics& g) | |||
g.fillAll (backgroundColour); | |||
auto r = getLocalBounds().toFloat(); | |||
auto channelHeight = r.getHeight() / channels.size(); | |||
auto channelHeight = r.getHeight() / (float) channels.size(); | |||
g.setColour (waveformColour); | |||
@@ -220,7 +220,7 @@ Range<float> MidiKeyboardComponent::getKeyPosition (int midiNoteNumber, float ta | |||
auto octave = midiNoteNumber / 12; | |||
auto note = midiNoteNumber % 12; | |||
auto start = octave * 7.0f * targetKeyWidth + notePos[note] * targetKeyWidth; | |||
auto start = (float) octave * 7.0f * targetKeyWidth + notePos[note] * targetKeyWidth; | |||
auto width = MidiMessage::isMidiNoteBlack (note) ? blackNoteWidthRatio * targetKeyWidth : targetKeyWidth; | |||
return { start, start + width }; | |||
@@ -248,8 +248,8 @@ Rectangle<float> MidiKeyboardComponent::getRectangleForKey (int note) const | |||
switch (orientation) | |||
{ | |||
case horizontalKeyboard: return { x, 0, w, blackNoteLength }; | |||
case verticalKeyboardFacingLeft: return { getWidth() - blackNoteLength, x, blackNoteLength, w }; | |||
case verticalKeyboardFacingRight: return { 0, getHeight() - x - w, blackNoteLength, w }; | |||
case verticalKeyboardFacingLeft: return { (float) getWidth() - blackNoteLength, x, blackNoteLength, w }; | |||
case verticalKeyboardFacingRight: return { 0, (float) getHeight() - x - w, blackNoteLength, w }; | |||
default: jassertfalse; break; | |||
} | |||
} | |||
@@ -259,7 +259,7 @@ Rectangle<float> MidiKeyboardComponent::getRectangleForKey (int note) const | |||
{ | |||
case horizontalKeyboard: return { x, 0, w, (float) getHeight() }; | |||
case verticalKeyboardFacingLeft: return { 0, x, (float) getWidth(), w }; | |||
case verticalKeyboardFacingRight: return { 0, getHeight() - x - w, (float) getWidth(), w }; | |||
case verticalKeyboardFacingRight: return { 0, (float) getHeight() - x - w, (float) getWidth(), w }; | |||
default: jassertfalse; break; | |||
} | |||
} | |||
@@ -295,9 +295,9 @@ int MidiKeyboardComponent::xyToNote (Point<float> pos, float& mousePositionVeloc | |||
p = { p.y, p.x }; | |||
if (orientation == verticalKeyboardFacingLeft) | |||
p = { p.x, getWidth() - p.y }; | |||
p = { p.x, (float) getWidth() - p.y }; | |||
else | |||
p = { getHeight() - p.x, p.y }; | |||
p = { (float) getHeight() - p.x, p.y }; | |||
} | |||
return remappedXYToNote (p + Point<float> (xOffset, 0), mousePositionVelocity); | |||
@@ -382,8 +382,8 @@ void MidiKeyboardComponent::paint (Graphics& g) | |||
if (orientation == verticalKeyboardFacingLeft) | |||
{ | |||
x1 = width - 1.0f; | |||
x2 = width - 5.0f; | |||
x1 = (float) width - 1.0f; | |||
x2 = (float) width - 5.0f; | |||
} | |||
else if (orientation == verticalKeyboardFacingRight) | |||
x2 = 5.0f; | |||
@@ -400,7 +400,7 @@ void MidiKeyboardComponent::paint (Graphics& g) | |||
switch (orientation) | |||
{ | |||
case horizontalKeyboard: g.fillRect (0.0f, 0.0f, x, 5.0f); break; | |||
case verticalKeyboardFacingLeft: g.fillRect (width - 5.0f, 0.0f, 5.0f, x); break; | |||
case verticalKeyboardFacingLeft: g.fillRect ((float) width - 5.0f, 0.0f, 5.0f, x); break; | |||
case verticalKeyboardFacingRight: g.fillRect (0.0f, 0.0f, 5.0f, x); break; | |||
default: break; | |||
} | |||
@@ -412,9 +412,9 @@ void MidiKeyboardComponent::paint (Graphics& g) | |||
switch (orientation) | |||
{ | |||
case horizontalKeyboard: g.fillRect (0.0f, height - 1.0f, x, 1.0f); break; | |||
case horizontalKeyboard: g.fillRect (0.0f, (float) height - 1.0f, x, 1.0f); break; | |||
case verticalKeyboardFacingLeft: g.fillRect (0.0f, 0.0f, 1.0f, x); break; | |||
case verticalKeyboardFacingRight: g.fillRect (width - 1.0f, 0.0f, 1.0f, x); break; | |||
case verticalKeyboardFacingRight: g.fillRect ((float) width - 1.0f, 0.0f, 1.0f, x); break; | |||
default: break; | |||
} | |||
} | |||
@@ -561,7 +561,7 @@ void MidiKeyboardComponent::drawUpDownButton (Graphics& g, int w, int h, | |||
g.setColour (findColour (upDownButtonArrowColourId) | |||
.withAlpha (buttonDown ? 1.0f : (mouseOver ? 0.6f : 0.4f))); | |||
g.fillPath (path, path.getTransformToScaleToFit (1.0f, 1.0f, w - 2.0f, h - 2.0f, true)); | |||
g.fillPath (path, path.getTransformToScaleToFit (1.0f, 1.0f, (float) w - 2.0f, (float) h - 2.0f, true)); | |||
} | |||
void MidiKeyboardComponent::setBlackNoteLengthProportion (float ratio) noexcept | |||
@@ -578,7 +578,7 @@ void MidiKeyboardComponent::setBlackNoteLengthProportion (float ratio) noexcept | |||
float MidiKeyboardComponent::getBlackNoteLength() const noexcept | |||
{ | |||
auto whiteNoteLength = orientation == horizontalKeyboard ? getHeight() : getWidth(); | |||
return whiteNoteLength * blackNoteLengthRatio; | |||
return (float) whiteNoteLength * blackNoteLengthRatio; | |||
} | |||
void MidiKeyboardComponent::setBlackNoteWidthProportion (float ratio) noexcept | |||
@@ -608,7 +608,7 @@ void MidiKeyboardComponent::resized() | |||
{ | |||
auto kx1 = getKeyPos (rangeStart).getStart(); | |||
if (kx2 - kx1 <= w) | |||
if (kx2 - kx1 <= (float) w) | |||
{ | |||
firstKey = (float) rangeStart; | |||
sendChangeMessage(); | |||
@@ -645,7 +645,7 @@ void MidiKeyboardComponent::resized() | |||
float mousePositionVelocity; | |||
auto spaceAvailable = w; | |||
auto lastStartKey = remappedXYToNote ({ endOfLastKey - spaceAvailable, 0 }, mousePositionVelocity) + 1; | |||
auto lastStartKey = remappedXYToNote ({ endOfLastKey - (float) spaceAvailable, 0 }, mousePositionVelocity) + 1; | |||
if (lastStartKey >= 0 && ((int) firstKey) > lastStartKey) | |||
{ | |||
@@ -660,7 +660,7 @@ void MidiKeyboardComponent::resized() | |||
firstKey = (float) rangeStart; | |||
} | |||
scrollUp->setVisible (canScroll && getKeyPos (rangeEnd).getStart() > w); | |||
scrollUp->setVisible (canScroll && getKeyPos (rangeEnd).getStart() > (float) w); | |||
repaint(); | |||
} | |||
} | |||
@@ -79,8 +79,8 @@ struct IntegerWithBitSize | |||
: (uint32) (value >> (numBits - 8))); | |||
} | |||
float toUnipolarFloat() const noexcept { return value / (float) maxValue; } | |||
float toBipolarFloat() const noexcept { return static_cast<int32> (value << (32 - numBits)) / (float) 0x80000000u; } | |||
float toUnipolarFloat() const noexcept { return (float) value / (float) maxValue; } | |||
float toBipolarFloat() const noexcept { return (float) static_cast<int32> (value << (32 - numBits)) / (float) 0x80000000u; } | |||
static IntegerWithBitSize fromUnipolarFloat (float value) noexcept | |||
{ | |||
@@ -167,9 +167,9 @@ struct ConnectedDeviceGroup : private AsyncUpdater, | |||
TouchSurface::Touch touch; | |||
touch.index = (int) touchIndex.get(); | |||
touch.x = position.x.toUnipolarFloat(); | |||
touch.y = position.y.toUnipolarFloat(); | |||
touch.z = position.z.toUnipolarFloat(); | |||
touch.x = (float) position.x.toUnipolarFloat(); | |||
touch.y = (float) position.y.toUnipolarFloat(); | |||
touch.z = (float) position.z.toUnipolarFloat(); | |||
touch.xVelocity = velocity.vx.toBipolarFloat(); | |||
touch.yVelocity = velocity.vy.toBipolarFloat(); | |||
touch.zVelocity = velocity.vz.toBipolarFloat(); | |||
@@ -350,10 +350,10 @@ struct Detector : public ReferenceCountedObject, | |||
{ | |||
TouchSurface::Touch scaledEvent (touchEvent); | |||
scaledEvent.x *= block->getWidth(); | |||
scaledEvent.y *= block->getHeight(); | |||
scaledEvent.startX *= block->getWidth(); | |||
scaledEvent.startY *= block->getHeight(); | |||
scaledEvent.x *= (float) block->getWidth(); | |||
scaledEvent.y *= (float) block->getHeight(); | |||
scaledEvent.startX *= (float) block->getWidth(); | |||
scaledEvent.startY *= (float) block->getHeight(); | |||
surface->broadcastTouchChange (scaledEvent); | |||
} | |||
@@ -27,14 +27,14 @@ DrumPadGridProgram::DrumPadGridProgram (Block& b) : Program (b) {} | |||
int DrumPadGridProgram::getPadIndex (float posX, float posY) const | |||
{ | |||
posX = jmin (0.99f, posX / block.getWidth()); | |||
posY = jmin (0.99f, posY / block.getHeight()); | |||
posX = jmin (0.99f, posX / (float) block.getWidth()); | |||
posY = jmin (0.99f, posY / (float) block.getHeight()); | |||
const uint32 offset = block.getDataByte (visiblePads_byte) ? numColumns1_byte : numColumns0_byte; | |||
const int numColumns = block.getDataByte (offset + numColumns0_byte); | |||
const int numRows = block.getDataByte (offset + numRows0_byte); | |||
return int (posX * numColumns) + int (posY * numRows) * numColumns; | |||
return int (posX * (float) numColumns) + int (posY * (float) numRows) * numColumns; | |||
} | |||
void DrumPadGridProgram::startTouch (float startX, float startY) | |||
@@ -65,8 +65,8 @@ void DrumPadGridProgram::sendTouch (float x, float y, float z, LEDColour colour) | |||
Block::ProgramEventMessage e; | |||
e.values[0] = 0x20000000 | |||
+ (jlimit (0, 255, roundToInt (x * (255.0f / block.getWidth()))) << 16) | |||
+ (jlimit (0, 255, roundToInt (y * (255.0f / block.getHeight()))) << 8) | |||
+ (jlimit (0, 255, roundToInt (x * (255.0f / (float) block.getWidth()))) << 16) | |||
+ (jlimit (0, 255, roundToInt (y * (255.0f / (float) block.getHeight()))) << 8) | |||
+ jlimit (0, 255, roundToInt (z * 255.0f)); | |||
e.values[1] = (int32) colour.getARGB(); | |||
@@ -159,10 +159,10 @@ float DirectoryIterator::getEstimatedProgress() const | |||
if (totalNumFiles <= 0) | |||
return 0.0f; | |||
auto detailedIndex = (subIterator != nullptr) ? index + subIterator->getEstimatedProgress() | |||
auto detailedIndex = (subIterator != nullptr) ? (float) index + subIterator->getEstimatedProgress() | |||
: (float) index; | |||
return jlimit (0.0f, 1.0f, detailedIndex / totalNumFiles); | |||
return jlimit (0.0f, 1.0f, detailedIndex / (float) totalNumFiles); | |||
} | |||
} // namespace juce |
@@ -485,7 +485,7 @@ String File::descriptionOfSizeInBytes (const int64 bytes) | |||
else if (bytes < 1024 * 1024 * 1024) { suffix = " MB"; divisor = 1024.0 * 1024.0; } | |||
else { suffix = " GB"; divisor = 1024.0 * 1024.0 * 1024.0; } | |||
return (divisor > 0 ? String (bytes / divisor, 1) : String (bytes)) + suffix; | |||
return (divisor > 0 ? String ((double) bytes / divisor, 1) : String (bytes)) + suffix; | |||
} | |||
//============================================================================== | |||
@@ -594,7 +594,7 @@ struct JavascriptEngine::RootObject : public DynamicObject | |||
{ | |||
DivideOp (const CodeLocation& l, ExpPtr& a, ExpPtr& b) noexcept : BinaryOperator (l, a, b, TokenTypes::divide) {} | |||
var getWithDoubles (double a, double b) const override { return b != 0 ? a / b : std::numeric_limits<double>::infinity(); } | |||
var getWithInts (int64 a, int64 b) const override { return b != 0 ? var (a / (double) b) : var (std::numeric_limits<double>::infinity()); } | |||
var getWithInts (int64 a, int64 b) const override { return b != 0 ? var ((double) a / (double) b) : var (std::numeric_limits<double>::infinity()); } | |||
}; | |||
struct ModuloOp : public BinaryOperator | |||
@@ -105,7 +105,7 @@ bool Random::nextBool() noexcept | |||
float Random::nextFloat() noexcept | |||
{ | |||
auto result = static_cast<uint32> (nextInt()) | |||
auto result = static_cast<float> (static_cast<uint32> (nextInt())) | |||
/ (static_cast<float> (std::numeric_limits<uint32>::max()) + 1.0f); | |||
return result == 1.0f ? 1.0f - std::numeric_limits<float>::epsilon() : result; | |||
} | |||
@@ -209,7 +209,7 @@ int64 Time::getHighResolutionTicksPerSecond() noexcept | |||
double Time::getMillisecondCounterHiRes() noexcept | |||
{ | |||
return getHighResolutionTicks() * 0.001; | |||
return (double) getHighResolutionTicks() * 0.001; | |||
} | |||
bool Time::setSystemTimeToThisTime() const | |||
@@ -124,7 +124,7 @@ PerformanceCounter::Statistics PerformanceCounter::getStatisticsAndReset() | |||
stats.clear(); | |||
if (s.numRuns > 0) | |||
s.averageSeconds = s.totalSeconds / s.numRuns; | |||
s.averageSeconds = s.totalSeconds / (float) s.numRuns; | |||
return s; | |||
} | |||
@@ -28,8 +28,8 @@ RelativeTime::RelativeTime (const RelativeTime& other) noexcept : numSeconds ( | |||
RelativeTime::~RelativeTime() noexcept {} | |||
//============================================================================== | |||
RelativeTime RelativeTime::milliseconds (int milliseconds) noexcept { return RelativeTime (milliseconds * 0.001); } | |||
RelativeTime RelativeTime::milliseconds (int64 milliseconds) noexcept { return RelativeTime (milliseconds * 0.001); } | |||
RelativeTime RelativeTime::milliseconds (int milliseconds) noexcept { return RelativeTime ((double) milliseconds * 0.001); } | |||
RelativeTime RelativeTime::milliseconds (int64 milliseconds) noexcept { return RelativeTime ((double) milliseconds * 0.001); } | |||
RelativeTime RelativeTime::seconds (double s) noexcept { return RelativeTime (s); } | |||
RelativeTime RelativeTime::minutes (double numberOfMinutes) noexcept { return RelativeTime (numberOfMinutes * 60.0); } | |||
RelativeTime RelativeTime::hours (double numberOfHours) noexcept { return RelativeTime (numberOfHours * (60.0 * 60.0)); } | |||
@@ -277,7 +277,7 @@ void Time::waitForMillisecondCounter (uint32 targetTime) noexcept | |||
//============================================================================== | |||
double Time::highResolutionTicksToSeconds (const int64 ticks) noexcept | |||
{ | |||
return ticks / (double) getHighResolutionTicksPerSecond(); | |||
return (double) ticks / (double) getHighResolutionTicksPerSecond(); | |||
} | |||
int64 Time::secondsToHighResolutionTicks (const double seconds) noexcept | |||
@@ -45,7 +45,7 @@ typename FIR::Coefficients<FloatType>::Ptr | |||
for (size_t i = 0; i <= order; ++i) | |||
{ | |||
if (i == order * 0.5) | |||
if (i == order / 2) | |||
{ | |||
c[i] = static_cast<FloatType> (normalisedFrequency * 2); | |||
} | |||
@@ -113,8 +113,8 @@ typename FIR::Coefficients<FloatType>::Ptr | |||
} | |||
else | |||
{ | |||
auto indice = MathConstants<double>::pi * (i - 0.5 * order); | |||
auto indice2 = MathConstants<double>::pi * normalisedTransitionWidth * (i - 0.5 * order) / spline; | |||
auto indice = MathConstants<double>::pi * ((double) i - 0.5 * (double) order); | |||
auto indice2 = MathConstants<double>::pi * normalisedTransitionWidth * ((double) i - 0.5 * (double) order) / spline; | |||
c[i] = static_cast<FloatType> (std::sin (2 * indice * normalisedFrequency) | |||
/ indice * std::pow (std::sin (indice2) / indice2, spline)); | |||
} | |||
@@ -160,12 +160,12 @@ typename FIR::Coefficients<FloatType>::Ptr | |||
auto factors = ws / MathConstants<double>::pi; | |||
for (size_t i = 0; i <= M; ++i) | |||
b (i, 0) = factorp * sinc (factorp * i); | |||
b (i, 0) = factorp * sinc (factorp * (double) i); | |||
q (0, 0) = factorp + stopBandWeight * (1.0 - factors); | |||
for (size_t i = 1; i <= 2 * M; ++i) | |||
q (i, 0) = factorp * sinc (factorp * i) - stopBandWeight * factors * sinc (factors * i); | |||
q (i, 0) = factorp * sinc (factorp * (double) i) - stopBandWeight * factors * sinc (factors * (double) i); | |||
auto Q1 = Matrix<double>::toeplitz (q, M + 1); | |||
auto Q2 = Matrix<double>::hankel (q, M + 1, 0); | |||
@@ -198,12 +198,12 @@ typename FIR::Coefficients<FloatType>::Ptr | |||
auto factors = ws / MathConstants<double>::pi; | |||
for (size_t i = 0; i < M; ++i) | |||
b (i, 0) = factorp * sinc (factorp * (i + 0.5)); | |||
b (i, 0) = factorp * sinc (factorp * ((double) i + 0.5)); | |||
for (size_t i = 0; i < 2 * M; ++i) | |||
{ | |||
qp (i, 0) = 0.25 * factorp * sinc (factorp * i); | |||
qs (i, 0) = -0.25 * stopBandWeight * factors * sinc (factors * i); | |||
qp (i, 0) = 0.25 * factorp * sinc (factorp * (double) i); | |||
qs (i, 0) = -0.25 * stopBandWeight * factors * sinc (factors * (double) i); | |||
} | |||
auto Q1p = Matrix<double>::toeplitz (qp, M); | |||
@@ -113,7 +113,7 @@ struct FFTFallback : public FFT::Instance | |||
{ | |||
configInverse->perform (input, output); | |||
const float scaleFactor = 1.0f / size; | |||
const float scaleFactor = 1.0f / (float) size; | |||
for (int i = 0; i < size; ++i) | |||
output[i] *= scaleFactor; | |||
@@ -136,10 +136,11 @@ void WindowingFunction<FloatType>::fillWindowingTables (FloatType* samples, size | |||
case kaiser: | |||
{ | |||
const double factor = 1.0 / SpecialFunctions::besselI0 (beta); | |||
const auto doubleSize = (double) size; | |||
for (size_t i = 0; i < size; ++i) | |||
samples[i] = static_cast<FloatType> (SpecialFunctions::besselI0 (beta * std::sqrt (1.0 - std::pow ((i - 0.5 * (size - 1.0)) | |||
/ ( 0.5 * (size - 1.0)), 2.0))) | |||
samples[i] = static_cast<FloatType> (SpecialFunctions::besselI0 (beta * std::sqrt (1.0 - std::pow (((double) i - 0.5 * (doubleSize - 1.0)) | |||
/ ( 0.5 * (doubleSize - 1.0)), 2.0))) | |||
* factor); | |||
} | |||
break; | |||
@@ -122,7 +122,7 @@ public: | |||
*/ | |||
FloatType get (FloatType index) const noexcept | |||
{ | |||
if (index >= getNumPoints()) | |||
if (index >= (FloatType) getNumPoints()) | |||
index = static_cast<FloatType> (getGuardIndex()); | |||
else if (index < 0) | |||
index = {}; | |||
@@ -563,8 +563,8 @@ Oversampling<SampleType>::Oversampling (size_t newNumChannels, size_t newFactor, | |||
auto gaindBFactorDown = (isMaximumQuality ? 10.0f : 8.0f); | |||
addOversamplingStage (FilterType::filterHalfBandPolyphaseIIR, | |||
twUp, gaindBStartUp + gaindBFactorUp * n, | |||
twDown, gaindBStartDown + gaindBFactorDown * n); | |||
twUp, gaindBStartUp + gaindBFactorUp * (float) n, | |||
twDown, gaindBStartDown + gaindBFactorDown * (float) n); | |||
} | |||
} | |||
else if (newType == FilterType::filterHalfBandFIREquiripple) | |||
@@ -580,8 +580,8 @@ Oversampling<SampleType>::Oversampling (size_t newNumChannels, size_t newFactor, | |||
auto gaindBFactorDown = (isMaximumQuality ? 10.0f : 8.0f); | |||
addOversamplingStage (FilterType::filterHalfBandFIREquiripple, | |||
twUp, gaindBStartUp + gaindBFactorUp * n, | |||
twDown, gaindBStartDown + gaindBFactorDown * n); | |||
twUp, gaindBStartUp + gaindBFactorUp * (float) n, | |||
twDown, gaindBStartDown + gaindBFactorDown * (float) n); | |||
} | |||
} | |||
} | |||
@@ -46,11 +46,11 @@ namespace ColourHelpers | |||
if (hi > 0) | |||
{ | |||
auto invDiff = 1.0f / (hi - lo); | |||
auto invDiff = 1.0f / (float) (hi - lo); | |||
auto red = (hi - r) * invDiff; | |||
auto green = (hi - g) * invDiff; | |||
auto blue = (hi - b) * invDiff; | |||
auto red = (float) (hi - r) * invDiff; | |||
auto green = (float) (hi - g) * invDiff; | |||
auto blue = (float) (hi - b) * invDiff; | |||
if (r == hi) hue = blue - green; | |||
else if (g == hi) hue = 2.0f + red - blue; | |||
@@ -79,12 +79,12 @@ namespace ColourHelpers | |||
if (hi > 0) | |||
{ | |||
lightness = ((hi + lo) / 2.0f) / 255.0f; | |||
lightness = ((float) (hi + lo) / 2.0f) / 255.0f; | |||
if (lightness > 0.0f) | |||
hue = getHue (col); | |||
saturation = (hi - lo) / (1.0f - std::abs ((2.0f * lightness) - 1.0f)); | |||
saturation = (float) (hi - lo) / (1.0f - std::abs ((2.0f * lightness) - 1.0f)); | |||
} | |||
} | |||
@@ -136,12 +136,12 @@ namespace ColourHelpers | |||
if (hi > 0) | |||
{ | |||
saturation = (hi - lo) / (float) hi; | |||
saturation = (float) (hi - lo) / (float) hi; | |||
if (saturation > 0.0f) | |||
hue = getHue (col); | |||
brightness = hi / 255.0f; | |||
brightness = (float) hi / 255.0f; | |||
} | |||
} | |||