/// <summary> /// Initializes a new instance of the <see cref="ASIODriverExt"/> class based on an already /// instantiated ASIODriver instance. /// </summary> /// <param name="driver">A ASIODriver already instantiated.</param> public ASIODriverExt(ASIODriver driver) { this.driver = driver; driver.init(IntPtr.Zero); callbacks = new ASIOCallbacks(); callbacks.pasioMessage = AsioMessageCallBack; callbacks.pbufferSwitch = BufferSwitchCallBack; callbacks.pbufferSwitchTimeInfo = BufferSwitchTimeInfoCallBack; callbacks.psampleRateDidChange = SampleRateDidChangeCallBack; BuildCapabilities(); }
/// <summary> /// Initializes a new instance of the <see cref="ASIODriverExt"/> class based on an already /// instantiated ASIODriver instance. /// </summary> /// <param name="driver">A ASIODriver already instantiated.</param> public ASIODriverExt(ASIODriver driver) { this.driver = driver; if (!driver.init(IntPtr.Zero)) { throw new InvalidOperationException(driver.getErrorMessage()); } callbacks = new ASIOCallbacks(); callbacks.pasioMessage = AsioMessageCallBack; callbacks.pbufferSwitch = BufferSwitchCallBack; callbacks.pbufferSwitchTimeInfo = BufferSwitchTimeInfoCallBack; callbacks.psampleRateDidChange = SampleRateDidChangeCallBack; BuildCapabilities(); }
/// <summary> /// Creates the buffers. /// </summary> /// <param name="bufferInfos">The buffer infos.</param> /// <param name="numChannels">The num channels.</param> /// <param name="bufferSize">Size of the buffer.</param> /// <param name="callbacks">The callbacks.</param> public void createBuffers(IntPtr bufferInfos, int numChannels, int bufferSize, ref ASIOCallbacks callbacks) { // next two lines suggested by droidi on codeplex issue tracker pinnedcallbacks = Marshal.AllocHGlobal(Marshal.SizeOf(callbacks)); Marshal.StructureToPtr(callbacks, pinnedcallbacks, false); handleException(asioDriverVTable.createBuffers(pASIOComObject, bufferInfos, numChannels, bufferSize, pinnedcallbacks), "createBuffers"); }
/// <summary> /// Creates the buffers. /// </summary> /// <param name="bufferInfos">The buffer infos.</param> /// <param name="numChannels">The num channels.</param> /// <param name="bufferSize">Size of the buffer.</param> /// <param name="callbacks">The callbacks.</param> // Token: 0x060006E7 RID: 1767 RVA: 0x00015568 File Offset: 0x00013768 public void createBuffers(IntPtr bufferInfos, int numChannels, int bufferSize, ref ASIOCallbacks callbacks) { this.pinnedcallbacks = Marshal.AllocHGlobal(Marshal.SizeOf(callbacks)); Marshal.StructureToPtr(callbacks, this.pinnedcallbacks, false); this.handleException(this.asioDriverVTable.createBuffers(this.pASIOComObject, bufferInfos, numChannels, bufferSize, this.pinnedcallbacks), "createBuffers"); }
/// <summary> /// Creates the buffers. /// </summary> /// <param name="bufferInfos">The buffer infos.</param> /// <param name="numChannels">The num channels.</param> /// <param name="bufferSize">Size of the buffer.</param> /// <param name="callbacks">The callbacks.</param> public void createBuffers(IntPtr bufferInfos, int numChannels, int bufferSize, ref ASIOCallbacks callbacks) { // next two lines suggested by droidi on codeplex issue tracker pinnedcallbacks = Marshal.AllocHGlobal(Marshal.SizeOf(callbacks)); Marshal.StructureToPtr(callbacks, pinnedcallbacks, false); handleException(asioDriverVTable.createBuffers(pASIOComObject, bufferInfos, numChannels, bufferSize, ref callbacks), "createBuffers"); }