esline='%+%-%*%.%%%?%^%$%(%)%[%]' escape=(x)-> x\gsub '(['..esline..'])','%%%1' Macro area:'Shell' key:'F2' flags:'EmptyCommandLine EnableOutput' description:'2WAV: FLAC<=>WAV; APE,TAK,WV=>WAV' condition:-> APanel.Prefix=='' action:-> panel.GetUserScreen! s1='~music~' if not APanel.Selected Panel.Select 0,1,1,0 while APanel.SelCount>0 Panel.SetPosIdx 0,1,1 f,r,s0=false,-1,mf.string Panel.Item 0,0,0 s4,s2,s3='','.wav',s0\match '(%.[a-zA-Z]+)%d*$' s5=s3\lower! if s3 s4=s1..s3 if s5=='.ape' win.MoveFile s0,s4,'r' f,r=true,win.system 'mac.exe "'..s4..'" "'..s1..s2..'" -d' if r==0 win.DeleteFile s4 elseif s5=='.flac' win.MoveFile s0,s4,'r' f,r=true,win.system 'flac.exe -d --delete-input-file "'..s4..'"' elseif s5=='.tak' win.MoveFile s0,s4,'r' f,r=true,win.system 'takc.exe -d -md5 "'..s4..'"' if r==0 win.DeleteFile s4 elseif s5=='.wv' win.MoveFile s0,s4,'r' f,r=true,win.system 'wvunpack.exe -m -d -t "'..s4..'"' elseif s5=='.wav' win.MoveFile s0,s4,'r' f,r=true,win.system 'flac.exe -8 --delete-input-file "'..s4..'"' s2='.flac' if r>0 io.write '\n*** Convert to Flac fail, try convert to WavPack...\n' r=win.system 'wavpack.exe -m -d -t -h "'..s4..'"' s2='.wv' if f if r==0 s4=s0\gsub escape(s3),s2 i,r=0,win.MoveFile s1..s2,s4 if r==nil far.Message s4..'\n\nthis file already exists\n\nto file name has been added index','[2WAV] Warning!' while r==nil i+=1 r=win.MoveFile s1..s2,s4..i io.write '*** '..win.Utf8ToOem(s4)..' - converted\n' else if r>0 win.MoveFile s4,s0 io.write '!!! '..win.Utf8ToOem(s0)..' - is not converted\n' far.Message s0..'\n\ncodec return: '..r..'\n\nfile is not converted','[2WAV] Warning!' Panel.Select 0,0,2,s0 panel.SetUserScreen! |