From c79624b24a0c662f1e1d404b87fe9559fd6900e6 Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Wed, 28 May 2014 21:19:39 +0200 Subject: reset the playqueue if a user attempts to play the selected file (bug #928) --- plugins/hotkeys/hotkeys.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'plugins/hotkeys') diff --git a/plugins/hotkeys/hotkeys.c b/plugins/hotkeys/hotkeys.c index f1deaac8..4315602d 100644 --- a/plugins/hotkeys/hotkeys.c +++ b/plugins/hotkeys/hotkeys.c @@ -587,6 +587,7 @@ hotkeys_reset (void) { int action_play_cb (struct DB_plugin_action_s *action, int ctx) { + // NOTE: this function is copied as on_playbtn_clicked in gtkui DB_output_t *output = deadbeef->get_output (); if (output->state () == OUTPUT_STATE_PAUSED) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); @@ -604,7 +605,7 @@ action_play_cb (struct DB_plugin_action_s *action, int ctx) { deadbeef->sendmessage (DB_EV_PLAY_NUM, 0, cur, 0); } else { - deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0); + deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 1, 0); } } else { @@ -613,7 +614,13 @@ action_play_cb (struct DB_plugin_action_s *action, int ctx) { deadbeef->plt_unref (plt); } else { - deadbeef->sendmessage (DB_EV_PLAY_CURRENT, 0, 0, 0); + ddb_playlist_t *plt = deadbeef->plt_get_curr (); + int cur = -1; + if (plt) { + cur = deadbeef->plt_get_cursor (plt, PL_MAIN); + deadbeef->plt_unref (plt); + } + deadbeef->sendmessage (DB_EV_PLAY_NUM, 0, cur, 0); } return 0; } -- cgit v1.2.3