LightsDriver_Win32Minimaid::LightsDriver_Win32Minimaid()
{
	_mmmagic_loaded=false;
	hMMMAGICDLL = LoadLibraryW(L"mmmagic.dll");
	if(hMMMAGICDLL == NULL)
	{
		MessageBox(NULL, "Could not LoadLibrary( mmmagic.dll ).", "ERROR", MB_OK );
		return;
	}
	_mmmagic_loaded=true;

	// Get the function pointers
	mm_connect_minimaid		= (MM_CONNECT_MINIMAID) GetProcAddress(hMMMAGICDLL, "mm_connect_minimaid");
	mm_setKB				= (MM_SETKB) GetProcAddress(hMMMAGICDLL, "mm_setKB");
	mm_setDDRPad1Light		= (MM_SETDDRPAD1LIGHT) GetProcAddress(hMMMAGICDLL, "mm_setDDRPad1Light");
	mm_setDDRPad2Light		= (MM_SETDDRPAD2LIGHT) GetProcAddress(hMMMAGICDLL, "mm_setDDRPad2Light");
	mm_setDDRCabinetLight	= (MM_SETCABINETLIGHT) GetProcAddress(hMMMAGICDLL, "mm_setDDRCabinetLight");
	mm_setDDRBassLight		= (MM_SETDDRBASSLIGHT) GetProcAddress(hMMMAGICDLL, "mm_setDDRBassLight");
	mm_setDDRAllOn			= (MM_SETDDRALLON) GetProcAddress(hMMMAGICDLL, "mm_setDDRAllOn");
	mm_setDDRAllOff			= (MM_SETDDRALLOFF) GetProcAddress(hMMMAGICDLL, "mm_setDDRAllOff");
	mm_setBlueLED			= (MM_SETBLUELED) GetProcAddress(hMMMAGICDLL, "mm_setBlueLED");
	mm_setMMOutputReports	= (MM_SETMMOUTPUTREPORTS) GetProcAddress(hMMMAGICDLL, "mm_setMMOutputReports");
	mm_sendDDRMiniMaidUpdate= (MM_SENDDDRMINIMAIDUPDATE) GetProcAddress(hMMMAGICDLL, "mm_sendDDRMiniMaidUpdate");
	mm_connect_minimaid();
	mm_setKB(true);
}
LightsDriver_LinuxMinimaid::LightsDriver_LinuxMinimaid()
{
	// libmmmagic is actually statically linked in, so there's no wrapper
	// initializing to do. -Kyz
	_mmmagic_loaded= true;
	mm_connect_minimaid();
	mm_setKB(true);
}