Beispiel #1
0
 public static void SetSymetrical(OutAxis outputAxis)
 {
     for (int v = 0; v < SuperVJoy.MID_RANGE - 1; v++)
     {
         SuperVJoy.outputCurves[outputAxis.ToString()][v] = SuperVJoy.MAX_RANGE - 1 - SuperVJoy.outputCurves[outputAxis.ToString()][SuperVJoy.MAX_RANGE - 1 - v];
     }
 }
Beispiel #2
0
 public static void SetValue(OutAxis outputAxis, double percX1, double percX2, double value)
 {
     for (int v = ValOfPerc(percX1); v < ValOfPerc(percX2); v++)
     {
         SuperVJoy.outputCurves[outputAxis.ToString()][v] = ValOfPerc(value);
     }
 }
Beispiel #3
0
 public static void Invert(OutAxis outputAxis)
 {
     for (int v = 0; v < SuperVJoy.MAX_RANGE; v++)
     {
         SuperVJoy.outputCurves[outputAxis.ToString()][v] = SuperVJoy.MAX_RANGE - SuperVJoy.outputCurves[outputAxis.ToString()][v];
     }
 }
Beispiel #4
0
 public static int ApplyCurve(OutAxis axis, int value)
 {
     if (value > MAX_RANGE - 1)
     {
         value = MAX_RANGE - 1;
     }
     if (value < 0)
     {
         value = 0;
     }
     if (plzOutputToDebugFrm)
     {
         debugFrmCurvedAxis[axis.ToString()] = (int)(100.0 * value / MAX_RANGE);                       // this is shitty
     }
     return(outputCurves[axis.ToString()][value]);
 }
Beispiel #5
0
        public static void SetLinear(OutAxis outputAxis, double percX1, double percY1, double percX2, double percY2)
        {
            double coef = (percY2 - percY1) / (percX2 - percX1);

            for (int v = ValOfPerc(percX1); v < ValOfPerc(percX2); v++)
            {
                SuperVJoy.outputCurves[outputAxis.ToString()][v] = (int)(ValOfPerc(percY1) + coef * (v - ValOfPerc(percX1)));
            }
        }
Beispiel #6
0
 // Config tools
 public static void SimulateJoyOutputAxis(OutAxis axis)
 {
     Console.WriteLine("SimulateJoyOutputAxis " + axis.ToString());
     while (true)
     {
         vjoy.setAxisPerc(98, (int)axis);
         vjoy.applyValues();
         Thread.Sleep(45);
         vjoy.setAxisPerc(95, (int)axis);
         vjoy.applyValues();
         Thread.Sleep(250);
     }
 }
Beispiel #7
0
        // unused
        public static Bitmap generateBitmapCurve(OutAxis axis)
        {
            Bitmap   img = new Bitmap(SuperVJoy.MAX_RANGE / curveScale, SuperVJoy.MAX_RANGE / curveScale);
            Graphics g   = Graphics.FromImage(img);

            // paint it black
            g.FillRectangle(new SolidBrush(Color.Black), new Rectangle(0, 0, img.Width, img.Height));
            for (int i = 0; i < SuperVJoy.MAX_RANGE / curveScale; ++i)
            {
                int value = (int)(SuperVJoy.outputCurves[axis.ToString()][i * curveScale]);

                g.DrawRectangle(new Pen(Color.Red), new Rectangle(i, img.Height - value / curveScale, 3, 3));
            }
            return(img);
        }
Beispiel #8
0
        // Setter
        public static void SetOutputValue(OutAxis axis, int value)
        {
            if (value > MAX_RANGE - 1)
            {
                value = MAX_RANGE - 1;
            }
            if (value < 0)
            {
                value = 0;
            }

            if (plzOutputToDebugFrm)
            {
                debugFrmCurvedAxis[axis.ToString()] = (int)(100.0 * value / MAX_RANGE);
            }

            value = SuperVJoy.ApplyCurve(axis, value);

            vjoy.setAxisPerc(100.0 * value / MAX_RANGE, (int)axis);
        }