fix visualizer

master
Andrzej Rybczak 17 years ago
parent b947575528
commit dd866e9337
  1. 7
      src/ncmpcpp.cpp
  2. 3
      src/visualizer.cpp
  3. 7
      src/window.cpp
  4. 4
      src/window.h

@ -1990,6 +1990,13 @@ int main(int argc, char *argv[])
myServerInfo->SwitchTo();
}
// key mapping end
# ifdef ENABLE_VISUALIZER
// visualizer sets timmeout to 40ms, but since only it needs such small
// value, we should restore defalt one after switching to another screen.
if (wFooter->GetTimeout() < ncmpcpp_window_timeout && myScreen != myVisualizer)
wFooter->SetTimeout(ncmpcpp_window_timeout);
# endif // ENABLE_VISUALIZER
}
return 0;
}

@ -44,7 +44,6 @@ const unsigned Visualizer::FFTResults = Samples/2+1;
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 */);
ResetFD();
# ifdef HAVE_FFTW3_H
@ -73,6 +72,8 @@ void Visualizer::SwitchTo()
SetFD();
if (itsFifo >= 0)
Global::wFooter->SetTimeout(1000/25);
Global::RedrawHeader = 1;
}

@ -400,7 +400,7 @@ void Window::ReadKey(int &read_key) const
FD_SET(it->first, &fdset);
}
if (select(fd_max+1, &fdset, 0, 0, &timeout) > 0)
if (select(fd_max+1, &fdset, 0, 0, itsWindowTimeout < 0 ? 0 : &timeout) > 0)
{
# if !defined(USE_PDCURSES)
read_key = FD_ISSET(STDIN_FILENO, &fdset) ? wgetch(itsWindow) : ERR;
@ -748,6 +748,11 @@ Border Window::GetBorder() const
return itsBorder;
}
int Window::GetTimeout() const
{
return itsWindowTimeout;
}
void Window::Scroll(Where where)
{
idlok(itsWindow, 1);

@ -207,6 +207,10 @@ namespace NCurses
///
Border GetBorder() const;
/// @return current window's timeout
///
int GetTimeout() const;
/// Reads the string from standard input. Note that this is much more complex
/// function than getstr() from curses library. It allows for moving through
/// letters with arrows, supports scrolling if string's length is bigger than

Loading…
Cancel
Save