Change behavior of skip to previous song to start the current song from

the beginning, if it is playing for more than 3 seconds
This commit is contained in:
chme 2014-05-17 15:33:35 +02:00
parent b195e76f11
commit 4d79a85780

View File

@ -2633,6 +2633,7 @@ static int
playback_prev_bh(struct player_command *cmd) playback_prev_bh(struct player_command *cmd)
{ {
int ret; int ret;
int pos_sec;
if (!cur_streaming) if (!cur_streaming)
{ {
@ -2646,12 +2647,34 @@ playback_prev_bh(struct player_command *cmd)
source_stop(cur_streaming); source_stop(cur_streaming);
ret = source_prev(); /* Compute the playing time in seconds for the current song. */
if (ret < 0) if (cur_streaming->end > cur_streaming->stream_start)
{ pos_sec = (cur_streaming->end - cur_streaming->stream_start) / 44100;
playback_abort(); else
pos_sec = 0;
return -1; /* Only skip to the previous song if the playing time is less than 3 seconds,
otherwise restart the current song. */
DPRINTF(E_DBG, L_PLAYER, "Skipping song played %d sec\n", pos_sec);
if (pos_sec < 3)
{
ret = source_prev();
if (ret < 0)
{
playback_abort();
return -1;
}
}
else
{
ret = source_open(cur_streaming, 1);
if (ret < 0)
{
playback_abort();
return -1;
}
} }
if (player_state == PLAY_STOPPED) if (player_state == PLAY_STOPPED)
@ -2668,6 +2691,7 @@ playback_prev_bh(struct player_command *cmd)
return 0; return 0;
} }
static int static int
playback_next_bh(struct player_command *cmd) playback_next_bh(struct player_command *cmd)
{ {