[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sound header

 > Somehow I don't think that an API specification and design is covered by
 > 'one headerfile'. I think more designing with paper and pen is needed.

I have to disagree, at least in part. While I agree that it's necessary to
think through an implementation carefully, we have to remember that PPlay
has been rowing in circles for almost 2 years because everyone is looking
for an optimal solution instead of getting something working.

Here is the process that this part of the project should follow:

  1. Discussion about features, implementations, dependencies. DONE.
  2. Write a public interface (API) that promises the basic features.
  3. Write an implemention (code) for common hardware that meets the API.
  4. Continue to enhance library:
     a. Add more features (different formats, positional sound, etc).
     b. Support more platforms (different drivers, different hardware).
     c. Extend or revise the API as new features are added.
     d. Retool the code as necessary to support new features, since an
        API should abstract, or hide, the implementation details.
  5. Optimize the library after you get things working.

If we spend 2 months hashing out the details, then most everyone is going
to get busy with other tasks. If we spend 2 months bootstrapping some code
under a simple API, then that code can be passed on and improved later. It
is *much* easier to extend working code than to start from scratch, even if
you end up rewriting large portions. Once the framework is in place, anyone
can adopt a small task (supporting new format) and then roll it in later.

Since PPlay started, I've been working on my own set of cross-platform libs,
and I'm just a bit away from getting them done. Look at SDL to see a driven
project -- while I don't agree with some of his design decisions, I have to
admit he's got a great library. The fact that you are still debating the
*process* of coding and documentation speaks volumes about this project.

Just code something dammit!


/* Matt Slot, Bitwise Operator * One box, two box, yellow box, blue box. *
 *  <fprefect@ambrosiasw.com>  * <http://www.ambrosiasw.com/~fprefect/>  */