コード例 #1
0
ファイル: SaitekMFD.cs プロジェクト: xedoc/JoystickCurves
 unsafe public static extern int DirectOutput_RegisterSoftButtonCallback(void* hDevice, ButtonCallbackDelegate pfnCb, int pCtxt);        
コード例 #2
0
ファイル: SaitekMFD.cs プロジェクト: xedoc/JoystickCurves
        public bool Acquire()
        {
            if (!ApiDLLFound)
                return false;

            Acquiring = true;

            Acquired = false;
            Unacquiring = false;

            try
            {
                pageCallback = new PageCallbackDelegate(PageCallback);
                Debug.Print("PageCallbackDelegate created");
                buttonCallback = new ButtonCallbackDelegate(ButtonCallback);
                Debug.Print("ButtonCallbackDelegate created");

                var result = 0;
                result = DirectOutput_Initialize(PROGRAMNAME);
                Debug.Print( "DirectOutput_Initialize result = {0}", result );
                if( ApiVersion <= 6 )
                {
                        result = DirectOutput_RegisterDeviceChangeCallback(new DeviceCallbackDelegate(DeviceCallback), 0);
                        Debug.Print("DirectOutput_RegisterDeviceChangeCallback result = {0}", result);
                        result = DirectOutput_Enumerate();
                        Debug.Print( "DirectOutput_Enumerate result = {0}", result );
                        result = DirectOutput_RegisterPageChangeCallback(m_hDevice, pageCallback, 0);
                        Debug.Print( "DirectOutput_RegisterPageChangeCallback result = {0}", result );
                        result = DirectOutput_RegisterSoftButtonChangeCallback(m_hDevice, buttonCallback, 0);
                        Debug.Print( "DirectOutput_RegisterSoftButtonChangeCallback result = {0}", result );
                }
                else
                {
                        result = DirectOutput_RegisterDeviceCallback(new DeviceCallbackDelegate(DeviceCallback), 0);
                        Debug.Print( "v7 DirectOutput_RegisterDeviceCallback result = {0}", result );
                        result = DirectOutput_Enumerate( new EnumerateCallbackDelegate( EnumerateCallback ),0);
                        Debug.Print( "v7 DirectOutput_Enumerate result = {0}", result );
                        result = DirectOutput_RegisterPageCallback(m_hDevice, pageCallback, 0);
                        Debug.Print( "v7 DirectOutput_RegisterPageCallback result = {0}", result );
                        result = DirectOutput_RegisterSoftButtonCallback(m_hDevice, buttonCallback, 0);
                        Debug.Print( "v7 DirectOutput_RegisterSoftButtonCallback result = {0}", result );
                }
                Acquired = true;
                Acquiring = false;
            }
            catch {
                Debug.Print("Saitek X52 pro acquire error!");
                if (OnError != null)
                    OnError(this, EventArgs.Empty);
                
                
                return false;
            }

            return true;
        }