Clear samples of the visualizer when playback is stopped
This commit is contained in:
@@ -90,10 +90,8 @@ Visualizer::Visualizer()
|
|||||||
# endif // HAVE_FFTW3_H
|
# endif // HAVE_FFTW3_H
|
||||||
if (Config.visualizer_in_stereo)
|
if (Config.visualizer_in_stereo)
|
||||||
m_read_samples *= 2;
|
m_read_samples *= 2;
|
||||||
m_sample_buffer.resize(m_read_samples);
|
m_sample_buffer.resize(m_read_samples, 0);
|
||||||
m_temp_sample_buffer.resize(m_read_samples);
|
m_temp_sample_buffer.resize(m_read_samples, 0);
|
||||||
memset(m_sample_buffer.data(), 0, m_sample_buffer.size()*sizeof(int16_t));
|
|
||||||
memset(m_temp_sample_buffer.data(), 0, m_sample_buffer.size()*sizeof(int16_t));
|
|
||||||
|
|
||||||
# ifdef HAVE_FFTW3_H
|
# ifdef HAVE_FFTW3_H
|
||||||
m_fftw_results = DFT_TOTAL_SIZE/2+1;
|
m_fftw_results = DFT_TOTAL_SIZE/2+1;
|
||||||
@@ -110,12 +108,11 @@ Visualizer::Visualizer()
|
|||||||
void Visualizer::switchTo()
|
void Visualizer::switchTo()
|
||||||
{
|
{
|
||||||
SwitchTo::execute(this);
|
SwitchTo::execute(this);
|
||||||
w.clear();
|
Clear();
|
||||||
SetFD();
|
SetFD();
|
||||||
// negative infinity to toggle output in update() at least once
|
// negative infinity to toggle output in update() at least once
|
||||||
m_timer = boost::posix_time::neg_infin;
|
m_timer = boost::posix_time::neg_infin;
|
||||||
drawHeader();
|
drawHeader();
|
||||||
memset(m_sample_buffer.data(), 0, m_sample_buffer.size()*sizeof(int16_t));
|
|
||||||
# ifdef HAVE_FFTW3_H
|
# ifdef HAVE_FFTW3_H
|
||||||
GenLogspace();
|
GenLogspace();
|
||||||
m_bar_heights.reserve(w.getWidth());
|
m_bar_heights.reserve(w.getWidth());
|
||||||
@@ -639,6 +636,12 @@ void Visualizer::GenLogspace()
|
|||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
|
void Visualizer::Clear()
|
||||||
|
{
|
||||||
|
w.clear();
|
||||||
|
std::fill(m_sample_buffer.begin(), m_sample_buffer.end(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
void Visualizer::ToggleVisualizationType()
|
void Visualizer::ToggleVisualizationType()
|
||||||
{
|
{
|
||||||
switch (Config.visualizer_type)
|
switch (Config.visualizer_type)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ struct Visualizer: Screen<NC::Window>, Tabbable
|
|||||||
virtual bool isLockable() override { return true; }
|
virtual bool isLockable() override { return true; }
|
||||||
virtual bool isMergable() override { return true; }
|
virtual bool isMergable() override { return true; }
|
||||||
|
|
||||||
// private members
|
void Clear();
|
||||||
void ToggleVisualizationType();
|
void ToggleVisualizationType();
|
||||||
void SetFD();
|
void SetFD();
|
||||||
void ResetFD();
|
void ResetFD();
|
||||||
|
|||||||
@@ -518,7 +518,7 @@ void Status::Changes::playerState()
|
|||||||
}
|
}
|
||||||
# ifdef ENABLE_VISUALIZER
|
# ifdef ENABLE_VISUALIZER
|
||||||
if (isVisible(myVisualizer))
|
if (isVisible(myVisualizer))
|
||||||
myVisualizer->main().clear();
|
myVisualizer->Clear();
|
||||||
# endif // ENABLE_VISUALIZER
|
# endif // ENABLE_VISUALIZER
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user