diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index 17b515b2f..83fdad389 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -87,6 +87,12 @@ void FurnaceGUI::doAction(int what) { case GUI_ACTION_STOP: stop(); break; + case GUI_ACTION_PLAY_START: + e->setOrder(0); + if (!e->isPlaying()) { + play(); + } + break; case GUI_ACTION_PLAY_REPEAT: play(); e->setRepeatPattern(true); diff --git a/src/gui/gui.h b/src/gui/gui.h index 5bda0246c..86301b0a9 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -309,6 +309,7 @@ enum FurnaceGUIActions { GUI_ACTION_PLAY_TOGGLE, GUI_ACTION_PLAY, GUI_ACTION_STOP, + GUI_ACTION_PLAY_START, GUI_ACTION_PLAY_REPEAT, GUI_ACTION_PLAY_CURSOR, GUI_ACTION_STEP_ONE, diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index 722c56520..a95412222 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -447,6 +447,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={ D("PLAY_TOGGLE", "Play/Stop (toggle)", SDLK_RETURN), D("PLAY", "Play", 0), D("STOP", "Stop", 0), + D("PLAY_START", "Play (from beginning)", SDLK_F5), D("PLAY_REPEAT", "Play (repeat pattern)", 0), D("PLAY_CURSOR", "Play from cursor", FURKMOD_SHIFT|SDLK_RETURN), D("STEP_ONE", "Step row", FURKMOD_CMD|SDLK_RETURN), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 18490ad90..eef892ab8 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -1545,6 +1545,7 @@ void FurnaceGUI::drawSettings() { UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_TOGGLE); UI_KEYBIND_CONFIG(GUI_ACTION_PLAY); UI_KEYBIND_CONFIG(GUI_ACTION_STOP); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_START); UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_REPEAT); UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_CURSOR); UI_KEYBIND_CONFIG(GUI_ACTION_STEP_ONE);