//Based on the original work of Diogo Cardoso
//https://github.com/DVDPT/libMPSSE-.Net-Wrapper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using libMPSSEWrapper.Types;
namespace libMPSSEWrapper
{
///
/// The LibPmsse Wrapper Class for C#
///
public class LibMpsse
{
private static int _initializations = 0;
///
/// Constant name of FTDI Library
///
public const string DllName = "libMPSSE.dll";
///
/// Initialize the LibMpsseSpi Wrapper
///
public static void Init()
{
if(Interlocked.Increment(ref _initializations) == 1)
Init_libMPSSE();
}
///
/// Clean Up the LibMpsseSpi Wrapper
///
public static void Cleanup()
{
if(Interlocked.Decrement(ref _initializations) == 0)
Cleanup_libMPSSE();
}
[DllImport(DllName, SetLastError = true, CallingConvention = CallingConvention.Cdecl)]
private extern static void Init_libMPSSE();
[DllImport(DllName, SetLastError = true, CallingConvention = CallingConvention.Cdecl)]
private extern static void Cleanup_libMPSSE();
}
}