# Device enumeration

Media Blocks SDK .Net

SDK has the DeviceEnumerator class, which is used to enumerate video and audio devices.

The shared instance of the DeviceEnumerator class will be used to enumerate devices.

# Video sources

var videoSources = await DeviceEnumerator.Shared.VideoSourcesAsync();;
foreach (var device in videoSources)
{
    Debug.WriteLine(device.Name);
}

# Audio sources

var audioSources = await DeviceEnumerator.Shared.AudioSourcesAsync();

foreach (var device in audioSources)
{
    Debug.WriteLine(device.Name);
}

# Audio outputs

var audioOutputs = await DeviceEnumerator.Shared.AudioOutputsAsync();

foreach (var device in audioOutputs)
{
    Debug.WriteLine(device.Name);
}

# Blackmagic Decklink devices

# Decklink video sources

var decklinkVideoSources = await DeviceEnumerator.Shared.DecklinkVideoSourcesAsync();
foreach (var device in decklinkVideoSources)
{
    Debug.WriteLine(device.Name);
}

# Decklink audio sources

var decklinkAudioSources = await DeviceEnumerator.Shared.DecklinkAudioSourcesAsync();
foreach (var device in decklinkAudioSources)
{
    Debug.WriteLine(device.Name);
}

# Decklink video outputs

var decklinkVideoOutputs = await DeviceEnumerator.Shared.DecklinkVideoSinksAsync();
foreach (var device in decklinkVideoOutputs)
{
    Debug.WriteLine(device.Name);
}

# Decklink audio outputs

var decklinkAudioOutputs = await DeviceEnumerator.Shared.DecklinkAudioSinksAsync();
foreach (var device in decklinkAudioOutputs)
{
    Debug.WriteLine(device.Name);
}

# NDI sources

var ndiSources = await DeviceEnumerator.Shared.NDISourcesAsync();
foreach (var device in ndiSources)
{
    Debug.WriteLine(device.Name);
}

# GigE Vision / USB3 Vision / GenICam sources

# Basler cameras

var baslerCameras = await DeviceEnumerator.Shared.BaslerSourcesAsync();

foreach (var device in baslerCameras)
{
    Debug.WriteLine(device.Name);
}

# Allied Vision cameras

var alliedCameras = await DeviceEnumerator.Shared.AlliedVisionSources();

foreach (var device in alliedCameras)
{
    Debug.WriteLine(device.Name);
}

# Generic GenICam cameras

var genicamCameras = await DeviceEnumerator.Shared.GenICamSourcesAsync();

foreach (var device in genicamCameras)
{
    Debug.WriteLine(device.Name);
}