Attribute VB_Name = "AboutCodecView"
Option Explicit
Private AbRutaCodec As String
Private AbCodecTipo As Byte
Public AModo As Byte
Public RutaCodecRet As String

Public Function ACInicializarVisor(FormPadre As Form, Optional Ruta As String, Optional Tipo As Byte) As String
RutaCodecRet = vbNullString
Load Form11
If Ruta = "" Then
AModo = 0
Call ListarCodecs
Else
AModo = 1
Call CargarInformacionCodec(Ruta, Tipo)
End If
On Error Resume Next
Form11.Show vbModal, FormPadre
ACInicializarVisor = RutaCodecRet
End Function

Private Sub ListarCodecs()
Dim Rutas() As String, i As Integer, NumCA As Integer, NumCV As Integer
Dim CodecsA() As String, CodecsV() As String, BFormat As Appfilesadm.FormatPerf
Dim NumArchivo As Integer
Rutas = ScriptObj.ListarArchivosDeDir(App.Path & "\appfiles\ecodec", "lca:fca:")
If Rutas(1) <> "" Then
For i = 1 To UBound(Rutas)
NumCA = NumCA + 1
ReDim Preserve CodecsA(1 To NumCA)
CodecsA(NumCA) = ScriptObj.NombreBase(Rutas(i))
If LCase(ScriptObj.DevolverExtension(Rutas(i))) = "fca" Then CodecsA(NumCA) = "FF>" & CodecsA(NumCA)
Next
End If
Erase Rutas
Rutas = ScriptObj.ListarArchivosDeDir(App.Path & "\appfiles\ecodec", "lcv:fcv:")
If Rutas(1) <> "" Then
For i = 1 To UBound(Rutas)
NumCV = NumCV + 1
ReDim Preserve CodecsV(1 To NumCV)
CodecsV(NumCV) = ScriptObj.NombreBase(Rutas(i))
If LCase(ScriptObj.DevolverExtension(Rutas(i))) = "fcv" Then CodecsV(NumCV) = "FF>" & CodecsV(NumCV)
Next
End If
Erase Rutas
Rutas = ScriptObj.ListarArchivosDeDir(App.Path & "\appfiles\formats", "lfm:")
If Rutas(1) <> "" Then
On Error Resume Next
For i = 1 To UBound(Rutas)
NumArchivo = FreeFile
Open Rutas(i) For Binary As NumArchivo
Get NumArchivo, , BFormat
Close NumArchivo
If BFormat.ECodecANombre <> "" Then
If BFormat.InfoECodecA.RutaEXE <> "<ffmpeg.exe>" Then
    If ScriptObj.ExisteArchivo(App.Path & "\appfiles\ecodec\" & BFormat.ECodecANombre & ".lca") = False Then
    NumCA = NumCA + 1
    ReDim Preserve CodecsA(1 To NumCA)
    CodecsA(NumCA) = ScriptObj.NombreBase(Rutas(i)) & "\" & BFormat.ECodecANombre
    End If
Else
    If ScriptObj.ExisteArchivo(App.Path & "\appfiles\ecodec\" & Replace(BFormat.ECodecANombre, "FF>", "") & ".fca") = False Then
    NumCA = NumCA + 1
    ReDim Preserve CodecsA(1 To NumCA)
    CodecsA(NumCA) = ScriptObj.NombreBase(Rutas(i)) & "\" & BFormat.ECodecANombre
    End If
End If
End If
If BFormat.ECodecVNombre <> "" Then
If BFormat.InfoECodecV.RutaEXE <> "<ffmpeg.exe>" Then
    If ScriptObj.ExisteArchivo(App.Path & "\appfiles\ecodec\" & BFormat.ECodecVNombre & ".lcv") = False Then
    NumCV = NumCV + 1
    ReDim Preserve CodecsV(1 To NumCV)
    CodecsV(NumCV) = ScriptObj.NombreBase(Rutas(i)) & "\" & BFormat.ECodecVNombre
    End If
Else
    If ScriptObj.ExisteArchivo(App.Path & "\appfiles\ecodec\" & Replace(BFormat.ECodecVNombre, "FF>", "") & ".fcv") = False Then
    NumCV = NumCV + 1
    ReDim Preserve CodecsV(1 To NumCV)
    CodecsV(NumCV) = ScriptObj.NombreBase(Rutas(i)) & "\" & BFormat.ECodecVNombre
    End If
End If
End If
Next
End If
Erase Rutas
If NumCA > 0 Then
For i = 1 To NumCA: Form11.List1.AddItem "audio\" & CodecsA(i): Next
End If
If NumCV > 0 Then
For i = 1 To NumCV: Form11.List1.AddItem "video\" & CodecsV(i): Next
End If
End Sub

Public Sub CargarInformacionCodec(Ruta As String, Optional Tipo As Byte)
Dim NumArchivo As Integer, BFormat As Appfilesadm.FormatPerf
Dim BCodec As Appfilesadm.ExternalCodec, Nombre As String
On Error GoTo ErrH
NumArchivo = FreeFile
Open Ruta For Binary As NumArchivo
If LCase(ScriptObj.DevolverExtension(Ruta)) = "lfm" Then
Get NumArchivo, , BFormat
If Tipo = 0 Then
BCodec = BFormat.InfoECodecA
Nombre = BFormat.ECodecANombre
Else
BCodec = BFormat.InfoECodecV
Nombre = BFormat.ECodecVNombre
End If
Else
Get NumArchivo, , BCodec
Nombre = ScriptObj.NombreBase(Ruta)
End If
Close NumArchivo
Form11.Text1.Text = Nombre
Form11.Text2.Text = BCodec.AcercaDe
Form11.Text3.Text = BCodec.RutaEXE
Form11.Text3.Tag = Form11.Text3.Text
AbRutaCodec = Ruta
AbCodecTipo = Tipo
Form11.Picture1.Visible = False
Exit Sub
ErrH:
Lang.MsgCantFileRead
If AModo = 1 Then Unload Form11
End Sub

Public Sub ActualizarUbicacionEXE()
Dim NumArchivo As Integer, BFormat As Appfilesadm.FormatPerf
Dim BCodec As Appfilesadm.ExternalCodec
On Error GoTo ErrH
NumArchivo = FreeFile
Open AbRutaCodec For Binary As NumArchivo
If LCase(ScriptObj.DevolverExtension(AbRutaCodec)) = "lfm" Then
Get NumArchivo, , BFormat
If AbCodecTipo = 0 Then BFormat.InfoECodecA.RutaEXE = Form11.Text3.Text Else BFormat.InfoECodecV.RutaEXE = Form11.Text3.Text
Put NumArchivo, 1, BFormat
Else
Get NumArchivo, , BCodec
BCodec.RutaEXE = Form11.Text3.Text
Put NumArchivo, 1, BCodec
End If
Close NumArchivo
Exit Sub
ErrH:
Lang.MsgCantWriteFile (AbRutaCodec)
End Sub
