home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 19 / FreelogHS19.iso / MP3 / Audiograbber / lame-3.95.1 / misc / Lame.vbs < prev    next >
Text File  |  2001-08-27  |  5KB  |  159 lines

  1. ' lame.vbs WindowsScript wrapper v0.5, 06/15/2001
  2. ' $id$
  3. '
  4. ' *Purpose*
  5. ' Use this WindowsScript to encode WAVs using drag&drop:
  6. ' 0.  make sure you have windows script host v5.1 on your system
  7. '     (enter 'cscript' in a DOS-Box and compare version number)
  8. ' 1.  adjust the path settings below to fit your needs
  9. ' 2a. put this file somewhere on the desktop
  10. ' 3a. drag one or more wav-files on the icon and watch them being lamed.
  11. '
  12. ' 2b. start->execute, enter "sendto", drag the script or a link to it in
  13. '     sendto window (adjust names and icon as you like)
  14. ' 3b. select wave-file(s) and send it via the send-to menu to LAME!
  15. '
  16. ' You may wish to create copies of this file with different options set.
  17. '
  18. ' If you would like a GUI: try to enable the HTML UI (see below)
  19. '
  20. ' Ralf Kempkens, ralf.kempkens@epost.de
  21. '
  22. '
  23. ' *History*
  24. ' V0.5 * lame.vbs will automatically decode if the file has a .mp3 extension
  25. '      * now explicitly refuses to accept folders
  26. ' V0.4 * creates single .mp3 extensions, now ID3 options in HTML interface
  27. ' V0.3 * fixed bug that prevented lame.exe to be located in a path that 
  28. '        contained a space
  29. '      * experimental HTML UI support (disabled by default)
  30. ' V0.2 added multiple file support
  31. ' V0.1 initial release
  32.  
  33. ' *** change path to your needs ***
  34.     path = "D:\Audio\Lame\Lame386\"   '!!! must end with a backslash !!!
  35.     lame = "lame.exe"
  36.  
  37. ' *** change default options to your needs ***
  38.     opts = "--preset hifi"
  39.  
  40. ' *** HTML GUI (experimental) ***
  41.     useGUI = False
  42. ' it set to True, opens file lameGUI.html residing in the same path as lame.exe
  43. ' to choose options. Please look at the example HTML-file for further information.
  44.  
  45. ' no changes needed below this line
  46. ' ##########################################################################
  47. Dim wsh, args, infile, fs
  48. title="LAME Script"
  49.  
  50. ' get input files
  51. Set wsh = WScript.CreateObject("WScript.Shell")
  52. Set args = WScript.Arguments
  53. If args.Count = 0 Then
  54.   MsgBox "LAME mp3 encoder/decoder frontend script." & vbCR & _ 
  55.     "Please use drag & drop to specify input files.", vbInformation, title
  56.   WScript.Quit
  57. End If
  58.  
  59. ' check path
  60. Set fso = CreateObject("Scripting.FileSystemObject")
  61. If Not fso.FileExists(path & lame) Then
  62.   MsgBox "Could not find LAME!" & vbCR & "(looked for '" & path & lame & "')", vbCritical, title
  63.   WScript.Quit
  64. End If
  65.  
  66. ' start GUI
  67. if useGUI Then
  68.   set ie=WScript.CreateObject("InternetExplorer.Application", "ie_")
  69.   ie.navigate(path & "lameGUI.html")
  70.   do 
  71.     WScript.Sleep 100 
  72.   loop until ie.ReadyState=4 'wait for GUI
  73.  
  74.   ie.Width=640
  75.   ie.Height=600
  76.   ie.Toolbar=false
  77.   ie.Statusbar=false
  78.   ie.visible=true
  79.  
  80.   'link to GUI
  81.   set document=ie.document
  82.   document.forms.lameform.okbutton.onClick=GetRef("okbutton")
  83.  
  84.   'wait for user pressing ok...
  85.   do 
  86.     WScript.Sleep 300 
  87.   loop until process
  88. end if
  89.  
  90. 'process files
  91. For i = 0 To args.Count-1
  92.   infile = args(i)
  93.   ' check input file
  94.   If fso.FolderExists(infile) Then
  95.     MsgBox "'" & infile & "' is a folder!" & vbCR & _
  96.     title & " only handles proper files.", vbInformation, title
  97.   Else
  98.    If Not fso.FileExists(infile) Then
  99.       MsgBox "Error opening input-file" & vbCR & "'" & infile & "'", vbCritical , title
  100.     Else
  101.     ' run lame
  102.     If(LCase(getExtension(infile))="mp3") Then 'decode
  103.       ret = wsh.Run(Chr(34) & path & lame & CHR(34) & " --decode " & _
  104.           Chr(34) & infile & Chr(34) & Chr(32) & Chr(34) & _
  105.           getBasename(infile) & ".wav" & Chr(34), 1, True)
  106.     Else ' encode
  107.       ret = wsh.Run(Chr(34) & path & lame & CHR(34) & Chr(32) & opts & Chr(32) & _
  108.           Chr(34) & infile & Chr(34) & Chr(32) & Chr(34) & _
  109.           getBasename(infile) & ".mp3" & Chr(34), 1, True)
  110.     End If
  111.     ' diagnostics
  112.     Select Case ret
  113.     Case (0) 'okeydokey
  114.     Case (-1)
  115.       MsgBox "LAME aborted by user!", vbExclamation, title
  116.     Case (1)
  117.       MsgBox "Error returned by LAME!" & vbCR & "(Check LAME options and input file formats.)" & vbCR & "Used Options: " & opts, vbCritical, title
  118.     Case Else
  119.       MsgBox "Received unknown LAME return-code: " & ret, vbCritical, title
  120.     End Select
  121.    End If
  122.   End If
  123. Next
  124.  
  125. WScript.Quit
  126. ' *******************************************************************
  127. ' utility functions
  128.  
  129. Function getBasename(filespec)
  130.   Dim fso
  131.   Set fso = CreateObject("Scripting.FileSystemObject")
  132.   Set f = fso.GetFile(filespec)
  133.   
  134.   getBasename = f.ParentFolder & "\" & fso.GetBaseName(filespec)
  135. End Function
  136.  
  137. Function getExtension(filespec)
  138.   Dim fso
  139.   Set fso = CreateObject("Scripting.FileSystemObject")
  140.   Set f = fso.GetFile(filespec)
  141.   
  142.   getExtension = fso.GetExtensionName(filespec) 
  143. End Function
  144.  
  145. ' *******************************************************************
  146. ' manage link to IE HTML-interface
  147.  
  148. sub okbutton
  149.   'process inputs
  150.   opts=document.all.lameoptions.Value
  151.   ie.Quit
  152.   MsgBox "LAME options:" & vbCR & opts, vbInformation, title
  153. end sub
  154.  
  155. sub ie_onQuit
  156.   process=True
  157. end sub
  158. 'eof
  159.