public OSXHIDInterface()
        {
            __drivers = new List <IDriver>();

            __ports = new string[20];



            HandleHIDDeviceAdded   = HidDeviceAdded;
            HandleHIDDeviceRemoved = HidDeviceRemoved;
            HandleDeviceRemoved    = DeviceRemoved;

            CFDictionaryRef[] dictionaries;



            dictionaries = new CFDictionaryRef[3];

            //create 3 search patterns by Joystick,GamePad and MulitAxisController

            // base.typeRef = CFLibrary.CFDictionaryCreate(IntPtr.Zero,keyz,values,keys.Length,ref kcall,ref vcall);



            dictionaries[0] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop, (uint)Native.HIDUsageGD.Joystick);

            dictionaries[1] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop, (uint)Native.HIDUsageGD.GamePad);

            dictionaries[2] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop, (uint)Native.HIDUsageGD.MultiAxisController);



            DeviceTypes = new Native.CFArray(dictionaries);


            //create Hid manager
            hidmanager = Native.IOHIDManagerCreate(IntPtr.Zero, (int)Native.IOHIDOptionsType.kIOHIDOptionsTypeNone);
        }
		public OSXHIDInterface()
		{
			__drivers = new List<IDriver>();

			__ports = new string[20];


			
			HandleHIDDeviceAdded = HidDeviceAdded;
			HandleHIDDeviceRemoved = HidDeviceRemoved;
			HandleDeviceRemoved = DeviceRemoved;
			
			CFDictionaryRef[] dictionaries;
			
			
			
			
			
			
			dictionaries = new CFDictionaryRef[3];
			
			//create 3 search patterns by Joystick,GamePad and MulitAxisController
			
			// base.typeRef = CFLibrary.CFDictionaryCreate(IntPtr.Zero,keyz,values,keys.Length,ref kcall,ref vcall); 
			
			
			
			
			dictionaries[0] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop,(uint)Native.HIDUsageGD.Joystick);			
			
			dictionaries[1] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop,(uint)Native.HIDUsageGD.GamePad);
			
			dictionaries[2] = CreateDeviceMatchingDictionary((uint)Native.HIDPage.GenericDesktop,(uint)Native.HIDUsageGD.MultiAxisController);
			
			
			
			
			
			
			DeviceTypes= new Native.CFArray (dictionaries);
			
			
			//create Hid manager	
			hidmanager = Native.IOHIDManagerCreate(IntPtr.Zero,(int)Native.IOHIDOptionsType.kIOHIDOptionsTypeNone);
			
			

			
			
			
			
		}