I've waffled previously about Audiofile::Info and the problems I was having
coming up with a good way to allow people to use whatever MP3/Ogg library
that they like. See list and use.perl journal passim for a description of
the problem.

I had a discussion with Mark last night where a lot of things became
clearer to me. Having filtered those thoughts through a fine meal and a
night's kip I now think I'm able to solicite further opinions.

Here's what we think we'll do.

Currently A::I bundles all (well, both) of its subclasses with it. We're
going to change that so that A::I becomes a separate (tho' useless on its
own) distribution and there are separate distributions for each of the
driver modules (a bit like the DBI/DBD distinction). If you install
Some::MP3::Module and you want to use it with A::I then you'll also need to
install A::I::Plugin::Some::MP3::Module.

Installing one of these plugin modules will also maintain a small
"database" of installed plugins and their capabilities (where a capability
is osmething like "reads oggs" or "writes ID3 tags"). This is a bit like
how XML::SAX works.

When using A::I you have a number of options.

1/ Leave A::I to figure out the best plugin to use (/me waves hands in the
air). Or maybe it just uses a default plugin. Or something.

2/ Ask for a specific plugin.

3/ Ask for certain capabilities. A::I will then find the plugin that best
meets your request.

I'm keen that in the simplest case (number 1 above) it Just Works as that's
how I suspect that most people will use it most of the time.

So the problem becomes one of maintaining and querying the capability
database. This is (probably) largely a SMOP but there are no doubt many
hairy corner cases that complicate matters. Last night we thought of the
problems of PAR installation (I know nothing about PAR but apparently it
does scary things with @INC) and also of people wanting to keep personal
configuration files (or, indeed, personal module libraries with other,
better, audiofile handlers).

Anyway, that's approximately where we are (Mark, have I forgotten
anything?) Any ideas or suggestions that anyone had would be appreciated.

Cheers,

Dave...




Reply via email to