dinput: Do not unacquire the device after every read, otherwise keyboard does not work. Fix inaccuracy in c_dfDIJoystick2 definition
							parent
							
								
									b6e0faae05
								
							
						
					
					
						commit
						f0951c36f2
					
				| 
						 | 
				
			
			@ -218,9 +218,7 @@ M: dinput-game-input-backend instance-id
 | 
			
		|||
 | 
			
		||||
:: with-acquisition ( device acquired-quot succeeded-quot failed-quot -- result/f )
 | 
			
		||||
    device IDirectInputDevice8W::Acquire succeeded? [
 | 
			
		||||
        device acquired-quot
 | 
			
		||||
        [ device IDirectInputDevice8W::Unacquire ole32-error ]
 | 
			
		||||
        [ ] cleanup
 | 
			
		||||
        device acquired-quot call
 | 
			
		||||
        succeeded-quot call
 | 
			
		||||
    ] failed-quot if ; inline
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,7 +82,7 @@ TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ;
 | 
			
		|||
 | 
			
		||||
: kill-update-axes ( gadget -- )
 | 
			
		||||
    gray <solid> >>interior
 | 
			
		||||
    [ cancel-alarm f ] change-alarm
 | 
			
		||||
    [ [ cancel-alarm ] when* f ] change-alarm
 | 
			
		||||
    relayout-1 ;
 | 
			
		||||
 | 
			
		||||
: (update-axes) ( gadget controller-state -- )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,20 +7,20 @@ IN: key-caps
 | 
			
		|||
