h6. [[SoundDMA]] h6(. » [[SoundDMA SWI Calls|SWI Calls]] h6((. » Sound_EnumerateControllers h2. Sound_EnumerateControllers h5. (SWI &40149) |_<^{width:4em}. Entry | | |<^. R0 |<^. Pointer to space/control terminated controller ID string to start from, or 0 or an empty string to start enumeration | |<^. R1 |<^. Pointer to buffer for result (can be R0), or 0 to check required length | |<^. R2 |<^. Length of buffer | |_<^{width:4em}. Exit | | |<^. R0 |<^. 0, or pointer to error block | |<^. R1 |<^. Buffer updated with null-terminated ID string of next controller, or empty string if no more controllers | |<^. R2 |<^. Length of data (including null terminator) | h4. Use This call can be used to enumerate the audio controller devices that are available for use by the sound system. h4. Notes Many versions of SoundDMA do not return errors when unknown SWIs are called. Therefore, to detect if this SWI is supported, check if R0 has been set to 0 on exit (Valid reason codes start at 1), or use [[Sound_ReadSysInfo 1]]. If the supplied buffer is not large enough, or the pointer was 0, a buffer overflow error will be generated and no data will be copied to the buffer. h4. See also * [[Sound SWI Calls]] * [[Sound_ReadSysInfo]] * [[Sound_SelectDefaultController]] * [[Sound_ControllerInfo]]