Skip to content

Commit

Permalink
Release asio driver if init was with error
Browse files Browse the repository at this point in the history
  • Loading branch information
piksaevalex committed Mar 23, 2021
1 parent fb35ce8 commit 76acf11
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions NAudio.Asio/AsioOut.cs
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,16 @@ private void InitFromName(string driverName)
// Get the basic driver
AsioDriver basicDriver = AsioDriver.GetAsioDriverByName(driverName);

// Instantiate the extended driver
driver = new AsioDriverExt(basicDriver);
try
{
// Instantiate the extended driver
driver = new AsioDriverExt(basicDriver);
}
catch
{
ReleaseDriver(basicDriver);
throw;
}
driver.ResetRequestCallback = OnDriverResetRequest;
this.ChannelOffset = 0;
}
Expand All @@ -164,6 +172,15 @@ private void OnDriverResetRequest()
DriverResetRequest?.Invoke(this, EventArgs.Empty);
}

/// <summary>
/// Release driver
/// </summary>
private void ReleaseDriver(AsioDriver driver)
{
driver.DisposeBuffers();
driver.ReleaseComAsioDriver();
}

/// <summary>
/// Shows the control panel
/// </summary>
Expand Down

0 comments on commit 76acf11

Please sign in to comment.