: key-locations H{
 | 
			
		||||
    { key-escape        { {   0   0 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-f1            { {  15   0 } {  10  10 } } } 
 | 
			
		||||
    { key-f2            { {  25   0 } {  10  10 } } }
 | 
			
		||||
    { key-f3            { {  35   0 } {  10  10 } } }
 | 
			
		||||
    { key-f4            { {  45   0 } {  10  10 } } }
 | 
			
		||||
    { key-f1            { {  20   0 } {  10  10 } } }
 | 
			
		||||
    { key-f2            { {  30   0 } {  10  10 } } }
 | 
			
		||||
    { key-f3            { {  40   0 } {  10  10 } } }
 | 
			
		||||
    { key-f4            { {  50   0 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-f5            { {  60   0 } {  10  10 } } }
 | 
			
		||||
    { key-f6            { {  70   0 } {  10  10 } } }
 | 
			
		||||
    { key-f7            { {  80   0 } {  10  10 } } }
 | 
			
		||||
    { key-f8            { {  90   0 } {  10  10 } } }
 | 
			
		||||
    { key-f5            { {  65   0 } {  10  10 } } }
 | 
			
		||||
    { key-f6            { {  75   0 } {  10  10 } } }
 | 
			
		||||
    { key-f7            { {  85   0 } {  10  10 } } }
 | 
			
		||||
    { key-f8            { {  95   0 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-f9            { { 105   0 } {  10  10 } } }
 | 
			
		||||
    { key-f10           { { 115   0 } {  10  10 } } }
 | 
			
		||||
    { key-f11           { { 125   0 } {  10  10 } } }
 | 
			
		||||
    { key-f12           { { 135   0 } {  10  10 } } }
 | 
			
		||||
    { key-f9            { { 110   0 } {  10  10 } } }
 | 
			
		||||
    { key-f10           { { 120   0 } {  10  10 } } }
 | 
			
		||||
    { key-f11           { { 130   0 } {  10  10 } } }
 | 
			
		||||
    { key-f12           { { 140   0 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    { key-`             { {   0  15 } {  10  10 } } }
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ IN: key-caps
 | 
			
		|||
    { key-0             { { 100  15 } {  10  10 } } }
 | 
			
		||||
    { key--             { { 110  15 } {  10  10 } } }
 | 
			
		||||
    { key-=             { { 120  15 } {  10  10 } } }
 | 
			
		||||
    { key-backspace     { { 130  15 } {  15  10 } } }
 | 
			
		||||
    { key-backspace     { { 130  15 } {  20  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-tab           { {   0  25 } {  15  10 } } }
 | 
			
		||||
    { key-q             { {  15  25 } {  10  10 } } }
 | 
			
		||||
| 
						 | 
				
			
			@ -51,7 +51,7 @@ IN: key-caps
 | 
			
		|||
    { key-p             { { 105  25 } {  10  10 } } }
 | 
			
		||||
    { key-[             { { 115  25 } {  10  10 } } }
 | 
			
		||||
    { key-]             { { 125  25 } {  10  10 } } }
 | 
			
		||||
    { key-\             { { 135  25 } {  10  10 } } }
 | 
			
		||||
    { key-\             { { 135  25 } {  15  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-caps-lock     { {   0  35 } {  20  10 } } }
 | 
			
		||||
    { key-a             { {  20  35 } {  10  10 } } }
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ IN: key-caps
 | 
			
		|||
    { key-l             { { 100  35 } {  10  10 } } }
 | 
			
		||||
    { key-;             { { 110  35 } {  10  10 } } }
 | 
			
		||||
    { key-'             { { 120  35 } {  10  10 } } }
 | 
			
		||||
    { key-return        { { 130  35 } {  15  10 } } }
 | 
			
		||||
    { key-return        { { 130  35 } {  20  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-left-shift    { {   0  45 } {  25  10 } } }
 | 
			
		||||
    { key-z             { {  25  45 } {  10  10 } } }
 | 
			
		||||
| 
						 | 
				
			
			@ -78,59 +78,60 @@ IN: key-caps
 | 
			
		|||
    { key-,             { {  95  45 } {  10  10 } } }
 | 
			
		||||
    { key-.             { { 105  45 } {  10  10 } } }
 | 
			
		||||
    { key-/             { { 115  45 } {  10  10 } } }
 | 
			
		||||
    { key-right-shift   { { 125  45 } {  20  10 } } }
 | 
			
		||||
    { key-right-shift   { { 125  45 } {  25  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-left-control  { {   0  55 } {  15  10 } } }
 | 
			
		||||
    { key-left-gui      { {  15  55 } {  15  10 } } }
 | 
			
		||||
    { key-left-alt      { {  30  55 } {  15  10 } } }
 | 
			
		||||
    { key-space         { {  45  55 } {  55  10 } } }
 | 
			
		||||
    { key-right-alt     { { 100  55 } {  15  10 } } }
 | 
			
		||||
    { key-right-gui     { { 115  55 } {  15  10 } } }
 | 
			
		||||
    { key-right-control { { 130  55 } {  15  10 } } }
 | 
			
		||||
    { key-space         { {  45  55 } {  45  10 } } }
 | 
			
		||||
    { key-right-alt     { {  90  55 } {  15  10 } } }
 | 
			
		||||
    { key-right-gui     { { 105  55 } {  15  10 } } }
 | 
			
		||||
    { key-application   { { 120  55 } {  15  10 } } }
 | 
			
		||||
    { key-right-control { { 135  55 } {  15  10 } } }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    { key-print-screen  { { 150   0 } {  10  10 } } }
 | 
			
		||||
    { key-scroll-lock   { { 160   0 } {  10  10 } } }
 | 
			
		||||
    { key-pause         { { 170   0 } {  10  10 } } }
 | 
			
		||||
    { key-print-screen  { { 155   0 } {  10  10 } } }
 | 
			
		||||
    { key-scroll-lock   { { 165   0 } {  10  10 } } }
 | 
			
		||||
    { key-pause         { { 175   0 } {  10  10 } } }
 | 
			
		||||
    
 | 
			
		||||
    { key-insert        { { 150  15 } {  10  10 } } }
 | 
			
		||||
    { key-home          { { 160  15 } {  10  10 } } }
 | 
			
		||||
    { key-page-up       { { 170  15 } {  10  10 } } }
 | 
			
		||||
    { key-insert        { { 155  15 } {  10  10 } } }
 | 
			
		||||
    { key-home          { { 165  15 } {  10  10 } } }
 | 
			
		||||
    { key-page-up       { { 175  15 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-delete        { { 150  25 } {  10  10 } } }
 | 
			
		||||
    { key-end           { { 160  25 } {  10  10 } } }
 | 
			
		||||
    { key-page-down     { { 170  25 } {  10  10 } } }
 | 
			
		||||
    { key-delete        { { 155  25 } {  10  10 } } }
 | 
			
		||||
    { key-end           { { 165  25 } {  10  10 } } }
 | 
			
		||||
    { key-page-down     { { 175  25 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-up-arrow      { { 160  45 } {  10  10 } } }
 | 
			
		||||
    { key-left-arrow    { { 150  55 } {  10  10 } } }
 | 
			
		||||
    { key-down-arrow    { { 160  55 } {  10  10 } } }
 | 
			
		||||
    { key-right-arrow   { { 170  55 } {  10  10 } } }
 | 
			
		||||
    { key-up-arrow      { { 165  45 } {  10  10 } } }
 | 
			
		||||
    { key-left-arrow    { { 155  55 } {  10  10 } } }
 | 
			
		||||
    { key-down-arrow    { { 165  55 } {  10  10 } } }
 | 
			
		||||
    { key-right-arrow   { { 175  55 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    { key-keypad-numlock { { 185 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-/       { { 195 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-*       { { 205 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad--       { { 215 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-numlock { { 190 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-/       { { 200 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-*       { { 210 15 } {  10  10 } } }
 | 
			
		||||
    { key-keypad--       { { 220 15 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-keypad-7       { { 185 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-8       { { 195 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-9       { { 205 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-+       { { 215 25 } {  10  20 } } }
 | 
			
		||||
    { key-keypad-7       { { 190 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-8       { { 200 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-9       { { 210 25 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-+       { { 220 25 } {  10  20 } } }
 | 
			
		||||
 | 
			
		||||
    { key-keypad-4       { { 185 35 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-5       { { 195 35 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-6       { { 205 35 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-4       { { 190 35 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-5       { { 200 35 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-6       { { 210 35 } {  10  10 } } }
 | 
			
		||||
 | 
			
		||||
    { key-keypad-1       { { 185 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-2       { { 195 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-3       { { 205 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-enter   { { 215 45 } {  10  20 } } }
 | 
			
		||||
    { key-keypad-1       { { 190 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-2       { { 200 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-3       { { 210 45 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-enter   { { 220 45 } {  10  20 } } }
 | 
			
		||||
 | 
			
		||||
    { key-keypad-0       { { 185 55 } {  20  10 } } }
 | 
			
		||||
    { key-keypad-.       { { 205 55 } {  10  10 } } }
 | 
			
		||||
    { key-keypad-0       { { 190 55 } {  20  10 } } }
 | 
			
		||||
    { key-keypad-.       { { 210 55 } {  10  10 } } }
 | 
			
		||||
} ;
 | 
			
		||||
 | 
			
		||||
: KEYBOARD-SIZE { 225 65 } ;
 | 
			
		||||
: KEYBOARD-SIZE { 230 65 } ;
 | 
			
		||||
: FREQUENCY ( -- f ) 30 recip seconds ;
 | 
			
		||||
 | 
			
		||||
TUPLE: key-caps-gadget < gadget keys alarm ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,12 +24,15 @@ SYMBOLS:
 | 
			
		|||
: (sizeof) ( field struct -- size )
 | 
			
		||||
    [ (field-spec-of) class>> "[" split1 drop heap-size ] [ drop 1 ] if* ;
 | 
			
		||||
 | 
			
		||||
MACRO: (flags) ( array -- )
 | 
			
		||||
    0 [ {
 | 
			
		||||
: (flag) ( thing -- integer )
 | 
			
		||||
    {
 | 
			
		||||
        { [ dup word? ] [ execute ] }
 | 
			
		||||
        { [ dup callable? ] [ call ] }
 | 
			
		||||
        [ ]
 | 
			
		||||
    } cond bitor ] reduce 1quotation ;
 | 
			
		||||
    } cond ;
 | 
			
		||||
 | 
			
		||||
: (flags) ( array -- )
 | 
			
		||||
    0 [ (flag) bitor ] reduce ;
 | 
			
		||||
 | 
			
		||||
: (DIOBJECTDATAFORMAT) ( pguid dwOfs dwType dwFlags alien -- alien )
 | 
			
		||||
    [ {
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +48,7 @@ MACRO: (flags) ( array -- )
 | 
			
		|||
        [ second rot [ (offsetof) ] [ (sizeof) ] 2bi ]
 | 
			
		||||
        [ third * + ]
 | 
			
		||||
        [ fourth (flags) ]
 | 
			
		||||
        [ 4 swap nth ]
 | 
			
		||||
        [ 4 swap nth (flag) ]
 | 
			
		||||
    } cleave
 | 
			
		||||
    "DIOBJECTDATAFORMAT" <c-object> (DIOBJECTDATAFORMAT) ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -245,30 +248,30 @@ MACRO: (flags) ( array -- )
 | 
			
		|||
            { f           "rgbButtons" 125 { DIDFT_OPTIONAL DIDFT_BUTTON DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { f           "rgbButtons" 126 { DIDFT_OPTIONAL DIDFT_BUTTON DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { f           "rgbButtons" 127 { DIDFT_OPTIONAL DIDFT_BUTTON DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_XAxis_malloced  "lVX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_YAxis_malloced  "lVY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lVZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RxAxis_malloced "lVRx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RyAxis_malloced "lVRy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RzAxis_malloced "lVRz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglVSlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglVSlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_XAxis_malloced  "lAX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_YAxis_malloced  "lAY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lAZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RxAxis_malloced "lARx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RyAxis_malloced "lARy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RzAxis_malloced "lARz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglASlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglASlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_XAxis_malloced  "lFX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_YAxis_malloced  "lFY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lFZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RxAxis_malloced "lFRx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RyAxis_malloced "lFRy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_RzAxis_malloced "lFRz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglFSlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_Slider_malloced "rglFSlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } 0 }
 | 
			
		||||
            { GUID_XAxis_malloced  "lVX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_YAxis_malloced  "lVY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lVZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_RxAxis_malloced "lVRx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_RyAxis_malloced "lVRy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_RzAxis_malloced "lVRz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_Slider_malloced "rglVSlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_Slider_malloced "rglVSlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTVELOCITY }
 | 
			
		||||
            { GUID_XAxis_malloced  "lAX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_YAxis_malloced  "lAY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lAZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_RxAxis_malloced "lARx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_RyAxis_malloced "lARy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_RzAxis_malloced "lARz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_Slider_malloced "rglASlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_Slider_malloced "rglASlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTACCEL }
 | 
			
		||||
            { GUID_XAxis_malloced  "lFX"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_YAxis_malloced  "lFY"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_ZAxis_malloced  "lFZ"          0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_RxAxis_malloced "lFRx"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_RyAxis_malloced "lFRy"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_RzAxis_malloced "lFRz"         0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_Slider_malloced "rglFSlider"   0 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
            { GUID_Slider_malloced "rglFSlider"   1 { DIDFT_OPTIONAL DIDFT_AXIS   DIDFT_ANYINSTANCE } DIDOI_ASPECTFORCE }
 | 
			
		||||
        } <DIDATAFORMAT>
 | 
			
		||||
    ] unless* ] change-at ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -434,6 +434,16 @@ FUNCTION: HRESULT DirectInput8Create ( HINSTANCE hinst, DWORD dwVersion, REFIID
 | 
			
		|||
: DIDFT_ENUMCOLLECTION ( n -- instance ) 8 shift HEX: FFFF bitand ; inline
 | 
			
		||||
: DIDFT_NOCOLLECTION      HEX: 00FFFF00 ; inline
 | 
			
		||||
 | 
			
		||||
: DIDOI_FFACTUATOR        HEX: 00000001 ; inline
 | 
			
		||||
: DIDOI_FFEFFECTTRIGGER   HEX: 00000002 ; inline
 | 
			
		||||
: DIDOI_POLLED            HEX: 00008000 ; inline
 | 
			
		||||
: DIDOI_ASPECTPOSITION    HEX: 00000100 ; inline
 | 
			
		||||
: DIDOI_ASPECTVELOCITY    HEX: 00000200 ; inline
 | 
			
		||||
: DIDOI_ASPECTACCEL       HEX: 00000300 ; inline
 | 
			
		||||
: DIDOI_ASPECTFORCE       HEX: 00000400 ; inline
 | 
			
		||||
: DIDOI_ASPECTMASK        HEX: 00000F00 ; inline
 | 
			
		||||
: DIDOI_GUIDISUSAGE       HEX: 00010000 ; inline
 | 
			
		||||
 | 
			
		||||
: DISCL_EXCLUSIVE     HEX: 00000001 ; inline
 | 
			
		||||
: DISCL_NONEXCLUSIVE  HEX: 00000002 ; inline
 | 
			
		||||
: DISCL_FOREGROUND    HEX: 00000004 ; inline
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue