Code: Select all
esline="%+%-%*%.%%%?%^%$%(%)%[%]"
escape=(x)->
string.gsub x,"(["..esline.."])","%%%1"
Macro
area:"Shell"
key:"F2"
flags:"EmptyCommandLine EnableOutput"
description:"2WAV: FLAC<=>WAV; APE,TAK,WV=>WAV"
action:->
s1="~music~"
if not APanel.Selected
Panel.Select 0,1,1,0
while APanel.SelCount>0
Panel.SetPosIdx 0,1,1
r,s0=-1,mf.string Panel.Item 0,0,0
s4,s2,s3="",".wav",string.match s0,"(%.[a-zA-Z]+)%d*$"
if s3
s4=s1..s3
if s3==".ape"
win.MoveFile s0,s4,'r'
r=os.execute "mac.exe \""..s4.."\" \""..s1..s2.."\" -d"
if r==0
win.DeleteFile s4
elseif s3==".flac"
win.MoveFile s0,s4,'r'
r=os.execute "flac.exe -d --delete-input-file \""..s4.."\""
elseif s3==".tak"
win.MoveFile s0,s4,'r'
r=os.execute "takc.exe -d -md5 \""..s4.."\""
if r==0
win.DeleteFile s4
elseif s3==".wv"
win.MoveFile s0,s4,'r'
r=os.execute "wvunpack.exe -d -y \""..s4.."\""
elseif s3==".wav"
win.MoveFile s0,s4,'r'
r=os.execute "flac.exe -8 --delete-input-file \""..s4.."\""
s2=".flac"
if r==0
s4=string.gsub s0,escape(s3),s2
i,r=0,win.MoveFile s1..s2,s4
if r==nil
msgbox "[2WAV] Warning!",s4.."\n\nthis file already exists\n\nto file name has been added index"
while r==nil
i=i+1
r=win.MoveFile s1..s2,s4..i
else
if r>0
win.MoveFile s4,s0
msgbox "[2WAV] Warning!",s0.."\n\ncodec return: "..r.."\n\nfile is not converted"
Panel.Select 0,0,2,s0