public DolphiimoteBridge(LogLevel logLevel, string logFile, Func <IMotionPlusFuser> fuserFactory)
        {
            this.logFile      = logFile;
            this.fuserFactory = fuserFactory;

            calibration = new WiimoteCalibration();
            dll         = new DolphiimoteDll(Path.Combine(Environment.CurrentDirectory, "DolphiiMote.dll"));

            deferredEnables   = new Queue <KeyValuePair <byte, WiimoteCapabilities> >();
            knownCapabilities = new Dictionary <byte, WiimoteCapabilities>();

            data = new Dictionary <uint, DolphiimoteWiimoteData>();

            for (byte i = 0; i < 4; i++)
            {
                data[i] = new DolphiimoteWiimoteData(i, calibration, fuserFactory());
            }
        }