in_vgm-libvgm icon indicating copy to clipboard operation
in_vgm-libvgm copied to clipboard

in_vgm does not "claim" VGM files

Open ValleyBell opened this issue 2 years ago • 1 comments

in_vgm should implement the IsOurFile function properly and return 1 for supported files.

I think it would be a good idea to only return 1 for the file types enabled via .ini - i.e. claim S98/DRO only when explicitly enabled, just like with the file type dialog. (It will still be able to play them regardless of the extension, but this should control plugin preferences.)

ValleyBell avatar Aug 02 '22 19:08 ValleyBell

Just to clarify a bit (since I think this is related to this issue), as far as I see Winamp's IsOurFile was mainly meant to allow plugins to accept custom protocols like something://blah, just by checking the filename (rather than relying on the exception or contents) and default extension<>plugin matching was the standard, since back then there weren't that many audio extensions, so it's common to just return 0.

But in effect IsOurFile can be used to do more complex detection and "claim" the file (returning 1 immediately takes the file). Good in case of 2 plugins clashing, but that's uncommon so plugins rarely do it (a few do though). Checking the file's contents would be slightly slower (needs to open+read) too so for vgmstream I added some cache since after IsOurFile winamp will (always?) call GetInfo right after.

I'll update in_vgmstream.c's IsOurFile later with some extra comments about Winamp's loading system for reference too.

bnnm avatar Aug 03 '22 20:08 bnnm