status: fix toggling flags

This commit is contained in:
Andrzej Rybczak
2014-09-03 19:07:55 +02:00
parent 18de4c1e77
commit 06a07b0d33
10 changed files with 72 additions and 149 deletions

View File

@@ -331,14 +331,14 @@ void MouseEvent::run()
&& m_mouse_event.y == LINES-(Config.statusbar_visibility ? 2 : 1)
) // progressbar
{
if (Status::State::player() == MPD::psStop)
if (Status::get().playerState() == MPD::psStop)
return;
Mpd.Seek(myPlaylist->currentSongPosition(),
myPlaylist->currentSongLength()*m_mouse_event.x/double(COLS));
Mpd.Seek(Status::get().currentSongPosition(),
Status::get().totalTime()*m_mouse_event.x/double(COLS));
}
else if (m_mouse_event.bstate & BUTTON1_PRESSED
&& (Config.statusbar_visibility || Config.design == Design::Alternative)
&& Status::State::player() != MPD::psStop
&& Status::get().playerState() != MPD::psStop
&& m_mouse_event.y == (Config.design == Design::Alternative ? 1 : LINES-1)
&& m_mouse_event.x < 9
) // playing/paused
@@ -616,13 +616,13 @@ void SlaveScreen::run()
void VolumeUp::run()
{
int volume = std::min(Status::State::volume()+Config.volume_change_step, 100u);
int volume = std::min(Status::get().volume()+Config.volume_change_step, 100u);
Mpd.SetVolume(volume);
}
void VolumeDown::run()
{
int volume = std::max(int(Status::State::volume()-Config.volume_change_step), 0);
int volume = std::max(int(Status::get().volume()-Config.volume_change_step), 0);
Mpd.SetVolume(volume);
}
@@ -744,8 +744,8 @@ void DeleteStoredPlaylist::run()
void ReplaySong::run()
{
if (Status::State::player() != MPD::psStop)
Mpd.Seek(myPlaylist->currentSongPosition(), 0);
if (Status::get().playerState() != MPD::psStop)
Mpd.Seek(Status::get().currentSongPosition(), 0);
}
void PreviousSong::run()
@@ -979,7 +979,7 @@ void Add::run()
bool SeekForward::canBeRun() const
{
return Status::State::player() != MPD::psStop && myPlaylist->currentSongLength() > 0;
return Status::get().playerState() != MPD::psStop && Status::get().totalTime() > 0;
}
void SeekForward::run()
@@ -989,7 +989,7 @@ void SeekForward::run()
bool SeekBackward::canBeRun() const
{
return Status::State::player() != MPD::psStop && myPlaylist->currentSongLength() > 0;
return Status::get().playerState() != MPD::psStop && Status::get().totalTime() > 0;
}
void SeekBackward::run()
@@ -1140,9 +1140,9 @@ void TogglePlayingSongCentering::run()
Config.autocenter_mode ? "on" : "off"
);
if (Config.autocenter_mode
&& Status::State::player() != MPD::psStop
&& Status::get().playerState() != MPD::psStop
&& !myPlaylist->main().isFiltered())
myPlaylist->main().highlight(myPlaylist->currentSongPosition());
myPlaylist->main().highlight(Status::get().currentSongPosition());
}
void UpdateDatabase::run()
@@ -1162,13 +1162,13 @@ bool JumpToPlayingSong::canBeRun() const
return ((myScreen == myPlaylist && !myPlaylist->isFiltered())
|| myScreen == myBrowser
|| myScreen == myLibrary)
&& Status::State::player() != MPD::psStop;
&& Status::get().playerState() != MPD::psStop;
}
void JumpToPlayingSong::run()
{
if (myScreen == myPlaylist)
myPlaylist->main().highlight(myPlaylist->currentSongPosition());
myPlaylist->main().highlight(Status::get().currentSongPosition());
else if (myScreen == myBrowser)
{
myBrowser->LocateSong(myPlaylist->nowPlayingSong());
@@ -1182,7 +1182,7 @@ void JumpToPlayingSong::run()
void ToggleRepeat::run()
{
Mpd.SetRepeat(!Status::State::repeat());
Mpd.SetRepeat(!Status::get().repeat());
}
void Shuffle::run()
@@ -1192,7 +1192,7 @@ void Shuffle::run()
void ToggleRandom::run()
{
Mpd.SetRandom(!Status::State::random());
Mpd.SetRandom(!Status::get().random());
}
bool StartSearching::canBeRun() const
@@ -1237,17 +1237,17 @@ void SaveTagChanges::run()
void ToggleSingle::run()
{
Mpd.SetSingle(!Status::State::single());
Mpd.SetSingle(!Status::get().single());
}
void ToggleConsume::run()
{
Mpd.SetConsume(!Status::State::consume());
Mpd.SetConsume(!Status::get().consume());
}
void ToggleCrossfade::run()
{
Mpd.SetCrossfade(Status::State::crossfade() ? 0 : Config.crossfade_time);
Mpd.SetCrossfade(Status::get().crossfade() ? 0 : Config.crossfade_time);
}
void SetCrossfade::run()
@@ -1612,7 +1612,7 @@ void JumpToTagEditor::run()
bool JumpToPositionInSong::canBeRun() const
{
return Status::State::player() != MPD::psStop && myPlaylist->currentSongLength() > 0;
return Status::get().playerState() != MPD::psStop && Status::get().totalTime() > 0;
}
void JumpToPositionInSong::run()
@@ -2668,7 +2668,7 @@ void seek()
using Global::Timer;
using Global::SeekingInProgress;
if (!myPlaylist->currentSongLength())
if (!Status::get().totalTime())
{
Statusbar::print("Unknown item length");
return;
@@ -2676,8 +2676,8 @@ void seek()
Progressbar::lock();
Statusbar::lock();
unsigned songpos = Status::State::elapsedTime();
unsigned songpos = Status::elapsedTime();
auto t = Timer;
int old_timeout = wFooter->getTimeout();
@@ -2702,8 +2702,8 @@ void seek()
auto a = k.first->action();
if (a == seekForward)
{
if (songpos < myPlaylist->currentSongLength())
songpos = std::min(songpos + howmuch, myPlaylist->currentSongLength());
if (songpos < Status::get().totalTime())
songpos = std::min(songpos + howmuch, Status::get().totalTime());
}
else if (a == seekBackward)
{
@@ -2727,12 +2727,12 @@ void seek()
if (Config.display_remaining_time)
{
tracklength += "-";
tracklength += MPD::Song::ShowTime(myPlaylist->currentSongLength()-songpos);
tracklength += MPD::Song::ShowTime(Status::get().totalTime()-songpos);
}
else
tracklength += MPD::Song::ShowTime(songpos);
tracklength += "/";
tracklength += MPD::Song::ShowTime(myPlaylist->currentSongLength());
tracklength += MPD::Song::ShowTime(Status::get().totalTime());
tracklength += "]";
*wFooter << NC::XY(wFooter->getWidth()-tracklength.length(), 1) << tracklength;
break;
@@ -2740,22 +2740,22 @@ void seek()
if (Config.display_remaining_time)
{
tracklength = "-";
tracklength += MPD::Song::ShowTime(myPlaylist->currentSongLength()-songpos);
tracklength += MPD::Song::ShowTime(Status::get().totalTime()-songpos);
}
else
tracklength = MPD::Song::ShowTime(songpos);
tracklength += "/";
tracklength += MPD::Song::ShowTime(myPlaylist->currentSongLength());
tracklength += MPD::Song::ShowTime(Status::get().totalTime());
*wHeader << NC::XY(0, 0) << tracklength << " ";
wHeader->refresh();
break;
}
*wFooter << NC::Format::NoBold;
Progressbar::draw(songpos, myPlaylist->currentSongLength());
Progressbar::draw(songpos, Status::get().totalTime());
wFooter->refresh();
}
SeekingInProgress = false;
Mpd.Seek(myPlaylist->currentSongPosition(), songpos);
Mpd.Seek(Status::get().currentSongPosition(), songpos);
wFooter->setTimeout(old_timeout);