Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures
Public _result As Boolean = False
Public _form As PlayCtrlForm = New PlayCtrlForm()
Public _playctrl As PlayCtrl
Public _pcsbform As TestCtrlSubForm
Public Sub RenderersExample()
   ' reference the play control
   _playctrl = _form.PlayCtrl
   ' input file
   Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_SourceVideoOnly.avi")
   Try
      ' create the sub form for renderers listbox
      _pcsbform = New TestCtrlSubForm()
      AddHandler _pcsbform.Load, AddressOf Form_Load
      AddHandler _pcsbform.buttonRefresh.Click, AddressOf Refresh_Click
      AddHandler _pcsbform.List.Click, AddressOf List_Click
      ' set autostart to false
      _playctrl.AutoStart = False
      ' set our source media file
      _playctrl.SourceFile = inFile
      ' show the renderers form
      _pcsbform.ShowDialog()
      ' get the selected renderer index
      Dim selectedRenderer As Integer = _playctrl.AudioRenderers.Selection
      ' set the result to what we expect 
      _result = (Not _pcsbform.List.SelectedItem Is Nothing AndAlso _playctrl.AudioRenderers.Selection <> -1)
   Catch e1 As Exception
      _result = False
   End Try
End Sub
Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs)
   '  build the audio renderer list
   EnumerateRenderers(_playctrl.AudioRenderers, _pcsbform.List)
End Sub
Private Sub List_Click(ByVal sender As Object, ByVal e As EventArgs)
   '  select the audio renderer
   SelectRenderer(_playctrl.AudioRenderers, _pcsbform.List)
End Sub
Private Sub Refresh_Click(ByVal sender As Object, ByVal e As EventArgs)
   '  refresh audio renderers
   RefreshRenderers(_playctrl.AudioRenderers, _pcsbform.List)
End Sub
Private Sub EnumerateRenderers(ByVal Renderers As AudioRenderers, ByVal List As ListBox)
   '  Build the renderers list box
   Dim Selected As Integer = -1
   ' empty the list box
   List.Items.Clear()
   ' add the available audio renderers to the list box
   Dim i As Integer = 0
   Do While (i <= (Renderers.Count - 1))
      List.Items.Add(Renderers(i))
      If Renderers(i).Selected Then
         Selected = i
      End If
      i += 1
   Loop
   '  highlight the current selection
   List.SelectedIndex = Selected
End Sub
Private Sub RefreshRenderers(ByVal Renderers As AudioRenderers, ByVal List As ListBox)
   Dim SelectedName As String = String.Empty
   '  save the currently selected renderer's name
   If Renderers.Selection >= 0 Then
      SelectedName = Renderers(Renderers.Selection).FriendlyName
   End If
   '  refresh the renderer collection
   Renderers.Reset()
   '  if there was a previously selected renderer, reselect it
   If SelectedName <> String.Empty Then
      Renderers.Selection = Renderers.IndexOf(SelectedName)
   End If
   '  rebuild the listbox
   EnumerateRenderers(Renderers, List)
End Sub
Private Sub SelectRenderer(ByVal Renderers As AudioRenderers, ByVal List As ListBox)
   '  select the highlighted renderer
   Renderers.Selection = Renderers.IndexOf(TryCast(List.Items(List.SelectedIndex), Renderer))
End Sub
Public NotInheritable Class LEAD_VARS
Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"
End Class
             
   
     
            using Leadtools;
using Leadtools.MediaFoundation;
using LeadtoolsMediaFoundationExamples.Fixtures;
public bool _result = false;
public PlayCtrlForm _form = new PlayCtrlForm();
public PlayCtrl _playctrl;
public TestCtrlSubForm _pcsbform;
public void RenderersExample()
{
   // reference the play control
   _playctrl = _form.PlayCtrl;
   // input file
   string inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_SourceVideoOnly.avi");
   try
   {
      // create the sub form for renderers listbox
      _pcsbform = new TestCtrlSubForm();
      _pcsbform.Load += new EventHandler(Form_Load);
      _pcsbform.buttonRefresh.Click += new EventHandler(Refresh_Click);
      _pcsbform.List.Click += new EventHandler(List_Click);
      // set autostart to false
      _playctrl.AutoStart = false;
      // set our source media file
      _playctrl.SourceFile = inFile;
      // show the renderers form
      _pcsbform.ShowDialog();
      // get the selected renderer index
      int selectedRenderer = _playctrl.AudioRenderers.Selection;
      // set the result to what we expect 
      _result = (_pcsbform.List.SelectedItem != null && _playctrl.AudioRenderers.Selection != -1);
   }
   catch (Exception)
   {
      _result = false;
   }
}
void Form_Load(object sender, EventArgs e)
{
   //  build the audio renderer list
   EnumerateRenderers(_playctrl.AudioRenderers, _pcsbform.List);
}
void List_Click(object sender, EventArgs e)
{
   //  select the audio renderer
   SelectRenderer(_playctrl.AudioRenderers, _pcsbform.List);
}
void Refresh_Click(object sender, EventArgs e)
{
   //  refresh audio renderers
   RefreshRenderers(_playctrl.AudioRenderers, _pcsbform.List);
}
void EnumerateRenderers(AudioRenderers Renderers, ListBox List)
{
   //  Build the renderers list box
   int Selected = -1;
   // empty the list box
   List.Items.Clear();
   // add the available audio renderers to the list box
   for (int i = 0; (i <= (Renderers.Count - 1)); i++)
   {
      List.Items.Add(Renderers[i]);
      if (Renderers[i].Selected)
      {
         Selected = i;
      }
   }
   //  highlight the current selection
   List.SelectedIndex = Selected;
}
void RefreshRenderers(AudioRenderers Renderers, ListBox List)
{
   string SelectedName = string.Empty;
   //  save the currently selected renderer's name
   if (Renderers.Selection >= 0)
      SelectedName = Renderers[Renderers.Selection].FriendlyName;
   //  refresh the renderer collection
   Renderers.Reset();
   //  if there was a previously selected renderer, reselect it
   if (SelectedName != string.Empty)
      Renderers.Selection = Renderers.IndexOf(SelectedName);
   //  rebuild the listbox
   EnumerateRenderers(Renderers, List);
}
void SelectRenderer(AudioRenderers Renderers, ListBox List)
{
   //  select the highlighted renderer
   Renderers.Selection = Renderers.IndexOf(List.Items[List.SelectedIndex] as Renderer);
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}