RazorBlade Wishlist =================== - use BladeEnc.dll instead of the console application. This would allow For huge improvements: Add files during encoding, perhaps we could even come up with a resume-functionality. Also, if I understand correctly, the LAME engine (http://www.sulaco.org/mp3/) can be compiled using the BladeEnc DLL Interface, so the user could easily switch between engines. - add support for LAME - support the new options of BladeEnc 0.8x - if chosen language is English, then load resources from the EXE-File! - support different settings for each File - have ID3/ID3V2 support - dynamic Tray-Icon that shows progress for file and batch, similar to e.g. ressource monitor (see below) - convert Wave-Files automatically into a format supported by BladeEnc - BladeEnc overwrites existing MP3s without warning; perhaps RazorBlade could warn the user. (Check all batch-files before starting) - have an option to search automatically for BladeEnc.exe if not found by RazorBlade - add an mp3-player; this could be enhanced further into a "preview"- feature. (Encode the first 5/10/15 seconds, Then play this; Or, encode 5/10/15 seconds starting at position 1:00 mins!) - add ability to convert mp3s back to wavs - add ability to analyze converted mp3s (compare with source wav) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - some non - working code For the dynamically created tray.icon: placed In "TFormMain.GUI2ConsoleLine" additional vars: i, x, y: Integer; TrayIconInfo: TIconInfo; IconBmp, ColorBmp, MaskBmp: TBitmap; //-- todo: draw icon on the fly? //-- RxTrayIcon1.Icon.Handle //-- GetIconInfo(RxTrayIcon1.Icon.Handle, TrayIconInfo); GetIconInfo(Application.Icon.Handle, TrayIconInfo); IconBmp := TBitmap.Create; MaskBmp := TBitmap.Create; ColorBmp := TBitmap.Create; Try //-- set Bitmap handle IconBmp.Handle := TrayIconInfo.hbmColor; //-- create bitmap to work on With ColorBmp Do Begin //-- create space Width := 32; Height := 32; With Canvas Do Begin //-- copy Icon; Draw(0, 0, IconBmp); //-- the icon is transparent! Transparent := true; //-- set file progress For x := 0 To 15 Do For y := 0 To Round(31 * Global.FilePercent / 100.0) Do Canvas.Pixels[x, 31 - y] := clBlue; //-- set batch progress For x := 16 To 31 Do For y := 0 To Round(31 * Global.BatchPercent / 100.0) Do Canvas.Pixels[x, 31 - y] := clRed; //Mask(TransparentColor); TrayIconInfo.hbmColor := Handle; MaskBmp.Assign(ColorBmp); MaskBmp.Mask(TransparentColor); TrayIconInfo.hbmMask := MaskBmp.Handle; End; RxTrayIcon1.Icon.Handle := CreateIconIndirect(TrayIconInfo); End; Finally IconBmp.Free; MaskBmp.Free; ColorBmp.Free; End;