#include "simplevisualization.hpp" #include "qmpkeyboardwindow.hpp" qmpSimpleVisualization::qmpSimpleVisualization(qmpPluginAPI *_api) { api = _api; } void qmpSimpleVisualization::show() { p->show(); } void qmpSimpleVisualization::close() { p->close(); } void qmpSimpleVisualization::init() { api->registerFunctionality(this, "Keyboard", "Keyboard", api->isDarkTheme() ? ":/img/visualization_i.svg" : ":/img/visualization.svg", 0, true); for (int i = 0; i < 16; ++i) { api->registerOptionUint("", "", "Keyboard/acolor" + std::to_string(i), 0, 0xffffff, 0xffff66cc); api->registerOptionUint("", "", "Keyboard/bcolor" + std::to_string(i), 0, 0xffffff, 0xff66ccff); } p = new qmpKeyboardWindow(api, (QWidget *)api->getMainWindow()); auto refreshfn = [this](const void *, void *) { this->p->resetAll(); }; uihs = api->registerUIHook("main.stop", refreshfn, nullptr); uihsk = api->registerUIHook("main.seek", refreshfn, nullptr); uihsk = api->registerUIHook("preset.set", refreshfn, nullptr); uihsk = api->registerUIHook("channel.ccchange", refreshfn, nullptr); } void qmpSimpleVisualization::deinit() { if (!api) return; close(); api->unregisterFunctionality("Keyboard"); api->unregisterUIHook("main.stop", uihs); api->unregisterUIHook("main.seek", uihsk); delete p; } const char *qmpSimpleVisualization::pluginGetName() { return "QMidiPlayer Simple Visualization Plugin"; } const char *qmpSimpleVisualization::pluginGetVersion() { return PLUGIN_VERSION; }