This commit is contained in:
Maurice Grönwoldt 2020-07-09 16:31:33 +02:00
commit 61482e8d4c
36 changed files with 325 additions and 122 deletions

View file

@ -29,5 +29,6 @@ public:
protected:
std::string m_processId;
std::shared_ptr<LabelComponent> m_label;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BaseComponent);
};
#endif //VENO_BASECOMPONENT_H

View file

@ -24,5 +24,6 @@ protected:
void drawHeadline (Graphics& g);
void drawFooter (Graphics& g);
std::unique_ptr<Waveforms> waveform;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SidebarLCD);
};
#endif //VENO_SIDEBARLCD_H

View file

@ -63,6 +63,9 @@ void Waveforms::renderOpenGL ()
auto color = theme->getColour (ThemeColour::lcd);
shaderProgram->setUniform ("color", color.getFloatRed (), color.getFloatGreen (), color.getFloatBlue (),
color.getFloatAlpha ());
// same color currently! will set to a diff if peak is detected!
shaderProgram->setUniform ("gradientColor", color.getFloatRed (), color.getFloatGreen (), color.getFloatBlue (),
color.getFloatAlpha ());
if (m_isWelcome || m_isStarting || m_isChangingData)
{
return;
@ -92,6 +95,8 @@ void Waveforms::compileOpenGLShaderProgram ()
&& shaderProgramAttempt->link ())
{
shaderProgram = std::move (shaderProgramAttempt);
} else {
DBG(shaderProgramAttempt->getLastError().toStdString());
}
}
@ -144,10 +149,17 @@ void Waveforms::drawAudioOutput ()
glBegin (GL_LINE_STRIP);
float posX = -1;
float inc = 2.0f / buffer.size ();
for (float i : buffer)
for (int j = 0; j < buffer.size(); ++j)
{
glVertex2f (posX, i);
posX += inc;
try
{
glVertex2f (posX, buffer.at(j));
posX += inc;
} catch (_exception e)
{
//something is wrong skip the draw and end it!
break;
}
}
glEnd ();
}
@ -160,7 +172,6 @@ void Waveforms::drawPeakMeter ()
return;
}
auto instance = VenoInstance::getInstance (BaseComponent::m_processId);
instance->audioBuffer->calcPeak ();
repaint();
// draw peak signal
auto leftChannel = getdBForChannel (instance->audioBuffer->leftPeak);
@ -276,6 +287,8 @@ void Waveforms::selectColourByPeak (float value)
return;
}
auto color = theme->getColour (ThemeColour::lcd);
shaderProgram->setUniform ("color", color.getFloatRed (), color.getFloatGreen (), color.getFloatBlue (),
color.getFloatAlpha ());
if (value > 0.87)
{
color = theme->getColour (ThemeColour::clip);
@ -284,7 +297,7 @@ void Waveforms::selectColourByPeak (float value)
{
color = theme->getColour (ThemeColour::warning);
}
shaderProgram->setUniform ("color", color.getFloatRed (), color.getFloatGreen (), color.getFloatBlue (),
shaderProgram->setUniform ("gradientColor", color.getFloatRed (), color.getFloatGreen (), color.getFloatBlue (),
color.getFloatAlpha ());
}

View file

@ -28,6 +28,7 @@ protected:
int m_time_needed_startup = 0;
int m_time_needed = 0;
bool needToClear = false;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Waveforms);
public:
explicit Waveforms (const std::string& processId);
~Waveforms () override;

View file

@ -38,6 +38,7 @@ ConfigComponent::~ConfigComponent ()
color.reset();
}
m_colors.clear();
m_preColours.reset(nullptr);
}
ThemeColour ConfigComponent::getColorForId (int id)

View file

@ -18,6 +18,8 @@ Sidebar::~Sidebar ()
{
m_lcd.reset(nullptr);
m_configButton.reset(nullptr);
m_mixer.reset(nullptr);
VenoLogo::deleteInstance();
}
void Sidebar::resized ()

View file

@ -23,5 +23,6 @@ protected:
std::unique_ptr<SidebarLCD> m_lcd;
std::unique_ptr<SidebarMixer> m_mixer;
std::unique_ptr<VenoConfigButton> m_configButton;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Sidebar)
};
#endif //VENO_SIDEBAR_H

View file

@ -18,5 +18,7 @@ public:
static void deleteInstance ();
VenoLogo ();
~VenoLogo () = default;
protected:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VenoLogo)
};
#endif //VENO_VENOLOGO_H

View file

@ -11,6 +11,8 @@ class FlatLook : public LookAndFeel_V4
{
private:
public:
FlatLook() = default;
~FlatLook() override = default;
void drawButtonBackground (Graphics& graphics, Button& button, const Colour& backgroundColour,
bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override;
@ -29,5 +31,6 @@ public:
int buttonH, ComboBox &box) override;
protected:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FlatLook);
};
#endif //VENO_FLATLOOK_H

View file

@ -15,6 +15,7 @@ LookHandler::~LookHandler ()
//delete this shit!
delete m_feels[0];
delete m_feels[1];
m_look.reset();
}
void LookHandler::selectLook (int index)

View file

@ -26,5 +26,6 @@ public:
protected:
//currently both available themes are CrazyLook <-- (this is a fun one xD) and FlatLook
LookAndFeel_V4* m_feels[2] = {new FlatLook(), new CrazyLook()};
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LookHandler);
};
#endif //VENO_LOOKHANDLER_H

View file

@ -27,5 +27,6 @@ public:
protected:
std::map<ThemeColour, Colour*> m_colours;
std::shared_ptr<PropertiesFile> m_configFile;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Theme);
};
#endif //VENO_THEME_H