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

This commit is contained in:
Andrzej Rybczak
2010-08-13 06:31:58 +02:00
parent 342521459c
commit 35ddbe351a
5 changed files with 23 additions and 1 deletions

View File

@@ -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'

View File

@@ -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";

View File

@@ -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();

View File

@@ -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)

View File

@@ -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];