<?xml version="1.0" encoding="utf-8"?>

<soundcard driver="OSS"
           version="*:*"
           name="*"
           type="*"
           generation="1"
           id="default"
>
<!-- Example from above:
     Driver     : ALSA, Versions 1.2.5 and newer.
     name       : Card name, e.g. with the Hercules 7.1 card the name is "Sound Fusion CS46xx"
     type       : Chip type. ALSA says: "Cirrus Logic CS4294 rev 5,Cirrus Logic CS4294 rev 5,Cirrus Logic CS4294 rev 5"
     generation : The "version" of this XML file. If you create an updated version of this XML file,
                  "generation" must be incremented.
-->

<!-- The products below are for letting the user select the correct product name.
  It could be implemented like this:
   If a new GUIProfile gets selected (either implictly on the first run or a Profile update, or
   explicitly by the user), prompt the user for the card name.
   Hint: The product stuff is only used in the GUI. It is NOT refeferenced otherwise in the code,
            and especially nothing of it is used as primary key.
 -->
  <product vendor="Any Vendor" name="Generic OSS Soundcard" />

<!--
    Control definitions:
    ********************

- 'id' is the controls' primary key as defined by the KMix driver backend.
       This can either be a name or an id, complemeted by an optional index.
       (this is "control_name:index" or "control_id:index" or "control_id")
- 'name' defines what name is shown to the user. (DEFAULT: Name as returned by the driver backend).
         If defined at all, you should use english text, to allow i18n(). i18n() will be introduced
         in later versions of KMix, and the translations should then
	 be "outsourced", as every driver tends to have a limited (and well defined) set of
	 control names. This is also true for ALSA, but there we must ALWAYS be prepared for
	 new control names.
- 'controls' is an enumeration of the (sub)controls of this control, e.g "playvol:1" or
             "recvol:1-2,4-6" or "2:*,playswitch,recswitch" or ...
	     DEFAULT: "*,switches"     (* = recvol:* playvol:*   switches=playswitch recswitch genericswitch
- 'tab' is a definable tab name (DEFAULT: "Main")
- 'show' defines, on which GUI types the control will be shown.
             simple   = Show on the simple GUI (typically only 1 Tab: Master, PCM, CDROM, Microphone)
             extended = Show on the mildly more complex GUI (all "simple" controls plus Recording & Surround stuff).
             full     = Show (only) on the full GUI (all controls)
             default is "full"
- Future directions: Extended "merged" syntax of "tab" and "show", like this:
     show="guitype:tabname" or show="guitype1:tabname1,guitype2:tabname2,..."
     For example:
     show="*:Play"
     or
     show="simple:Play,extended:Various,full:Play"
-->


<!-- In OSS the controls are simple numbers, starting with 0.
    Volume, Bass, Treble,
    Synth, Pcm, Speaker,
    Line, Microphone, CD,
    Mix, Pcm2, RecMon,
    IGain, OGain, Line1,
    Line2, Line3, Digital1,
    Digital2, Digital3, PhoneIn,
    PhoneOut, Video, Radio,
    Monitor, 3D-depth, 3D-center,
    unknown, unknown, unknown,
    unknown , unused };
-->
<control id="^0$" show="simple" />  <!-- Volume -->
<control id="^4$" show="simple" />  <!-- PCM -->
<control id="^8$" show="simple"/>   <!-- CD -->

<control id="^.*$" tab="Base" show="extended" mandatory="true" />


</soundcard>


