Installing a Wave Driver

Playback and recording of audio required by voice modems is done by the Windows Multimedia System (MMSystem), which uses digitized wave files (.WAV files). There are the two basic types of voice modem wave devices, each requiring a different interface with Unimodem/V:

Serial port modems send and receive wave input/output data through the Windows 95 computer's communications port. SERWVDRV.DRV is used by Unimodem/V as the serial wave device driver. SERWVDRV.DRV supports the following formats:

Modems with a separate audio hardware interface require synchronization between the modem and audio via AT commands (to set the mode, etc.). For these modems, the wave driver wrapper performs all synchronization. It is called by MMSystem, and calls Unimodem to send any needed AT commands to the modem. After the AT commands are completed, the wave driver wrapper calls back into MMSystem, and MMSystem then calls the modem wave device. The modem wave device interfaces only to the audio hardware interface. Your modem wave driver must not directly access to the COMM port (let the wave wrapper send all AT commands to the modem).

You must decide which wave device driver to use, the serial wave device driver or the wave wrapper.

For either one to be installed, the following item must be added to an AddReg section in your modem INF file:


   HKR,, Enumerator, ,serwave.vxd

This item must be in every voice modem INF file, regardless of whether your voice modem uses the serial wave driver or wave wrapper to play audio. Do not change the value of this entry, it is always SERWAVE.VXD. SERWAVE.VXD has the ability to connect either type of wave device to your modem when your modem is detected.

You must also provide a wave driver INF in addition to your modem INF file. Sample INF files are in the MDK for both types of wave drivers:

When either the serial driver or wave wrapper are installed, the game-compatible device is installed automatically to ensure compatibility with Windows games. Three multimedia devices are usually installed:

Changing Items in SMPSERWV.INF

A sample serial wave driver INF file is in the MDK, SMPSERWV.INF. You can include this file on your modem installation diskette with few, if any, changes. Each of the sections that contain items you may want to change are discussed below.

Use the value of the XformID key to specify the format your serial wave device uses. The value used in SMPSERWV.INF, 0x00000001, specifies the 4-bit Rockwell ADPCM 7200 Hz format. Valid values for the XformID key are listed in the following table:

XformID Value

Meaning

0x00000001

4-bit Rockwell ADPCM 7200 Hz format

0x00000002

4-bit IMA ADPCM 4800 Hz format

0x00000003

4-bit IMA ADPCM 7200 Hz format

0x00000004

4-bit IMA ADPCM 8000 Hz format


Use the value of the WaveDevices key to indicate whether or not your voice modem has the ability to playback and record to a handset device. The value used in SMPSERWV.INF, 0x00000001, indicates that the voice modem does not have this ability, or does not have a handset device. Valid values for the WaveDevices key are listed in the following table:

WaveDevices Value

Meaning

0x00000001

Voice modem plays back and records to line only.

0x00000002

Voice modem plays back and records to line and handset device.


There other items in the SMPSERWV.INF file that are of interest only because they indicate SMPSERWV.INF is a wave device INF file and not a modem device INF file.

Changing Items in SMPWRAP.INF

A sample serial wave driver INF file is in the MDK, SMPWRAP.INF. You can include this file on your modem installation diskette with few, if any, changes. Each of the sections that contain items you may want to change are discussed below.

Use the values of the LowerMid, LowerWaveInPid, and LowerWaveOutPid keys to specify the audio wave driver the wave wrapper is using. The LowerMid value is the wave driver manufacturer's ID, the LowerWaveInPid value is the wave input product ID, and the LowerWaveOutPid is the wave output product ID.

You may also want to change one of more of the following entries in the [MSWRAPPER.AddReg] section:


HKR,Config,WaveOutMixerDest,    1, 00, 00, 00, 00
HKR,Config,WaveOutMixerSource,  1, 00, 00, 00, 00

HKR,Config,WaveInMixerDest,     1, 01, 00, 00, 00
HKR,Config,WaveInMixerSource,   1, 00, 00, 00, 00

The wave wrapper has a mixer device. These entries connect the wave wrapper mixer device to the wave driver mixer. The wave wrapper mixer will control the wave driver mixer while the wave wrapper is loaded. When the wave wrapper is not loaded, the wave driver mixer settings are set back to their original settings.

Use the value in the WaveOutMixerDest key to indicate the multimedia line that wave out goes to; normally, this is the speakers. Use the value in the WaveOutMixerSource key to indicate the multimedia line used as the source relative to WaveOutMixerDest; normally this is the ADC.

Use the value in the WaveInMixerDest key to indicate the multimedia line corresponding to wave in. Use the value in the WaveInMixerSource key to indicate the multimedia line used as the source relative to WaveInMixerDest; normally this is line in or wave in.

There other items in the SMPWRAP.INF file that are of interest only because they indicate SMPWRAP.INF is a wave device INF file and not a modem device INF file.