本文整理汇总了C#中HleIoDrvFileArg类的典型用法代码示例。如果您正苦于以下问题:C# HleIoDrvFileArg类的具体用法?C# HleIoDrvFileArg怎么用?C# HleIoDrvFileArg使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HleIoDrvFileArg类属于命名空间,在下文中一共展示了HleIoDrvFileArg类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: IoClose
public unsafe int IoClose(HleIoDrvFileArg HleIoDrvFileArg)
{
var Stream = ((Stream)HleIoDrvFileArg.FileArgument);
Stream.Close();
return 0;
//throw new NotImplementedException();
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:7,代码来源:HleIoDriverIso.cs
示例2: IoDevctl
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;
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:32,代码来源:HleIoDriverEmulator.cs
示例3: IoDopen
public unsafe int IoDopen(HleIoDrvFileArg HleIoDrvFileArg, string Name)
{
//throw new NotImplementedException();
var IsoNode = Iso.Root.Locate(Name);
HleIoDrvFileArg.FileArgument = new DirectoryEnumerator<IsoNode>(IsoNode.Childs.ToArray());
return 0;
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:7,代码来源:HleIoDriverIso.cs
示例4: IoGetstat
public unsafe int IoGetstat(HleIoDrvFileArg HleIoDrvFileArg, string FileName, SceIoStat* Stat)
{
try
{
var ZipEntry = ZipArchive[FileName];
Stat->Attributes = IOFileModes.CanRead | IOFileModes.File;
Stat->Mode = SceMode.All;
Stat->Size = ZipEntry.OpenUncompressedStream().Length;
return 0;
}
catch (KeyNotFoundException)
{
throw (new FileNotFoundException("Can't find file '" + FileName + "' on ZipFile"));
}
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:15,代码来源:HleIoDriverZip.cs
示例5: IoDread
public unsafe int IoDread(HleIoDrvFileArg HleIoDrvFileArg, HleIoDirent* IoDirent)
{
var Enumerator = (DirectoryEnumerator<IsoNode>)HleIoDrvFileArg.FileArgument;
// More items.
if (Enumerator.MoveNext())
{
//Console.Error.WriteLine("'{0}'", Enumerator.Current.ToString());
var IsoNode = Enumerator.Current;
{
PointerUtils.StoreStringOnPtr(IsoNode.Name, Encoding.UTF8, IoDirent->Name);
_IoGetstat(IsoNode, &IoDirent->Stat);
}
}
// No more items.
else
{
}
return Enumerator.GetLeft();
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:21,代码来源:HleIoDriverIso.cs
示例6: IoDopen
public unsafe int IoDopen(HleIoDrvFileArg HleIoDrvFileArg, string Name)
{
var RealFileName = GetFullNormalizedAndSanitizedPath(Name);
try
{
//Console.Error.WriteLine("'{0}'", RealFileName);
var FileSystemInfo = new DirectoryInfo(RealFileName).EnumerateFileSystemInfos().ToArray();
/*
foreach (var Info in FileSystemInfo)
{
Console.Error.WriteLine(Info);
}
*/
HleIoDrvFileArg.FileArgument = new DirectoryEnumerator<FileSystemInfo>(FileSystemInfo);
return 0;
}
catch (DirectoryNotFoundException DirectoryNotFoundException)
{
Console.WriteLine(DirectoryNotFoundException);
return -1;
}
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:22,代码来源:HleIoDriverLocalFileSystem.cs
示例7: IoOpen
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode)
{
var RealFileName = GetFullNormalizedAndSanitizedPath(FileName);
FileMode FileMode = FileMode.Open;
FileAccess FileAccess = 0;
bool Append = (Flags & HleIoFlags.Append) != 0;
bool Read = (Flags & HleIoFlags.Read) != 0;
bool Write = (Flags & HleIoFlags.Write) != 0;
bool Truncate = (Flags & HleIoFlags.Truncate) != 0;
bool Create = (Flags & HleIoFlags.Create) != 0;
if (Read) FileAccess |= FileAccess.Read;
if (Write) FileAccess |= FileAccess.Write;
if (Append)
{
FileMode = FileMode.OpenOrCreate;
}
else if (Create)
{
FileMode = FileMode.Create;
}
else if (Truncate)
{
FileMode = FileMode.Truncate;
}
//if (Append) FileMode |= FileMode.Open;
var Stream = File.Open(RealFileName, FileMode, FileAccess, FileShare.Delete | FileShare.ReadWrite);
HleIoDrvFileArg.FileArgument = Stream;
if (Append)
{
Stream.Position = Stream.Length;
}
return 0;
}
开发者ID:shin527,项目名称:cspspemu,代码行数:39,代码来源:HleIoDriverLocalFileSystem.cs
示例8: IoDevctl
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.WriteLine(" {0}", (EmulatorDevclEnum)Command);
switch ((EmulatorDevclEnum)Command)
{
case EmulatorDevclEnum.GetHasDisplay:
*((int*)OutputPointer) = HleState.CpuProcessor.PspConfig.HasDisplay ? 1 : 0;
break;
case EmulatorDevclEnum.SendOutput:
HleState.HleOutputHandler.Output(new String((sbyte*)InputPointer, 0, InputLength, Encoding.ASCII));
break;
case EmulatorDevclEnum.IsEmulator:
return 0;
}
return 0;
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:23,代码来源:HleIoDriverEmulator.cs
示例9: IoLseek
public unsafe long IoLseek(HleIoDrvFileArg HleIoDrvFileArg, long Offset, SeekAnchor Whence)
{
var IsoFileArgument = ((IsoFileArgument)HleIoDrvFileArg.FileArgument);
//Stream.Seek(
return IsoFileArgument.Stream.Seek(Offset, (SeekOrigin)Whence);
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:6,代码来源:HleIoDriverIso.cs
示例10: IoIoctl
public unsafe int IoIoctl(HleIoDrvFileArg HleIoDrvFileArg, uint Command, byte* InputPointer, int InputLength, byte* OutputPointer, int OutputLength)
{
var IsoFileArgument = ((IsoFileArgument)HleIoDrvFileArg.FileArgument);
ActionIntPVoid ExpectedOutputSize = (int MinimumSize) =>
{
if (OutputLength < MinimumSize || OutputPointer == null) throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_ARGUMENT));
return OutputPointer;
};
ActionIntPVoid ExpectedInputSize = (int MinimumSize) =>
{
if (InputLength < MinimumSize || InputPointer == null) throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_ARGUMENT));
return InputPointer;
};
switch ((UmdCommandEnum)Command)
{
#if false
case UmdCommandEnum.DefineDecryptionKey:
{
return 0;
}
#endif
case UmdCommandEnum.FileSeekSet:
{
var In = (uint *)ExpectedInputSize(sizeof(uint));
IsoFileArgument.Stream.Position = *In;
return 0;
}
case UmdCommandEnum.ReadSectors:
{
var In = (uint *)ExpectedInputSize(sizeof(uint));
var NumberOfSectors = *In;
var CopySize = (int)(IsoFile.SectorSize * NumberOfSectors);
var Out = (byte*)ExpectedOutputSize(CopySize);
var BytesReaded = IsoFileArgument.Stream.ReadBytes(CopySize);
PointerUtils.Memcpy(Out, BytesReaded, BytesReaded.Length);
return 0;
}
case UmdCommandEnum.FileSeek:
{
var In = (FileSeekIn*)ExpectedInputSize(sizeof(FileSeekIn));
IsoFileArgument.Stream.Seek(In->Offset, (SeekOrigin)In->Whence);
return 0;
}
case UmdCommandEnum.GetFilePointer:
{
var Out = (uint*)ExpectedOutputSize(sizeof(uint));
*Out = (uint)IsoFileArgument.Stream.Position;
return 0;
}
case UmdCommandEnum.GetStartSector:
{
var Out = (uint*)ExpectedOutputSize(sizeof(uint));
*Out = (uint)IsoFileArgument.StartSector;
return 0;
}
case UmdCommandEnum.GetSectorSize:
{
var Out = (uint*)ExpectedOutputSize(sizeof(uint));
*Out = IsoFile.SectorSize;
return 0;
}
case UmdCommandEnum.GetLengthInBytes:
{
var Out = (ulong*)ExpectedOutputSize(sizeof(ulong));
*Out = (uint)IsoFileArgument.Size;
return 0;
}
case UmdCommandEnum.GetPrimaryVolumeDescriptor:
{
var Out = (PrimaryVolumeDescriptor*)ExpectedOutputSize(sizeof(PrimaryVolumeDescriptor));
*Out = Iso.PrimaryVolumeDescriptor;
return 0;
}
default:
throw new NotImplementedException(String.Format("Not implemented command 0x{0:X} : {1}", Command, (UmdCommandEnum)Command));
}
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:80,代码来源:HleIoDriverIso.cs
示例11: IoGetstat
public unsafe int IoGetstat(HleIoDrvFileArg HleIoDrvFileArg, string FileName, SceIoStat* Stat)
{
//Console.WriteLine(FileName);
_IoGetstat(Iso.Root.Locate(FileName), Stat);
return 0;
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:7,代码来源:HleIoDriverIso.cs
示例12: IoDread
public unsafe int IoDread(HleIoDrvFileArg HleIoDrvFileArg, HleIoDirent* IoDirent)
{
//var Enumerator = (DirectoryEnumerator<IsoNode>)(DisposableDummy<DirectoryEnumerator<IsoNode>>)HleIoDrvFileArg.FileArgument;
var Enumerator = (DirectoryEnumerator<IsoNode>)HleIoDrvFileArg.FileArgument;
// More items.
if (Enumerator.MoveNext())
{
//Console.Error.WriteLine("'{0}'", Enumerator.Current.ToString());
var IsoNode = Enumerator.Current;
{
IoDirent->Name = IsoNode.Name;
_IoGetstat(IsoNode, &IoDirent->Stat);
}
}
// No more items.
else
{
}
return Enumerator.GetLeft();
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:22,代码来源:HleIoDriverIso.cs
示例13: IoGetstat
public unsafe int IoGetstat(HleIoDrvFileArg HleIoDrvFileArg, string FileName, SceIoStat* Stat)
{
var RealFileName = GetFullNormalizedAndSanitizedPath(FileName);
//Console.WriteLine(RealFileName);
Stat->Attributes = IOFileModes.CanExecute | IOFileModes.CanRead | IOFileModes.CanWrite;
Stat->Mode = 0;
Stat->Mode = SceMode.UserCanExecute | SceMode.UserCanRead | SceMode.UserCanWrite;
Stat->Mode = SceMode.GroupCanExecute | SceMode.GroupCanRead | SceMode.GroupCanWrite;
Stat->Mode = SceMode.OtherCanExecute | SceMode.OtherCanRead | SceMode.OtherCanWrite;
FileSystemInfo FileSystemInfo = null;
if (File.Exists(RealFileName))
{
var FileInfo = new FileInfo(RealFileName);
FileSystemInfo = FileInfo;
Stat->Size = FileInfo.Length;
Stat->Mode |= SceMode.File;
Stat->Attributes |= IOFileModes.File;
}
else if (Directory.Exists(RealFileName))
{
var DirectoryInfo = new DirectoryInfo(RealFileName);
FileSystemInfo = DirectoryInfo;
Stat->Mode |= SceMode.Directory;
Stat->Attributes |= IOFileModes.Directory;
}
else
{
throw(new FileNotFoundException("Can't find file '" + RealFileName + "'"));
}
Stat->TimeCreation = ScePspDateTime.FromDateTime(FileSystemInfo.CreationTimeUtc);
Stat->TimeLastAccess = ScePspDateTime.FromDateTime(FileSystemInfo.LastAccessTimeUtc);
Stat->TimeLastModification = ScePspDateTime.FromDateTime(FileSystemInfo.LastWriteTimeUtc);
return 0;
}
开发者ID:e-COS,项目名称:cspspemu,代码行数:38,代码来源:HleIoDriverLocalFileSystem.cs
示例14: IoChdir
public unsafe int IoChdir(HleIoDrvFileArg HleIoDrvFileArg, string DirectoryName)
{
throw new NotImplementedException();
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:4,代码来源:HleIoDriverIso.cs
示例15: IoMkdir
public unsafe int IoMkdir(HleIoDrvFileArg HleIoDrvFileArg, string Name, SceMode Mode)
{
var RealFileName = GetFullNormalizedAndSanitizedPath(Name);
Directory.CreateDirectory(RealFileName);
//HleIoDrvFileArg.
//throw new NotImplementedException();
return 0;
}
开发者ID:e-COS,项目名称:cspspemu,代码行数:8,代码来源:HleIoDriverLocalFileSystem.cs
示例16: IoRename
public unsafe int IoRename(HleIoDrvFileArg HleIoDrvFileArg, string OldFileName, string NewFileName)
{
throw new NotImplementedException();
}
开发者ID:soywiz,项目名称:cspspemu,代码行数:4,代码来源:HleIoDriverIso.cs
示例17: IoRead
public unsafe int IoRead(HleIoDrvFileArg HleIoDrvFileArg, byte* OutputPointer, int OutputLength)
{
var Stream = ((Stream)HleIoDrvFileArg.FileArgument);
var OutputData = new byte[OutputLength];
int Readed = Stream.Read(OutputData, 0, OutputLength);
Marshal.Copy(OutputData, 0, new IntPtr(OutputPointer), OutputLength);
return Readed;
//throw new NotImplementedException();
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:9,代码来源:HleIoDriverIso.cs
示例18: IoOpen
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode)
{
// disc0:/sce_lbn0x5fa0_size0x1428
//Console.WriteLine(":::::::::" + FileName);
if (FileName.StartsWith("/sce_"))
{
int Sector = 0, Size = 0;
var Parts = FileName.Substring(5).Split('_');
foreach (var Part in Parts)
{
if (Part.StartsWith("lbn"))
{
var Number = Part.Substring(3);
Sector = NumberUtils.ParseIntegerConstant(Number);
}
else if (Part.StartsWith("size"))
{
var Number = Part.Substring(4);
Size = NumberUtils.ParseIntegerConstant(Number);
}
else
{
throw(new NotImplementedException("Can't handle special filename '" + FileName + "' part '" + Part + "'"));
}
//Console.WriteLine(Part);
}
//Console.WriteLine("SPECIAL({0}, {1})", lbn, size);
//Console.WriteLine("SPECIAL!!!!!!!!!!!!!!!!!!!!");
HleIoDrvFileArg.FileArgument = Iso.Stream.SliceWithLength(Sector * IsoFile.SectorSize, Size);
return 0;
}
//Console.WriteLine(FileName);
var IsoNode = Iso.Root.Locate(FileName);
HleIoDrvFileArg.FileArgument = IsoNode.Open();
return 0;
}
开发者ID:mrcmunir,项目名称:cspspemu,代码行数:37,代码来源:HleIoDriverIso.cs
示例19: IoWrite
public unsafe int IoWrite(HleIoDrvFileArg HleIoDrvFileArg, byte* InputPointer, int InputLength)
{
try
{
var Buffer = new byte[InputLength];
for (int n = 0; n < InputLength; n++) Buffer[n] = * InputPointer++;
var FileStream = ((FileStream)HleIoDrvFileArg.FileArgument);
FileStream.Write(Buffer, 0, InputLength);
FileStream.Flush();
return InputLength;
}
catch (Exception)
{
//Console.Error.WriteLine(Exception);
return -1;
}
}
开发者ID:e-COS,项目名称:cspspemu,代码行数:18,代码来源:HleIoDriverLocalFileSystem.cs
示例20: IoRead
public unsafe int IoRead(HleIoDrvFileArg HleIoDrvFileArg, byte* OutputPointer, int OutputLength)
{
try
{
var Buffer = new byte[OutputLength];
var FileStream = ((FileStream)HleIoDrvFileArg.FileArgument);
//Console.WriteLine("ReadPosition: {0}", FileStream.Position);
int Readed = FileStream.Read(Buffer, 0, OutputLength);
for (int n = 0; n < Readed; n++) *OutputPointer++ = Buffer[n];
return Readed;
}
catch (Exception Exception)
{
Console.WriteLine(Exception);
return -1;
}
}
开发者ID:e-COS,项目名称:cspspemu,代码行数:17,代码来源:HleIoDriverLocalFileSystem.cs
注:本文中的HleIoDrvFileArg类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论