OSDN Git Service

#26880 DIDEVICEOBJECTDATA構造体のdwOfsメンバ相当の値を取得できるプロパティを、SlimDXのJoystickState()に追加。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Mon, 12 Dec 2011 13:27:07 +0000 (13:27 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Mon, 12 Dec 2011 13:27:07 +0000 (13:27 +0000)
POV/HATが離されたことを検出するため。
これに伴い、DTXMania等SlimDXを参照するアプリをビルドするアプリは、必ずSlimDXのリビルド後にSlimDXのDLLを参照し直して下さい。
さもないとSlimDXのDLLのリンクに失敗してDTXManiaが起動できなくなります。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@264 16f42ceb-6dc6-49c8-ba94-f2d53467949d

SlimDXc_Jun2010(VC++2008)/source/directinput/Enums.h
SlimDXc_Jun2010(VC++2008)/source/directinput/Joystick.cpp
SlimDXc_Jun2010(VC++2008)/source/directinput/JoystickState.cpp
SlimDXc_Jun2010(VC++2008)/source/directinput/JoystickState.h

index 613ab0a..5625feb 100644 (file)
@@ -1294,5 +1294,53 @@ namespace SlimDX
                        Top = DIDAL_TOPALIGNED,\r
                        Bottom = DIDAL_BOTTOMALIGNED\r
                };\r
+\r
+               public enum class JoystickDeviceType : System::Int32\r
+               {\r
+                       X = DIJOFS_X,\r
+                       Y = DIJOFS_Y,\r
+                       Z = DIJOFS_Z,\r
+                       RX = DIJOFS_RX,\r
+                       RY = DIJOFS_RY,\r
+                       RZ = DIJOFS_RZ,\r
+                       SLIDER0 = DIJOFS_SLIDER(0),\r
+                       SLIDER1 = DIJOFS_SLIDER(1),\r
+                       POV0 = DIJOFS_POV(0),\r
+                       POV1 = DIJOFS_POV(1),\r
+                       POV2 = DIJOFS_POV(2),\r
+                       POV3 = DIJOFS_POV(3),\r
+                       BUTTON0 = DIJOFS_BUTTON0,\r
+                       BUTTON1 = DIJOFS_BUTTON1,\r
+                       BUTTON2 = DIJOFS_BUTTON2,\r
+                       BUTTON3 = DIJOFS_BUTTON3,\r
+                       BUTTON4 = DIJOFS_BUTTON4,\r
+                       BUTTON5 = DIJOFS_BUTTON5,\r
+                       BUTTON6 = DIJOFS_BUTTON6,\r
+                       BUTTON7 = DIJOFS_BUTTON7,\r
+                       BUTTON8 = DIJOFS_BUTTON8,\r
+                       BUTTON9 = DIJOFS_BUTTON9,\r
+                       BUTTON10 = DIJOFS_BUTTON10,\r
+                       BUTTON11 = DIJOFS_BUTTON11,\r
+                       BUTTON12 = DIJOFS_BUTTON12,\r
+                       BUTTON13 = DIJOFS_BUTTON13,\r
+                       BUTTON14 = DIJOFS_BUTTON14,\r
+                       BUTTON15 = DIJOFS_BUTTON15,\r
+                       BUTTON16 = DIJOFS_BUTTON16,\r
+                       BUTTON17 = DIJOFS_BUTTON17,\r
+                       BUTTON18 = DIJOFS_BUTTON18,\r
+                       BUTTON19 = DIJOFS_BUTTON19,\r
+                       BUTTON20 = DIJOFS_BUTTON20,\r
+                       BUTTON21 = DIJOFS_BUTTON21,\r
+                       BUTTON22 = DIJOFS_BUTTON22,\r
+                       BUTTON23 = DIJOFS_BUTTON23,\r
+                       BUTTON24 = DIJOFS_BUTTON24,\r
+                       BUTTON25 = DIJOFS_BUTTON25,\r
+                       BUTTON26 = DIJOFS_BUTTON26,\r
+                       BUTTON27 = DIJOFS_BUTTON27,\r
+                       BUTTON28 = DIJOFS_BUTTON28,\r
+                       BUTTON29 = DIJOFS_BUTTON29,\r
+                       BUTTON30 = DIJOFS_BUTTON30,\r
+                       BUTTON31 = DIJOFS_BUTTON31\r
+               };\r
        }\r
 }
\ No newline at end of file
index 83d6850..2a774dd 100644 (file)
@@ -46,6 +46,7 @@ namespace DirectInput
        {\r
                JoystickState^ result = gcnew JoystickState();\r
                result->timeStamp = objectData.dwTimeStamp;\r
+               result->dwOfs = objectData.dwOfs;\r
 \r
                switch( objectData.dwOfs )\r
                {\r
index 4c4f721..f9ff09b 100644 (file)
@@ -47,6 +47,7 @@ namespace DirectInput
                vsliders = gcnew array<int>( 2 );\r
                fsliders = gcnew array<int>( 2 );\r
                asliders = gcnew array<int>( 2 );\r
+               dwOfs = 0;                                                                                      // #26880 2011.12.3 yyagi\r
        }\r
 \r
        JoystickState::JoystickState( const DIJOYSTATE2 &joystate )\r
index 92fa44c..6ee275b 100644 (file)
@@ -66,6 +66,7 @@ namespace SlimDX
                        int fry;\r
                        int frz;\r
                        array<int>^ fsliders;\r
+                       int dwOfs;                                                                                      // 2011.12.3 yyagi; to get POVS/HAT updaate\r
 \r
                        JoystickState( const DIJOYSTATE2 &joystate );\r
 \r
@@ -320,6 +321,11 @@ namespace SlimDX
                                int get() { return frz; }\r
                        }\r
 \r
+                       property int JoystickDeviceType\r
+                       {\r
+                               int get() { return dwOfs; }\r
+                       }\r
+\r
                        bool IsPressed( int button ) { return pressedButtons[button]; }\r
                        bool IsReleased( int button ) { return releasedButtons[button]; }\r
 \r