libpd-sys 0.3.4

Rust bindings for libpd
using System.Runtime.InteropServices;

namespace LibPDBinding.Native
{
	static class Audio
	{
		[DllImport (Defines.DllName, EntryPoint = "libpd_blocksize", CallingConvention = Defines.CallingConvention)]
		public static extern int blocksize ();

		[DllImport (Defines.DllName, EntryPoint = "libpd_init_audio", CallingConvention = Defines.CallingConvention)]
		public static extern int init_audio (int inputChannels, int outputChannels, int sampleRate);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_raw", CallingConvention = Defines.CallingConvention)]
		public static extern int process_raw ([In] float[] inBuffer, [Out] float[] outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_raw", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe  int process_raw (float* inBuffer, float* outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_short", CallingConvention = Defines.CallingConvention)]
		public static extern int process_short (int ticks, [In] short[] inBuffer, [Out] short[] outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_short", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe  int process_short (int ticks, short* inBuffer, short* outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_float", CallingConvention = Defines.CallingConvention)]
		public static extern int process_float (int ticks, [In] float[] inBuffer, [Out] float[] outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_float", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe  int process_float (int ticks, float* inBuffer, float* outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_double", CallingConvention = Defines.CallingConvention)]
		public static extern int process_double (int ticks, [In] double[] inBuffer, [Out] double[] outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_process_double", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe int process_double (int ticks, double* inBuffer, double* outBuffer);

		[DllImport (Defines.DllName, EntryPoint = "libpd_arraysize", CallingConvention = Defines.CallingConvention)]
		public static extern int arraysize ([In] [MarshalAs (UnmanagedType.LPStr)] string name);

		[DllImport (Defines.DllName, EntryPoint = "libpd_read_array", CallingConvention = Defines.CallingConvention)]
		public static extern int read_array ([Out] float[] dest, [In] [MarshalAs (UnmanagedType.LPStr)] string src, int offset, int n);

		[DllImport (Defines.DllName, EntryPoint = "libpd_read_array", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe  int read_array (float* dest, [In] [MarshalAs (UnmanagedType.LPStr)] string src, int offset, int n);

		[DllImport (Defines.DllName, EntryPoint = "libpd_write_array", CallingConvention = Defines.CallingConvention)]
		public static extern int write_array ([In] [MarshalAs (UnmanagedType.LPStr)] string dest, int offset, [In] float[] src, int n);

		[DllImport (Defines.DllName, EntryPoint = "libpd_write_array", CallingConvention = Defines.CallingConvention)]
		public static extern unsafe int write_array ([In] [MarshalAs (UnmanagedType.LPStr)] string dest, int offset, float* src, int n);
	}
}