aboutsummaryrefslogtreecommitdiff
path: root/simple-visualization/simplevisualization.cpp
blob: b93af3079da1d5b7ae585e58b8f036e6cb1e5fdb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#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;}