fix visualizer
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user