BizHawk/BizHawk.Emulation/Consoles/PSX/LibMednahawkDll.cs

53 lines
1.6 KiB
C#
Raw Normal View History

using System;
using System.Runtime.InteropServices;
public unsafe static class LibMednahawkDll
{
public enum eProp : int
{
GetPtr_FramebufferPointer,
GetPtr_FramebufferPitchPixels,
GetPtr_FramebufferWidth,
GetPtr_FramebufferHeight,
SetPtr_FopenCallback,
SetPtr_FcloseCallback,
SetPtr_FopCallback
}
public enum FOP: int
{
FOP_fread,
FOP_fwrite,
FOP_fflush,
FOP_fseeko,
FOP_ftello,
FOP_ferror,
FOP_clearerr,
FOP_size
};
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate IntPtr t_FopenCallback(string fname, string mode);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int t_FcloseCallback(IntPtr fp);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate long t_FopCallback(int op, IntPtr ptr, long a, long b, IntPtr fp);
[DllImport("libmednahawk.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr dll_GetPropPtr(eProp prop);
[DllImport("libmednahawk.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void dll_SetPropPtr(eProp prop, IntPtr val);
[DllImport("libmednahawk.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool dll_Initialize();
[DllImport("libmednahawk.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void psx_FrameAdvance();
[DllImport("libmednahawk.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool psx_LoadCue(string path);
}