1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
' when you click the convert now button!
Private Sub ConvertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConvertButton.Click
Dim count, progress As Integer
Dim currentFile As String
Dim InputFilePrefix, TmpFileFullPath, OutFileFullPath, FileOutPath, CmdLineArgs As String
Dim FileOutType As String = ".error" ' will be set according to your settings!
Dim FileSubNames(3) As String
' first, we check if there's any input file to convert
If (ListView1.Items.Count = 0) Then
MessageBox.Show("there's no input file to convert!")
Return
Else
' set Progress 'maximum' step attribute based on input file number
ToolStripProgressBar1.Maximum = ListView1.Items.Count
End If
' so, there's something to convert
ToolStripProgressBar1.Value = 0
' now we need to get all files in ListView1 (if non empty!)
For count = 0 To ListView1.Items.Count - 1
currentFile = ListView1.Items(count).SubItems(0).Text()
' set the bubbleMsg text value
progress = count / (ListView1.Items.Count) * 100
bubbleMsg = "job progression: " + progress.ToString
' prompt for job in progress
ListView1.Items.Item(count).SubItems.Add("...")
Application.DoEvents() ' equals yield() in C
' Get Input file Basename
FileSubNames = currentFile.Split(".")
InputFilePrefix = FileSubNames(0)
' get the output Directory
If (useCustomOutputDirectory = False) Then
FileOutPath = Path(count)
Else
FileOutPath = DialogGeneralSettings.Label_outputDir.Text
End If
' define what outputFiles type we want (.mp3 or .wav) depending on Options/<type> convertion checked subItem
If (MP3ConversionToolStripMenuItem.Checked = True) Then
TmpFileFullPath = FileOutPath + "\" + InputFilePrefix + ".tmp"
OutFileFullPath = FileOutPath + "\" + InputFilePrefix + ".mp3"
' first wav to mp3 conversion
CmdLineArgs = "-h """ + Path(count) + "\" + currentFile + """ """ + TmpFileFullPath + """"
ToolStripStatusLabel1.Text = "converting " + currentFile + " to MP3 fileType"
processExecute(getAppPath & "\" & "lame.exe", CmdLineArgs, "Open", True, showJob)
' then bitrate adjustment
CmdLineArgs = "--mp3input -b" + kbps.ToString + " """ + TmpFileFullPath + """ """ + OutFileFullPath + """"
ToolStripStatusLabel1.Text = "adjusting " + currentFile + " bitrate to " + kbps.ToString + " Kbps"
processExecute(getAppPath & "\" & "lame.exe", CmdLineArgs, "Open", True, showJob)
' cleaning intermediate file
IO.File.Delete(TmpFileFullPath)
ElseIf (WaveConversionToolStripMenuItem.Checked = True) Then
OutFileFullPath = FileOutPath + "\" + InputFilePrefix + ".wav"
'the only one shell command
CmdLineArgs = "--decode """ + Path(count) + "\" + currentFile + """ """ + OutFileFullPath + """"
ToolStripStatusLabel1.Text = "converting " + currentFile + " to WAV fileType"
processExecute(getAppPath & "\" & "lame.exe", CmdLineArgs, "Open", True, showJob)
Else
MessageBox.Show("file output type undefined, please ensure in 'Options' that either 'MP3 conversion' or 'Wav conversion' is checked")
Return
End If
System.Threading.Thread.Sleep(500) ' sleep 500ms for fun!
' show end conversion status
If (IO.File.Exists(OutFileFullPath)) Then
ListView1.Items.Item(count).SubItems(1).Text = "ok!"
Else
ListView1.Items.Item(count).SubItems(1).Text = "Error!"
End If
' prompt job evolution
ToolStripProgressBar1.Increment(1)
Application.DoEvents() ' equals yield() in C
Next
' ---- here job is done! ----
If (EndJobSoundPlay = True) Then
If (EndJobSoundFullPath.Contains("\") = True) Then
My.Computer.Audio.Play(EndJobSoundFullPath)
Else
My.Computer.Audio.Play(getAppPath + "\" + EndJobSoundFullPath)
End If
End If
ToolStripStatusLabel1.Text = "Job done!"
If (NotifyIcon1.Visible = True) Then
NotifyIcon1.BalloonTipText = "Job Done :)"
NotifyIcon1.ShowBalloonTip(3000)
End If
Application.DoEvents()
End Sub |
Partager