예제 #1
0
        private void ValidateVJoyConfiguration(CompileInfo info, StreamWriter file)
        {
            file.WriteLine("        private bool ValidateVJoyConfiguration()");
            file.WriteLine("        {");
            //foreach (var name in Enum.GetNames(typeof(HID_USAGES)))
            //{
            //    file.Write("lookup[\"Axis");
            //    file.Write(name.Replace("HID_USAGE_", ""));
            //    file.Write("\"] = \"bool Axis");
            //    file.Write(name.Replace("HID_USAGE_", ""));
            //    file.Write(" = joystick.GetVJDAxisExist(id, HID_USAGES.");
            //    file.Write(name);
            //    file.WriteLine(");\";");
            //}

            file.WriteLine("            // Make sure all needed axes and buttons are supported");
            var list = new List <string>();
            var axis = info.GetVJoyAxis();

            foreach (var vJoyAxis in axis)
            {
                file.Write("            ");
                file.WriteLine(lookup[vJoyAxis]);
                list.Add("!" + vJoyAxis);
            }
            list.Add("nButtons < " + info.GetMaxButtons());
            list.Add("cont < " + info.GetMaxPOVs());

            file.WriteLine("            int nButtons = joystick.GetVJDButtonNumber(id);");
            file.WriteLine("            int cont = joystick.GetVJDContPovNumber(id);");

            file.Write("            if (");
            file.Write(String.Join(" || ", list));
            file.WriteLine(")");
            file.WriteLine("            {");
            file.Write("                mainForm.ReportError(\"vJoy Device is not configured correctly. Must have ");
            file.Write(String.Join(", ", axis));
            file.Write(" analog axis, ");
            file.Write(info.GetMaxButtons());
            file.Write(" buttons and ");
            file.Write(info.GetMaxPOVs());
            file.WriteLine(" analog POVs. Cannot continue\\n\");");
            file.WriteLine("                return false;");
            file.WriteLine("            }");
            file.WriteLine("            return true;");
            file.WriteLine("        }");
            file.WriteLine();
        }