| @@ -305,6 +305,7 @@ struct RackScene : Scene { | |||||
| RackScene(); | RackScene(); | ||||
| void step(); | void step(); | ||||
| void draw(NVGcontext *vg); | void draw(NVGcontext *vg); | ||||
| Widget *onHoverKey(Vec pos, int key); | |||||
| }; | }; | ||||
| //////////////////// | //////////////////// | ||||
| @@ -29,5 +29,25 @@ void RackScene::draw(NVGcontext *vg) { | |||||
| Scene::draw(vg); | Scene::draw(vg); | ||||
| } | } | ||||
| Widget *RackScene::onHoverKey(Vec pos, int key) { | |||||
| switch (key) { | |||||
| case GLFW_KEY_N: | |||||
| if (guiIsModPressed()) { | |||||
| gRackWidget->clear(); | |||||
| return this; | |||||
| } | |||||
| break; | |||||
| case GLFW_KEY_Q: | |||||
| if (guiIsModPressed()) { | |||||
| glfwSetWindowShouldClose(gWindow, GLFW_TRUE); | |||||
| return this; | |||||
| } | |||||
| break; | |||||
| } | |||||
| return Widget::onHoverKey(pos, key); | |||||
| } | |||||
| } // namespace rack | } // namespace rack | ||||
| @@ -88,7 +88,7 @@ void fixCwd() { | |||||
| using namespace rack; | using namespace rack; | ||||
| int main() { | |||||
| int main(int argc, char* argv[]) { | |||||
| #if ARCH_MAC | #if ARCH_MAC | ||||
| fixCwd(); | fixCwd(); | ||||
| #endif | #endif | ||||
| @@ -98,7 +98,10 @@ int main() { | |||||
| guiInit(); | guiInit(); | ||||
| sceneInit(); | sceneInit(); | ||||
| settingsLoad("settings.json"); | settingsLoad("settings.json"); | ||||
| gRackWidget->loadPatch("autosave.json"); | |||||
| if (argc >= 2) | |||||
| gRackWidget->loadPatch(argv[1]); | |||||
| else | |||||
| gRackWidget->loadPatch("autosave.json"); | |||||
| engineStart(); | engineStart(); | ||||
| guiRun(); | guiRun(); | ||||