make visualizer work after mpd restart

master
Andrzej Rybczak 17 years ago
parent f0ebc47785
commit 7c593fa90c
  1. 5
      src/ncmpcpp.cpp
  2. 16
      src/visualizer.cpp
  3. 3
      src/visualizer.h

@ -203,6 +203,11 @@ int main(int argc, char *argv[])
# ifdef ENABLE_OUTPUTS
myOutputs->FetchList();
# endif // ENABLE_OUTPUTS
# ifdef ENABLE_VISUALIZER
myVisualizer->ResetFD();
if (myScreen == myVisualizer)
myVisualizer->SetFD();
# endif // ENABLE_VISUALIZER
}
}

@ -44,7 +44,7 @@ void Visualizer::Init()
w = new Window(0, MainStartY, COLS, MainHeight, "", Config.main_color, brNone);
w->SetTimeout(Config.visualizer_fifo_path.empty() ? ncmpcpp_window_timeout : 40 /* this gives us 25 fps */);
itsFifo = -1;
ResetFD();
itsFreqsMagnitude = new unsigned[FFTResults];
itsInput = static_cast<double *>(fftw_malloc(sizeof(double)*Samples));
itsOutput = static_cast<fftw_complex *>(fftw_malloc(sizeof(fftw_complex)*FFTResults));
@ -67,8 +67,7 @@ void Visualizer::SwitchTo()
myScreen = this;
w->Clear();
if (itsFifo < 0 && (itsFifo = open(Config.visualizer_fifo_path.c_str(), O_RDONLY | O_NONBLOCK)) < 0)
ShowMessage("Couldn't open fifo for reading PCM data: %s", strerror(errno));
SetFD();
Global::RedrawHeader = 1;
}
@ -127,5 +126,16 @@ void Visualizer::Update()
w->Refresh();
}
void Visualizer::SetFD()
{
if (itsFifo < 0 && (itsFifo = open(Config.visualizer_fifo_path.c_str(), O_RDONLY | O_NONBLOCK)) < 0)
ShowMessage("Couldn't open fifo for reading PCM data: %s", strerror(errno));
}
void Visualizer::ResetFD()
{
itsFifo = -1;
}
#endif // ENABLE_VISUALIZER

@ -51,6 +51,9 @@ class Visualizer : public Screen<Window>
virtual bool allowsSelection() { return false; }
void SetFD();
void ResetFD();
protected:
virtual void Init();

Loading…
Cancel
Save