//
        // Constructor
        //
        public LedControllerBase(ILedControllerExtender extendedController, ControlerUpdateType updateType)
        {
            if(extendedController == null)
            {
                throw new Exception("A controller extender is required!");
            }

            m_controllerExtener = extendedController;
            m_updateType = updateType;
            m_animationEnabled = false;
            m_alwaysPaint = false;
            m_isDirty = false;
            m_ledMap = new Dictionary<int, WeakReference<Led>>();
            m_animationListeners = new List<WeakReference<IAnimationTickListner>>();
            m_masterIntensity = 1.0;
        }
 //
 // Constructor
 //
 /// <summary>
 /// The constructor for the LED controller. The state change interface is used to tell the
 //  implementer when slots have been added or removed and when new slot update are available.
 //  The controller update type indicates how the controller wants to take update, see above.
 /// </summary>
 /// <param name="stateListener">The callback for controller events</param>
 /// <param name="updateType">Defines how the extended controller can take updates</param>
 public LedController(ILedControllerExtender stateListener, ControlerUpdateType updateType)
 {
     m_base = new LedControllerBase(stateListener, updateType);
 }