actions: only shuffle selected range of playlist if applicable
This commit is contained in:
1
NEWS
1
NEWS
@@ -18,6 +18,7 @@ ncmpcpp-0.7 (????-??-??)
|
|||||||
* Searching with regular expressions are now enabled by default.
|
* Searching with regular expressions are now enabled by default.
|
||||||
* Support for the Perl regular expression syntax was added.
|
* Support for the Perl regular expression syntax was added.
|
||||||
* BOOST_LIB_SUFFIX configure variable is now empty by default.
|
* BOOST_LIB_SUFFIX configure variable is now empty by default.
|
||||||
|
* Shuffle function now shuffles only selected range if selection in playlist is active.
|
||||||
|
|
||||||
ncmpcpp-0.6.3 (2015-03-02)
|
ncmpcpp-0.6.3 (2015-03-02)
|
||||||
|
|
||||||
|
|||||||
@@ -1184,7 +1184,10 @@ void ToggleRepeat::run()
|
|||||||
|
|
||||||
void Shuffle::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()
|
void ToggleRandom::run()
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ void write_bindings(NC::Scrollpad &w)
|
|||||||
key(w, Type::ToggleConsume, "Toggle consume mode");
|
key(w, Type::ToggleConsume, "Toggle consume mode");
|
||||||
key(w, Type::ToggleReplayGainMode, "Toggle replay gain mode");
|
key(w, Type::ToggleReplayGainMode, "Toggle replay gain mode");
|
||||||
key(w, Type::ToggleBitrateVisibility, "Toggle bitrate visibility");
|
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::ToggleCrossfade, "Toggle crossfade mode");
|
||||||
key(w, Type::SetCrossfade, "Set crossfade");
|
key(w, Type::SetCrossfade, "Set crossfade");
|
||||||
key(w, Type::SetVolume, "Set volume");
|
key(w, Type::SetVolume, "Set volume");
|
||||||
|
|||||||
@@ -297,6 +297,13 @@ void Connection::Shuffle()
|
|||||||
checkErrors();
|
checkErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Connection::ShuffleRange(unsigned start, unsigned end)
|
||||||
|
{
|
||||||
|
prechecksNoCommandsList();
|
||||||
|
mpd_run_shuffle_range(m_connection.get(), start, end);
|
||||||
|
checkErrors();
|
||||||
|
}
|
||||||
|
|
||||||
void Connection::ClearMainPlaylist()
|
void Connection::ClearMainPlaylist()
|
||||||
{
|
{
|
||||||
prechecksNoCommandsList();
|
prechecksNoCommandsList();
|
||||||
|
|||||||
@@ -498,6 +498,7 @@ struct Connection
|
|||||||
void Swap(unsigned, unsigned);
|
void Swap(unsigned, unsigned);
|
||||||
void Seek(unsigned int pos, unsigned int where);
|
void Seek(unsigned int pos, unsigned int where);
|
||||||
void Shuffle();
|
void Shuffle();
|
||||||
|
void ShuffleRange(unsigned start, unsigned end);
|
||||||
void ClearMainPlaylist();
|
void ClearMainPlaylist();
|
||||||
|
|
||||||
SongIterator GetPlaylistChanges(unsigned);
|
SongIterator GetPlaylistChanges(unsigned);
|
||||||
|
|||||||
Reference in New Issue
Block a user