- Move user variables to external file.

- Fix output displaying same instruction twice.
- Remove unused joystick file.
This commit is contained in:
Laurence Dougal Myers 2014-01-23 23:41:18 +11:00
parent e6389fb09d
commit bd175b7812
4 changed files with 6 additions and 112 deletions

View File

@ -46,19 +46,19 @@ MidiRules:
; =============== CCs (continuous controllers) ===============
if statusbyte between 176 and 191
{
tmp_axis_val := Floor((byte2 / 127) * AxisMax_X)
tmp_axis_val := Floor((byte2 / max_cc_val) * AxisMax_X)
VJoy_SetAxis(tmp_axis_val, iInterface, HID_USAGE_X)
; Default action code below
cc := byte1 ; pass them as is, no change.
gosub, ShowMidiInMessage
;gosub, ShowMidiInMessage
GuiControl,12:, MidiMsOut, CC %statusbyte% %chan% %cc% %byte2%
gosub, ShowMidiOutMessage
;gosub, sendCC
}
; Is midi input a Program Change?
if statusbyte between 192 and 208 ; check if message is in range of program change messages for byte1 values. ; !!!!!!!!!!!! no edit
if statusbyte between 192 and 208
{
gosub, sendPC
}

2
UserVariables.ahk Normal file
View File

@ -0,0 +1,2 @@
max_cc_val = 112
;cc_mappings = [ { cc: 67, output: "AxisX", invert: false, max: 112 }]

View File

@ -1,107 +0,0 @@
go_joystuff:
gosub,joydisplay
;*************************************************
;* add this to autoexec section of main generic midi program this section all about joystick
;*************************************************
;gosub,joydisplay ; only if you want the joydisplay to show.
SetTimer, stick, 75 ; run the loop every 50 ms - much smoother than 100
joyX_last := -1 ; initialize
joyY_last := -1
joyZ_last := -1
joyR_last := -1
IniRead, joyXnum, %version%io.ini, joystick, xaxis , %xaxis% ; read the midi In port from ini file
IniRead, joyYnum, %version%io.ini, joystick, yaxis , %yaxis% ; read the midi out port from ini file
IniRead, joyZnum, %version%io.ini, joystick, zaxis , %zaxis% ; read the midi In port from ini file
IniRead, joyRnum, %version%io.ini, joystick, raxis , %raxis% ; read the midi out port from ini file
guicontrol,2:,joyXnum, %JoyXnum%
;joyXnum := 7 ; midi output CC number for this axis
;JoyYnum := 1
;joyZnum := 10
;joyRnum := 11
;*************************************************
;* end section to add to autoexec
;*************************************************
;*************************************************
;* add #include joystuff.ahk to generic midi program file
;*************************************************
;*************************************************
;* save below as joystuff.ahk put it in the same folder as generic midi
;*************************************************
return
joydisplay: ; for testging only.
Gui,2: +LastFound +AlwaysOnTop +Caption +ToolWindow ; +ToolWindow avoids a taskbar button and an alt-tab menu item.
Gui,2: Color, %CustomColor%
Gui,2: Font, s9 ; Set a large font size (32-point).
Gui,2: Add, Text, vMyText w300, ; XX & YY serve to auto-size the window.
gui,2:add,edit, vjoyXnum
Gui,2: Show, AutoSize xcenter ycenter NoActivate ; NoActivate avoids deactivating the currently active window.
return
stick: ; label for running joystick detection
{
GetKeyState, JoyX, JoyX ; Get position of X axis.
GetKeyState, JoyY, JoyY ; Get position of Y axis.
getkeystate, joyz, joyz ; lever 3rd axis on my joystick - ms force feedback2 (picked it up at a yardsale for $1.
getkeystate, joyr, joyr ; twist stick rotation axis on my stick
joyXval := round(joyx*1.27) ; assumes Joyx 0-100 conversion to 0 -127
joyYval := round((joyy/(-100)+1)*127) ; inverted output joyY 100 - 0 conversion to 127 - 0 (thanks skylord5816 ahk chat)
joyZval := round((joyZ/(-100)+1)*127) ;
joyrval := round(joyr*1.27) ;joy rotation
GuiControl,2:, MyText, X%joyX% = ccX%joyXval% | Y%joyY% = ccY%joyYval% | R%joyR% = ccR%joyRval% | Z%joyz% = ccZ%joyzval% ; updates the joydisplay, active.
If (joyXVal != joyx_last) ; if it has moved then send another message.
{
stb = CC
statusbyte = 176 ; chan 1 + 175
byte1 = %joyXnum%
byte2 = %joyXval%
midiOutShortMsg(h_midiout, statusbyte, byte1, byte2) ; commented out just to run stand alone - showing the settimer is working.
gosub, ShowMidiOutMessage
joyx_last := joyXval
;MsgBox joylast
}
if (joyYval != joyY_last)
{
stb = CC
statusbyte = 176 ; chan 1 + 175
byte1 = %joyYnum%
byte2 = %joyYval%
midiOutShortMsg(h_midiout, statusbyte, byte1, byte2)
gosub, ShowMidiOutMessage
joyY_last := joyYval
}
If (joyRVal != joyR_last)
{
stb = CC
statusbyte = 176 ; chan 1 + 175
byte1 = %joyRnum%
byte2 = %joyRval%
midiOutShortMsg(h_midiout, statusbyte, byte1, byte2) ; commented out just to run stand alone - showing the settimer is working.
gosub, ShowMidiOutMessage
joyR_last := joyRval
;MsgBox joylast
}
if (joyzval != joyZ_last)
{
stb = CC
statusbyte = 176 ; chan 1 + 175
byte1 = %joyZnum%
byte2 = %joyZval%
midiOutShortMsg(h_midiout, statusbyte, byte1, byte2) ; commented out just to run stand alone - showing the settimer is working.
gosub, ShowMidiOutMessage
joyZ_last := joyZval
}
Else
Return ; if none of them have moved, nothing to do.
}
return

View File

@ -41,8 +41,7 @@ gosub, midiMon ; see below - a monitor gui - see Midi_In_and_Gu
;* VARIBLES TO SET @ STARTUP
;*************************************************
cc_msg = 73,74 ; ++++++++++++++++ you might want to add other vars that load in auto execute section
max_cc_val = 127
#Include UserVariables.ahk
return