API information for OSSSurround
===============================

Introduction
============

This document is meant for people who are writing input plugins, and
wishes to add in surround sound support via OSSSurround.

End users can safely ignore this document. For the most part, OSSSurround
behaves identically to the OSS output plugin. When used in stereo or
mono mode, there is no differences at all.

Multi-channel support
=====================

open_audio
==========

When calling open_audio (refer to XMMS docs for details on
open_audio), select the number of channels you need. open_audio will
return the actual number of channels that it has managed
to open.

The input plugin is expected to handle the situation where the number of
available channel is less than the number of requested channel. Currently,
OSSSurround cannot downmix a multi-channel stream and will most
likely never be able to do so.

For compatibility reasons, OSSSurround will return 1 when either a mono or
stereo channel is open. A request for a stereo channel will always
be successful, so if you have requested for 2 or more channels and
open_audio returns 1, you should assume that a stereo channel is open.

write_audio
===========

When writing to the output buffer, the data should be arranged
in the following order:

Front Left
Front Right
Rear Left
Rear Right
Center
Subwoofer

