159 lines
4.8 KiB
Plaintext
159 lines
4.8 KiB
Plaintext
' lame.vbs WindowsScript wrapper v0.5, 06/15/2001
|
|
' $id$
|
|
'
|
|
' *Purpose*
|
|
' Use this WindowsScript to encode WAVs using drag&drop:
|
|
' 0. make sure you have windows script host v5.1 on your system
|
|
' (enter 'cscript' in a DOS-Box and compare version number)
|
|
' 1. adjust the path settings below to fit your needs
|
|
' 2a. put this file somewhere on the desktop
|
|
' 3a. drag one or more wav-files on the icon and watch them being lamed.
|
|
'
|
|
' 2b. start->execute, enter "sendto", drag the script or a link to it in
|
|
' sendto window (adjust names and icon as you like)
|
|
' 3b. select wave-file(s) and send it via the send-to menu to LAME!
|
|
'
|
|
' You may wish to create copies of this file with different options set.
|
|
'
|
|
' If you would like a GUI: try to enable the HTML UI (see below)
|
|
'
|
|
' Ralf Kempkens, ralf.kempkens@epost.de
|
|
'
|
|
'
|
|
' *History*
|
|
' V0.5 * lame.vbs will automatically decode if the file has a .mp3 extension
|
|
' * now explicitly refuses to accept folders
|
|
' V0.4 * creates single .mp3 extensions, now ID3 options in HTML interface
|
|
' V0.3 * fixed bug that prevented lame.exe to be located in a path that
|
|
' contained a space
|
|
' * experimental HTML UI support (disabled by default)
|
|
' V0.2 added multiple file support
|
|
' V0.1 initial release
|
|
|
|
' *** change path to your needs ***
|
|
path = "D:\Audio\Lame\Lame386\" '!!! must end with a backslash !!!
|
|
lame = "lame.exe"
|
|
|
|
' *** change default options to your needs ***
|
|
opts = "--preset hifi"
|
|
|
|
' *** HTML GUI (experimental) ***
|
|
useGUI = False
|
|
' it set to True, opens file lameGUI.html residing in the same path as lame.exe
|
|
' to choose options. Please look at the example HTML-file for further information.
|
|
|
|
' no changes needed below this line
|
|
' ##########################################################################
|
|
Dim wsh, args, infile, fs
|
|
title="LAME Script"
|
|
|
|
' get input files
|
|
Set wsh = WScript.CreateObject("WScript.Shell")
|
|
Set args = WScript.Arguments
|
|
If args.Count = 0 Then
|
|
MsgBox "LAME mp3 encoder/decoder frontend script." & vbCR & _
|
|
"Please use drag & drop to specify input files.", vbInformation, title
|
|
WScript.Quit
|
|
End If
|
|
|
|
' check path
|
|
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
If Not fso.FileExists(path & lame) Then
|
|
MsgBox "Could not find LAME!" & vbCR & "(looked for '" & path & lame & "')", vbCritical, title
|
|
WScript.Quit
|
|
End If
|
|
|
|
' start GUI
|
|
if useGUI Then
|
|
set ie=WScript.CreateObject("InternetExplorer.Application", "ie_")
|
|
ie.navigate(path & "lameGUI.html")
|
|
do
|
|
WScript.Sleep 100
|
|
loop until ie.ReadyState=4 'wait for GUI
|
|
|
|
ie.Width=640
|
|
ie.Height=600
|
|
ie.Toolbar=false
|
|
ie.Statusbar=false
|
|
ie.visible=true
|
|
|
|
'link to GUI
|
|
set document=ie.document
|
|
document.forms.lameform.okbutton.onClick=GetRef("okbutton")
|
|
|
|
'wait for user pressing ok...
|
|
do
|
|
WScript.Sleep 300
|
|
loop until process
|
|
end if
|
|
|
|
'process files
|
|
For i = 0 To args.Count-1
|
|
infile = args(i)
|
|
' check input file
|
|
If fso.FolderExists(infile) Then
|
|
MsgBox "'" & infile & "' is a folder!" & vbCR & _
|
|
title & " only handles proper files.", vbInformation, title
|
|
Else
|
|
If Not fso.FileExists(infile) Then
|
|
MsgBox "Error opening input-file" & vbCR & "'" & infile & "'", vbCritical , title
|
|
Else
|
|
' run lame
|
|
If(LCase(getExtension(infile))="mp3") Then 'decode
|
|
ret = wsh.Run(Chr(34) & path & lame & CHR(34) & " --decode " & _
|
|
Chr(34) & infile & Chr(34) & Chr(32) & Chr(34) & _
|
|
getBasename(infile) & ".wav" & Chr(34), 1, True)
|
|
Else ' encode
|
|
ret = wsh.Run(Chr(34) & path & lame & CHR(34) & Chr(32) & opts & Chr(32) & _
|
|
Chr(34) & infile & Chr(34) & Chr(32) & Chr(34) & _
|
|
getBasename(infile) & ".mp3" & Chr(34), 1, True)
|
|
End If
|
|
' diagnostics
|
|
Select Case ret
|
|
Case (0) 'okeydokey
|
|
Case (-1)
|
|
MsgBox "LAME aborted by user!", vbExclamation, title
|
|
Case (1)
|
|
MsgBox "Error returned by LAME!" & vbCR & "(Check LAME options and input file formats.)" & vbCR & "Used Options: " & opts, vbCritical, title
|
|
Case Else
|
|
MsgBox "Received unknown LAME return-code: " & ret, vbCritical, title
|
|
End Select
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
WScript.Quit
|
|
' *******************************************************************
|
|
' utility functions
|
|
|
|
Function getBasename(filespec)
|
|
Dim fso
|
|
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
Set f = fso.GetFile(filespec)
|
|
|
|
getBasename = f.ParentFolder & "\" & fso.GetBaseName(filespec)
|
|
End Function
|
|
|
|
Function getExtension(filespec)
|
|
Dim fso
|
|
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
Set f = fso.GetFile(filespec)
|
|
|
|
getExtension = fso.GetExtensionName(filespec)
|
|
End Function
|
|
|
|
' *******************************************************************
|
|
' manage link to IE HTML-interface
|
|
|
|
sub okbutton
|
|
'process inputs
|
|
opts=document.all.lameoptions.Value
|
|
ie.Quit
|
|
MsgBox "LAME options:" & vbCR & opts, vbInformation, title
|
|
end sub
|
|
|
|
sub ie_onQuit
|
|
process=True
|
|
end sub
|
|
'eof
|