actions: only shuffle selected range of playlist if applicable
This commit is contained in:
@@ -1184,7 +1184,10 @@ void ToggleRepeat::run()
|
||||
|
||||
void Shuffle::run()
|
||||
{
|
||||
Mpd.Shuffle();
|
||||
auto begin = myPlaylist->main().begin(), end = myPlaylist->main().end();
|
||||
auto range = getSelectedRange(begin, end);
|
||||
Mpd.ShuffleRange(range.first-begin, range.second-begin);
|
||||
Statusbar::print("Range shuffled");
|
||||
}
|
||||
|
||||
void ToggleRandom::run()
|
||||
|
||||
@@ -240,7 +240,7 @@ void write_bindings(NC::Scrollpad &w)
|
||||
key(w, Type::ToggleConsume, "Toggle consume mode");
|
||||
key(w, Type::ToggleReplayGainMode, "Toggle replay gain mode");
|
||||
key(w, Type::ToggleBitrateVisibility, "Toggle bitrate visibility");
|
||||
key(w, Type::Shuffle, "Shuffle playlist");
|
||||
key(w, Type::Shuffle, "Shuffle selected range in playlist");
|
||||
key(w, Type::ToggleCrossfade, "Toggle crossfade mode");
|
||||
key(w, Type::SetCrossfade, "Set crossfade");
|
||||
key(w, Type::SetVolume, "Set volume");
|
||||
|
||||
@@ -297,6 +297,13 @@ void Connection::Shuffle()
|
||||
checkErrors();
|
||||
}
|
||||
|
||||
void Connection::ShuffleRange(unsigned start, unsigned end)
|
||||
{
|
||||
prechecksNoCommandsList();
|
||||
mpd_run_shuffle_range(m_connection.get(), start, end);
|
||||
checkErrors();
|
||||
}
|
||||
|
||||
void Connection::ClearMainPlaylist()
|
||||
{
|
||||
prechecksNoCommandsList();
|
||||
|
||||
@@ -498,6 +498,7 @@ struct Connection
|
||||
void Swap(unsigned, unsigned);
|
||||
void Seek(unsigned int pos, unsigned int where);
|
||||
void Shuffle();
|
||||
void ShuffleRange(unsigned start, unsigned end);
|
||||
void ClearMainPlaylist();
|
||||
|
||||
SongIterator GetPlaylistChanges(unsigned);
|
||||
|
||||
Reference in New Issue
Block a user