add support for 'replay' function (play current song from the beginning)

master
Andrzej Rybczak 16 years ago
parent 342521459c
commit 35ddbe351a
  1. 2
      doc/keys
  2. 1
      src/help.cpp
  3. 16
      src/ncmpcpp.cpp
  4. 4
      src/settings.cpp
  5. 1
      src/settings.h

@ -82,6 +82,8 @@
# #
#key_prev = '<' #key_prev = '<'
# #
#key_replay = 263 127
#
#key_seek_forward = 'f' #key_seek_forward = 'f'
# #
#key_seek_backward = 'b' #key_seek_backward = 'b'

@ -172,6 +172,7 @@ void Help::GetKeybindings()
*w << DisplayKeys(Key.Pause) << "Pause\n"; *w << DisplayKeys(Key.Pause) << "Pause\n";
*w << DisplayKeys(Key.Next) << "Next track\n"; *w << DisplayKeys(Key.Next) << "Next track\n";
*w << DisplayKeys(Key.Prev) << "Previous track\n"; *w << DisplayKeys(Key.Prev) << "Previous track\n";
*w << DisplayKeys(Key.Replay) << "Play current track from the beginning\n";
*w << DisplayKeys(Key.SeekForward) << "Seek forward\n"; *w << DisplayKeys(Key.SeekForward) << "Seek forward\n";
*w << DisplayKeys(Key.SeekBackward) << "Seek backward\n"; *w << DisplayKeys(Key.SeekBackward) << "Seek backward\n";
*w << DisplayKeys(Key.VolumeDown) << "Decrease volume\n"; *w << DisplayKeys(Key.VolumeDown) << "Decrease volume\n";

@ -551,7 +551,13 @@ int main(int argc, char *argv[])
design_changed = 1; design_changed = 1;
resize_screen(); resize_screen();
} }
else if (Keypressed(input, Key.GoToParentDir)) else if (Keypressed(input, Key.GoToParentDir)
&& (myScreen == myBrowser
# ifdef HAVE_TAGLIB_H
|| myScreen == myTagEditor
# endif // HAVE_TAGLIB_H
)
)
{ {
if (myScreen == myBrowser && myBrowser->CurrentDir() != "/") if (myScreen == myBrowser && myBrowser->CurrentDir() != "/")
{ {
@ -797,6 +803,14 @@ int main(int argc, char *argv[])
} }
} }
} }
else if (Keypressed(input, Key.Replay))
{
if (Mpd.isPlaying())
{
Mpd.Seek(0);
UpdateStatusImmediately = 1;
}
}
else if (Keypressed(input, Key.Prev)) else if (Keypressed(input, Key.Prev))
{ {
Mpd.Prev(); Mpd.Prev();

@ -184,6 +184,7 @@ void NcmpcppKeys::SetDefaults()
Pause[0] = 'P'; Pause[0] = 'P';
Next[0] = '>'; Next[0] = '>';
Prev[0] = '<'; Prev[0] = '<';
Replay[0] = KEY_BACKSPACE;
SeekForward[0] = 'f'; SeekForward[0] = 'f';
SeekBackward[0] = 'b'; SeekBackward[0] = 'b';
ToggleRepeat[0] = 'r'; ToggleRepeat[0] = 'r';
@ -268,6 +269,7 @@ void NcmpcppKeys::SetDefaults()
Pause[1] = NullKey; Pause[1] = NullKey;
Next[1] = NullKey; Next[1] = NullKey;
Prev[1] = NullKey; Prev[1] = NullKey;
Replay[1] = 127;
SeekForward[1] = NullKey; SeekForward[1] = NullKey;
SeekBackward[1] = NullKey; SeekBackward[1] = NullKey;
ToggleRepeat[1] = NullKey; ToggleRepeat[1] = NullKey;
@ -503,6 +505,8 @@ void NcmpcppKeys::Read()
GetKeys(key, Next); GetKeys(key, Next);
else if (key.find("key_prev ") != std::string::npos) else if (key.find("key_prev ") != std::string::npos)
GetKeys(key, Prev); GetKeys(key, Prev);
else if (key.find("key_replay ") != std::string::npos)
GetKeys(key, Replay);
else if (key.find("key_seek_forward ") != std::string::npos) else if (key.find("key_seek_forward ") != std::string::npos)
GetKeys(key, SeekForward); GetKeys(key, SeekForward);
else if (key.find("key_seek_backward ") != std::string::npos) else if (key.find("key_seek_backward ") != std::string::npos)

@ -89,6 +89,7 @@ struct NcmpcppKeys
int Pause[2]; int Pause[2];
int Next[2]; int Next[2];
int Prev[2]; int Prev[2];
int Replay[2];
int SeekForward[2]; int SeekForward[2];
int SeekBackward[2]; int SeekBackward[2];
int ToggleRepeat[2]; int ToggleRepeat[2];

Loading…
Cancel
Save