On Tue, 11 Nov 2003, Paul Davis wrote: > >GMPI plugins should be available to the user with the minimum of > >intervention. In general, a GMPI plugin should be a self-contained > >filesystem object (exceptions being plugins with large external data > >files, and that a plugin may reasonably require common support libraries > >located elsewhere on the system). > > > >It must be possible to install and uninstall a self-contained GMPI plugin > >using only the platform's native file manager. > i want to say "bravo!" but then a moment of doubt crosses my mind. do > you agree with vincent's claims about the perils of having to load a > DLL in order to get at the metadata? or do you think its OK to do > that? I would strongly prefer not to load libraries, provided we can agree on what metadata should be made available (bearing in mind that different hosts may have some variation in data gathering requirements). We have essentially four options plus one hybrid... 1- folder, which is the most prone to user tampering but equally the easiest for i/o and access via standard system calls. Do people see user tampering as a major potential problem? (Mac OS X has a nice compromise here... it allows folders to be marked as packages, they behave more like files from the dumb-user point of view, but can be accessed by the programmer like a regular file..). Easily allows a package to contain multiple platform binaries. Allows other useful resources to be packaged internally as files... presets, images, data... 2- tar, jar or zip... still somewhat prone to user tampering, but less so; behaves like a regular file to the user, reasonably accessible via standard i/o calls or access libs, but less so than a file. Has same advantages otherwise as a folder. 3- Binary with embedded metadata readable directly from the file system. Doesn't require any code to be executed. highly tamperproof but does not allow xplatform binaries; may present a problem for some build tools or make builds more complex than otherwise. 4- Binary with metadata readable via a specific entrypoint function. Requires execution, but allows metadata to be built on the fly. 5- Combination of (1) or (2) with (4). The XML or text metadata has a special flag saying "This plugin builds its metadata on the fly, please call the entrypoint". Has the advantages of 1/2 and 4, but adds extra complexity. --------------------- My personal preference is 1... I don't think user tampering is likely to be a major problem, and I don't think plugs need to build metadata on the fly... wrappers can come with a configuration applet which also helps weed out "GMPI within FormatX within GMPI" recursive-wrapping issues. (5) is OK but a bit overcomplex imho; (3) is problematic; (4) to my mind offers little improvement over existing APIs; (2) would be a good compromise if ppl feel that user tampering IS a big problem. Regards, Angus. ---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission. Archive: //www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe