~x3lectric/xbmc/svn-trunk

« back to all changes in this revision

Viewing changes to lib/liblame/misc/Lame.vbs

  • Committer: wiso
  • Date: 2010-05-07 16:57:13 UTC
  • Revision ID: svn-v4:568bbfeb-2a22-0410-94d2-cc84cf5bfa90:trunk:29897
copy lame-3.98.4 to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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