include "target.tmh" // Standalone DX mappings int ThrottleMap1[]={ SC,DX1, MSU,DX3, // Mike Switch MSD,DX5, MSL,DX6, MSR,DX4, MSP,DX2, SPDF,DX7, // Speed Brake SPDM,0, SPDB,DX8, BSF,DX9, // Boat Switch BSM,0, BSB,DX10, CHF,DX11, // China Hat CHB,DX12, PSF,DX13, // Pinky PSM,0, PSB,DX14, CSU,DXHATUP, // Coolie Switch CSD,DXHATDOWN, CSL,DXHATLEFT, CSR,DXHATRIGHT, LTB,DX15, EFLNORM,DX16, EFLOVER,0, EFRNORM,DX17, EFROVER,0, EOLIGN,DX31, EOLNORM,0, EOLMOTOR,DX18, EORIGN,DX32, EORNORM,0, EORMOTOR,DX19, APUON,DX20, APUOFF,0, LDGH,DX21, FLAPU,DX22, FLAPM,0, FLAPD,DX23, EACON,DX24, EACOFF,0, RDRNRM,DX25, RDRDIS,0, APPAT,DX27, // PATH APAH,0, // ALT/HDG APALT,DX28, // ALT APENG,DX26, IDLELON,DX30, IDLERON,DX29 }; int JoystickMap1[]={ // Actually the same as JoystickMap TG1,DX1, S1,DX5, // Side S2,DX2, // Red S3,DX3, // Pinky S4,DX4, // Paddle TG2,DX6, H1U,DXHATUP, // Trims (upper right) H1D,DXHATDOWN, H1L,DXHATLEFT, H1R,DXHATRIGHT, H2U,DX7, // TMS (lower right) H2D,DX9, H2L,DX10, H2R,DX8, H3U,DX11, // DMS (lower left) H3D,DX13, H3L,DX14, H3R,DX12, H4U,DX15, // CMS (thumb) H4D,DX17, H4L,DX18, H4R,DX16, H4P,DX19 }; // empty maps int ThrottleMap0[]={ SC,0, MSU,0, MSD,0, MSL,0, MSR,0, MSP,0, SPDF,0, SPDM,0, SPDB,0, BSF,0, BSM,0, BSB,0, CHF,0, CHB,0, PSF,0, PSM,0, PSB,0, CSU,0, CSD,0, CSL,0, CSR,0, LTB,0, EFLNORM,0, EFLOVER,0, EFRNORM,0, EFROVER,0, EOLIGN,0, EOLNORM,0, EOLMOTOR,0, EORIGN,0, EORNORM,0, EORMOTOR,0, APUON,0, APUOFF,0, LDGH,0, FLAPU,0, FLAPM,0, FLAPD,0, EACON,0, EACOFF,0, RDRNRM,0, RDRDIS,0, APPAT,0, APAH,0, APALT,0, APENG,0, IDLELON,0, IDLERON,0 }; int JoystickMap0[]={ TG1,0, S1,0, S2,0, S3,0, S4,0, TG2,0, H1U,0, H1D,0, H1L,0, H1R,0, H2U,0, H2D,0, H2L,0, H2R,0, H3U,0, H3D,0, H3L,0, H3R,0, H4U,0, H4D,0, H4L,0, H4R,0, H4P,0 }; // Special keys define KPslash USB[84] define KPstar USB[85] define KPminus USB[86] define KPplus USB[87] define TeamSpeakPushToTalk CAPS define TrackIrCenter L_ALT+SCRLCK define TrackIrDisable L_ALT+BRK //////////////////////////////////////////////////////////// define TPULSE 70 define TDELAY 50 define T (TPULSE+TDELAY) define SHORTTEMPO 300 define LONGTEMPO 1500 //////////////////////////////////////////////////////////// int hysteresis(alias dir, alias cur, int val, int delta){ if (dir<0){ if (valcur+delta){ cur=val; dir= 1; } } else if (dir>0){ if (val>cur ){ cur=val; } else if (valcur){ cur=val; dir= 1; } else { cur=val; dir=-1; } } return cur; } //////////////////////////////////////////////////////////// int s_THR_FC_dir=0; int s_THR_FC_cur=0; int hysteresis_THR_FC(int axis) { return TrimDXAxis(axis, SET( hysteresis( &s_THR_FC_dir, &s_THR_FC_cur, Throttle[THR_FC],512 )/32 ) ); } //////////////////////////////////////////////////////////// int snapviewlist; int snapview(int s,int hold,int release) { snapviewlist = SEQ(KP0,KP1,KP2,KP3,KP4,KP5,KP6,KP7,KP8,KP9); if (hold) { ActKey(KEYON+CHAIN( PULSE+R_CTL+KP0 ,D(T), PULSE+X(snapviewlist,s) )); } else { if (release) ActKey( L_WIN+X(snapviewlist,s)); else ActKey(KEYON+L_WIN+X(snapviewlist,s)); } } //////////////////////////////////////////////////////////// int main() { /////////////////// Setup and initialisation /////////////////// Configure(&HCougar, MODE_EXCLUDED); Configure(&T16000, MODE_EXCLUDED); Configure(&LMFD, MODE_EXCLUDED); Configure(&RMFD, MODE_EXCLUDED); Configure(&Joystick, MODE_FILTERED); Configure(&Throttle, MODE_FILTERED); if(Init(&EventHandle)) return 1; SetKBRate(TPULSE, TDELAY); // Keyboard pulse and delay times in ms SetKBLayout(KB_ENG); /////////////////// Empty maps /////////////////// // Empty maps MapList(&Joystick,&JoystickMap0); MapList(&Throttle,&ThrottleMap0); /////////////////// Mappings /////////////////// //MapKey(&Throttle, CSU, REXEC(0, 75, "TrimDXAxis(DX_SLIDER_AXIS, 16);")); // DX_SLIDER_AXIS = slider2 //MapKey(&Throttle, CSD, REXEC(0, 75, "TrimDXAxis(DX_SLIDER_AXIS, -16);")); MapKey (&Joystick, S1, EXEC("snapview(8,0,0);")); MapKeyR(&Joystick, S1, EXEC("snapview(8,0,1);")); //MapKey (&Joystick, H2D, EXEC("snapview(2,0,0);")); //MapKeyR(&Joystick, H2D, EXEC("snapview(2,0,1);")); MapKey (&Joystick, H2L, EXEC("snapview(1,0,0);")); MapKeyR(&Joystick, H2L, EXEC("snapview(1,0,1);")); MapKey (&Joystick, H2R, EXEC("snapview(3,0,0);")); MapKeyR(&Joystick, H2R, EXEC("snapview(3,0,1);")); ///////// // TDC // ///////// //MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_RELATIVE); //SetSCurve(&Throttle, SCX, 0, 40, 0, 0, -10); MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_NORMAL, MAP_RELATIVE); SetSCurve(&Throttle, SCY, 0, 40, 0, 0, -10); MapKey(&Throttle, CSL, REXEC(0, 50, "TrimDXAxis(DX_XROT_AXIS, -8);")); MapKey(&Throttle, CSR, REXEC(0, 50, "TrimDXAxis(DX_XROT_AXIS, 8);")); //////////// // Slider // //////////// KeyAxis(&Throttle,THR_FC,0,AXMAP1(512, EXEC("hysteresis_THR_FC(DX_THROTTLE_AXIS);"), EXEC("hysteresis_THR_FC(DX_THROTTLE_AXIS);"), EXEC("hysteresis_THR_FC(DX_THROTTLE_AXIS);") )); ///////////// // TrackIR // ///////////// MapKey(&Throttle, MSP, TEMPO(TrackIrCenter,TrackIrDisable,SHORTTEMPO)); ///////// // Mic // ///////// MapKey (&Throttle, MSU, TeamSpeakPushToTalk); return 0; } int EventHandle(int type, alias o, int x) { int rc = DefaultMapping(&o, x); if(&o == &Throttle & x == THR_FC) return rc; GameOutput(&o, x, o[x]); return rc; }