So, here it is.  You've always wanted to do the FireWire shuffle, and now's your chance.  If you don't already know about FireWire, then the first thing you should do is go to:

http://www.firewire.org

There you'll find all the specs and whatnot that are relevant to this particular effort.  In general, FireWire (IEEE 1394) is a high speed bus protocol and implementation.  100 Mbit minimum and rising.  It is intended for the connection of devices which are typically concerned with Audio Video.  That is, things like TV tuners, CD players, VCRs, cameras, and the like.  FireWire is composed of many layers of protocols.  They describe everything from the type of wire signalling, all the way up to the command sets that the devices should recognize.

The job of the OS is to write an appropriate driver to support a FireWire interface device and present it to the higher level programming layers.  We have done this for the BeOS,  We support the Adaptec FireWire chipset.  This is probably the most common and popular FireWire chipset available, and it will become available on quite a few boards in the near future.

Now that we've eliminated your need to write the actual device driver, we want to make is as easy as possible for you to be able to talk to FireWire devices and make them do their magic.  To that end, this package contains the following:

fw_avc.h			- A lot of #defines for FireWire commands
fw_avcclass.h		- A set of virtual base classes for you to sub-class
fw_vcrskel			- A skeleton implementation of a VCR class
fw_vcr			- A FireWire VCR implementation

Now, you may ask yourself, whey would you need a pure virtual base class and a actual implementation?  Isn't that just so much waste?  No not really.  Although FireWire is a good and up and coming protocol, it is not the only thing on the planet.  Since we want the world to look as homogenous as possible, we defined a VCR protocol.  Now you are free to implement any type of VCR controller you like using the same protocol.  That is, if you want to control a VCR via some serial port connection, you are free to do so.  To a programmer, it would look the same.  Simply implement what your device is actually capable of, and leave the rest.

We will do similar with the camera class.  You will be able to set frame rates, contrast, brightness and the like, whether the input is coming from a FireWire conferencing camera, or a Hauppauge video capture card.  They will all look the same.

What we want from you at this point is input.  Does the approach seem sound.  Are the classes logical and worthwhile.  Is there more you would like to see in them, or perhaps a different approach.  There is no real solid compelling application to demonstrate the usefulness of these classes at this time, but they are available for your input.  We will make available sample applications that utilize the classes within  a few weeks.

In the mean time, if you are very interested in FireWire to the point of wanting to play with the Adaptec board and some devices, send mail to devsupport@be.com and we can start to hook you up.



