/// <summary> /// Builds the capabilities internally. /// </summary> private void BuildCapabilities() { capability = new ASIODriverCapability(); capability.DriverName = driver.getDriverName(); // Get nb Input/Output channels driver.getChannels(out capability.NbInputChannels, out capability.NbOutputChannels); capability.InputChannelInfos = new ASIOChannelInfo[capability.NbInputChannels]; capability.OutputChannelInfos = new ASIOChannelInfo[capability.NbOutputChannels]; // Get ChannelInfo for Inputs for (int i = 0; i < capability.NbInputChannels; i++) { capability.InputChannelInfos[i] = driver.getChannelInfo(i, true); } // Get ChannelInfo for Output for (int i = 0; i < capability.NbOutputChannels; i++) { capability.OutputChannelInfos[i] = driver.getChannelInfo(i, false); } // Get the current SampleRate capability.SampleRate = driver.getSampleRate(); // Get Latencies driver.getLatencies(out capability.InputLatency, out capability.OutputLatency); // Get BufferSize driver.getBufferSize(out capability.BufferMinSize, out capability.BufferMaxSize, out capability.BufferPreferredSize, out capability.BufferGranularity); }