//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(); } }