private void BuildLists(TvBusinessLayer layer) { DsDevice[] devices1 = DsDevice.GetDevicesOfCat(FilterCategory.VideoCompressorCategory); DsDevice[] devices2 = DsDevice.GetDevicesOfCat(FilterCategory.AudioCompressorCategory); DsDevice[] devices3 = DsDevice.GetDevicesOfCat(FilterCategory.LegacyAmFilterCategory); bool found; IList<SoftwareEncoder> encoders = layer.GetSofwareEncodersVideo(); _bindingVideoEncoders = new BindingList<DisplaySoftwareEncoder>(); foreach (SoftwareEncoder encoder in encoders) { found = false; DisplaySoftwareEncoder displayEncoder = new DisplaySoftwareEncoder(encoder); for (int i = 0; i < devices1.Length; i++) { if (devices1[i].Name == encoder.Name) { found = true; displayEncoder.Installed = "Yes"; break; } } if (!found) { for (int i = 0; i < devices3.Length; i++) { if (devices3[i].Name == encoder.Name) { found = true; displayEncoder.Installed = "Yes"; break; } } } _bindingVideoEncoders.Add(displayEncoder); } mpListViewVideo.DataSource = _bindingVideoEncoders; encoders = layer.GetSofwareEncodersAudio(); _bindingAudioEncoders = new BindingList<DisplaySoftwareEncoder>(); foreach (SoftwareEncoder encoder in encoders) { found = false; DisplaySoftwareEncoder displayEncoder = new DisplaySoftwareEncoder(encoder); for (int i = 0; i < devices2.Length; i++) { if (devices2[i].Name == encoder.Name) { found = true; displayEncoder.Installed = "Yes"; break; } } if (!found) { for (int i = 0; i < devices3.Length; i++) { if (devices3[i].Name == encoder.Name) { found = true; displayEncoder.Installed = "Yes"; break; } } } _bindingAudioEncoders.Add(displayEncoder); } mpListViewAudio.DataSource = _bindingAudioEncoders; }