CSPspEmu.Hle.Vfs.Emulator.HleIoDriverEmulator.IoDevctl C# (CSharp) Метод

IoDevctl() публичный Метод

public IoDevctl ( HleIoDrvFileArg HleIoDrvFileArg, string DeviceName, uint Command, byte InputPointer, int InputLength, byte OutputPointer, int OutputLength ) : int
HleIoDrvFileArg HleIoDrvFileArg
DeviceName string
Command uint
InputPointer byte
InputLength int
OutputPointer byte
OutputLength int
Результат int
        public unsafe int IoDevctl(HleIoDrvFileArg HleIoDrvFileArg, string DeviceName, uint Command, byte* InputPointer, int InputLength, byte* OutputPointer, int OutputLength)
        {
            switch (DeviceName)
            {
                case "emulator:": break;
                case "kemulator:": break;
                default: throw (new InvalidOperationException());
            }

            //Console.Error.WriteLine("     {0}", (EmulatorDevclEnum)Command);
            switch ((EmulatorDevclEnum)Command)
            {
                case EmulatorDevclEnum.GetHasDisplay:
                    *((int*)OutputPointer) = DisplayConfig.Enabled ? 1 : 0;
                    break;
                case EmulatorDevclEnum.SendOutput:
                    var OutputString = new String((sbyte*)InputPointer, 0, InputLength, Encoding.ASCII);
                    this.HleOutputHandler.Output(OutputString);
                    //Console.Error.WriteLine("{0}", OutputString);
                    break;
                case EmulatorDevclEnum.IsEmulator:
                    return 0;
                case EmulatorDevclEnum.EmitScreenshot:
                    if (PspHleRunningConfig.FileNameBase == null || PspHleRunningConfig.FileNameBase == "") throw (new Exception("PspHleRunningConfig.FileNameBase is empty"));
                    this.PspDisplay.TakeScreenshot().Save(String.Format("{0}.lastoutput.{1}.png", PspHleRunningConfig.FileNameBase, ScreenShotCount++), ImageFormat.Png);
                    break;
                default:
                    Console.Error.WriteLine("Unknown emulator command '{0}':0x{1:X} <- {2}", DeviceName, Command, (EmulatorDevclEnum)Command);
                    return -1;
            }
            return -1;
        }