We have a C#/.NET based VoIP application. The application requires proper selection and setting of playback and capture (speaker and mic) devices by the user, to talk on a VoIP call. Modern windows (XP and Vista) sound devices and drivers have a number of attributes which needs to be set properly before voice start flowing through to the user.
We require a wizard which can automate selection and setting of sound parameters from our application.
A working example is Skype. It can detect where speaker/mic are plugged in the system and then set it up for Skype calls.
The wizard module should do the following:
1) Detect all playback and capture devices present in the system
2) Detect all sound inlets/outlets (in/out jacks) present in the system.
3) Enable/disable features on the device according to a given profile.
4) Sense when a actual device is plugged into a jack and issue a notification.
We need support for windows XP and Vista. All popular sound boards: (SB, Via, Realtech, Nvidia, Ali). Also USB devices.
## Deliverables
1) A software module written in any convenient language: C#, C++, C for windows XP and Vista.
2) A well defined API should be presented by the module for integration with host application.
3) Module functions:
1) Detect sound devices on system and provide a list.
2) Detect features provided by each device and provide a list.
3) Detect creation/deletion enable/disable of new devices (e.g. USB devices) and provide notificatiosn.
4) Detect all in/out jacks in the system and provide a list.
5) Detect insertion of hardware in jacks and provide notification.
6) Provide functions to set up Windows audio settings to allow a given device to work.
7) Provide functions to enable/disable/tune device features for a given profile. This may also include propritory features provided by sound board vendors.
Use Skype as a working example to provide the user experience of sound device selection.