Skip to content

Commit

Permalink
Merge pull request naudio#756 from piksaevalex/master
Browse files Browse the repository at this point in the history
Release asio driver if init was with error
  • Loading branch information
markheath authored Apr 22, 2022
2 parents 7408d5a + 76acf11 commit 7b29cbb
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 7b29cbb

Please sign in to comment.