//==========================================================================;
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR
// A PARTICULAR PURPOSE.
//
// Copyright 1993 - 1998 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
//
// midspids.c
//
//
// Description:
//
// !!! WARNING DANGER WARNING DANGER WARNING DANGER WARNING DANGER !!!
//
// This code assumes that the receiving buffers are large enough
// to contain the largest Mid and Pid--so if some of the strings get
// obnoxiously long, make sure you update the following defines in
// MMCAPS.H:
//
// MMCAPS_MAX_STRING_MID_CHARS
// MMCAPS_MAX_STRING_PID_CHARS
//
// Also, this code is horribly disgusting. Its purpose is to convert
// Manufacturer specific Product Id's to human readable text. And
// since no standard was defined on how to allocate these Id's,
// all kinds of inconsistent schemes emerged.
//
// Therefore, I chose the brute force approach. You are more than
// welcome to clean this up by finding patterns, etc for each
// manufacturer--I have better things to do.
//
// !!! WARNING DANGER WARNING DANGER WARNING DANGER WARNING DANGER !!!
//
// History:
// 5/13/93
//
//==========================================================================;
#include <windows.h>
#include <windowsx.h>
#include <mmsystem.h>
#include <commdlg.h>
#include <stdarg.h>
#include "appport.h"
#include "mmcaps.h"
#include "debug.h"
//==========================================================================;
//
// Manufacturer and Product Id Conversion Hacks
//
//
//==========================================================================;
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_MICROSOFT
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_MICROSOFT
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Microsoft Corporation");
static PTSTR aszProductId[] =
{
NULL, // 0
TEXT("MIDI Mapper"), // 1 MM_MIDI_MAPPER
TEXT("Wave Mapper"), // 2 MM_WAVE_MAPPER
TEXT("Sound Blaster MIDI output port"), // 3 MM_SNDBLST_MIDIOUT
TEXT("Sound Blaster MIDI input port"), // 4 MM_SNDBLST_MIDIIN
TEXT("Sound Blaster internal synthesizer"), // 5 MM_SNDBLST_SYNTH
TEXT("Sound Blaster waveform output"), // 6 MM_SNDBLST_WAVEOUT
TEXT("Sound Blaster waveform input"), // 7 MM_SNDBLST_WAVEIN
NULL, // 8
TEXT("Ad Lib-compatible synthesizer"), // 9 MM_ADLIB
TEXT("MPU401-compatible MIDI output port"), // 10 MM_MPU401_MIDIOUT
TEXT("MPU401-compatible MIDI input port"), // 11 MM_MPU401_MIDIIN
TEXT("Joystick adapter"), // 12 MM_PC_JOYSTICK
TEXT("PC Speaker waveform output"), // 13 MM_PCSPEAKER_WAVEOUT
TEXT("MS Audio Board waveform input"), // 14 MM_MSFT_WSS_WAVEIN
TEXT("MS Audio Board waveform output"), // 15 MM_MSFT_WSS_WAVEOUT
TEXT("MS Audio Board Stereo FM synthesizer"), // 16 MM_MSFT_WSS_FMSYNTH_STEREO
TEXT("MS Audio Board Mixer Driver"), // 17 MM_MSFT_WSS_MIXER
TEXT("MS OEM Audio Board waveform input"), // 18 MM_MSFT_WSS_OEM_WAVEIN
TEXT("MS OEM Audio Board waveform Output"), // 19 MM_MSFT_WSS_OEM_WAVEOUT
TEXT("MS OEM Audio Board Stereo FM synthesizer"),// 20 MM_MSFT_WSS_OEM_FMSYNTH_STEREO
TEXT("MS Audio Board Auxiliary Port"), // 21 MM_MSFT_WSS_AUX
TEXT("MS OEM Audio Auxiliary Port"), // 22 MM_MSFT_WSS_OEM_AUX
TEXT("MS vanilla driver waveform input"), // 23 MM_MSFT_GENERIC_WAVEIN
TEXT("MS vanilla driver waveform output"), // 24 MM_MSFT_GENERIC_WAVEOUT
TEXT("MS vanilla driver MIDI input"), // 25 MM_MSFT_GENERIC_MIDIIN
TEXT("MS vanilla driver external MIDI output"), // 26 MM_MSFT_GENERIC_MIDIOUT
TEXT("MS vanilla driver MIDI synthesizer"), // 27 MM_MSFT_GENERIC_MIDISYNTH
TEXT("MS vanilla driver aux (line in)"), // 28 MM_MSFT_GENERIC_AUX_LINE
TEXT("MS vanilla driver aux (mic)"), // 29 MM_MSFT_GENERIC_AUX_MIC
TEXT("MS vanilla driver aux (CD)"), // 30 MM_MSFT_GENERIC_AUX_CD
TEXT("MS OEM Audio Board Mixer Driver"), // 31 MM_MSFT_WSS_OEM_MIXER
};
#define PRODUCTID_MICROSOFT_LAST MM_MSFT_WSS_OEM_MIXER
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
if ((uPid <= PRODUCTID_MICROSOFT_LAST) && (psz = aszProductId[uPid]))
{
lstrcat(pszPid, psz);
return (TRUE);
}
pszPid[0] = '\0';
return (FALSE);
} // MMCapsMidPid_MM_MICROSOFT()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_CREATIVE
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_CREATIVE
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Creative Labs Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_CREATIVE_SB15_WAVEIN:
psz = TEXT("SB (r) 1.5 waveform input");
break;
case MM_CREATIVE_SB20_WAVEIN:
psz = TEXT("SB (r) 2.0 waveform input");
break;
case MM_CREATIVE_SBPRO_WAVEIN:
psz = TEXT("SB Pro (r) waveform input");
break;
case MM_CREATIVE_SBP16_WAVEIN:
psz = TEXT("SBP16 (r) waveform input");
break;
case MM_CREATIVE_SB15_WAVEOUT:
psz = TEXT("SB (r) 1.5 waveform output");
break;
case MM_CREATIVE_SB20_WAVEOUT:
psz = TEXT("SB (r) 2.0 waveform output");
break;
case MM_CREATIVE_SBPRO_WAVEOUT:
psz = TEXT("SB Pro (r) waveform output");
break;
case MM_CREATIVE_SBP16_WAVEOUT:
psz = TEXT("SBP16 (r) waveform output");
break;
case MM_CREATIVE_MIDIOUT:
psz = TEXT("SB (r) MIDI output port");
break;
case MM_CREATIVE_MIDIIN:
psz = TEXT("SB (r) MIDI input port");
break;
case MM_CREATIVE_FMSYNTH_MONO:
psz = TEXT("SB (r) FM synthesizer");
break;
case MM_CREATIVE_FMSYNTH_STEREO:
psz = TEXT("SB Pro (r) stereo FM synthesizer");
break;
case MM_CREATIVE_AUX_CD:
psz = TEXT("SB Pro (r) aux (CD)");
break;
case MM_CREATIVE_AUX_LINE:
psz = TEXT("SB Pro (r) aux (line in)");
break;
case MM_CREATIVE_AUX_MIC:
psz = TEXT("SB Pro (r) aux (mic)");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_CREATIVE()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_MEDIAVISION
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_MEDIAVISION
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Media Vision Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
//
//
//
psz = NULL;
switch (uPid)
{
case MM_PROAUD_MIDIOUT:
psz = TEXT("MediaVision MIDI output port");
break;
case MM_PROAUD_MIDIIN:
psz = TEXT("MediaVision MIDI input port");
break;
case MM_PROAUD_SYNTH:
psz = TEXT("MediaVision synthesizer");
break;
case MM_PROAUD_WAVEOUT:
psz = TEXT("MediaVision Waveform output");
break;
case MM_PROAUD_WAVEIN:
psz = TEXT("MediaVision Waveform input");
break;
case MM_PROAUD_MIXER:
psz = TEXT("MediaVision Mixer");
break;
case MM_PROAUD_AUX:
psz = TEXT("MediaVision aux");
break;
case MM_MEDIAVISION_THUNDER:
psz = TEXT("Thunderboard Sound Card");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_MEDIAVISION()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_FUJITSU
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_FUJITSU
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Fujitsu");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_FUJITSU()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ARTISOFT
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ARTISOFT
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Artisoft Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_ARTISOFT_SBWAVEIN:
psz = TEXT("Artisoft Sounding Board waveform input");
break;
case MM_ARTISOFT_SBWAVEOUT:
psz = TEXT("Artisoft Sounding Board waveform output");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_ARTISOFT()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_TURTLE_BEACH
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_TURTLE_BEACH
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Turtle Beach");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_TURTLE_BEACH()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_IBM
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_IBM
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("International Bussiness Machines Corp.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_MMOTION_WAVEAUX:
psz = TEXT("IBM M-Motion Auxiliary Device");
break;
case MM_MMOTION_WAVEOUT:
psz = TEXT("IBM M-Motion Waveform Output");
break;
case MM_MMOTION_WAVEIN:
psz = TEXT("IBM M-Motion Waveform Input");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_IBM()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_VOCALTEC
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_VOCALTEC
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Vocaltec LTD.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_VOCALTEC_WAVEOUT:
psz = TEXT("Vocaltec Waveform output port");
break;
case MM_VOCALTEC_WAVEIN:
psz = TEXT("Waveform input port");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_VOCALTEC()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ROLAND
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ROLAND
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Roland");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_ROLAND_MPU401_MIDIOUT:
psz = TEXT("MM_ROLAND_MPU401_MIDIOUT");
break;
case MM_ROLAND_MPU401_MIDIIN:
psz = TEXT("MM_ROLAND_MPU401_MIDIIN");
break;
case MM_ROLAND_SMPU_MIDIOUTA:
psz = TEXT("MM_ROLAND_SMPU_MIDIOUTA");
break;
case MM_ROLAND_SMPU_MIDIOUTB:
psz = TEXT("MM_ROLAND_SMPU_MIDIOUTB");
break;
case MM_ROLAND_SMPU_MIDIINA:
psz = TEXT("MM_ROLAND_SMPU_MIDIINA");
break;
case MM_ROLAND_SMPU_MIDIINB:
psz = TEXT("MM_ROLAND_SMPU_MIDIINB");
break;
case MM_ROLAND_SC7_MIDIOUT:
psz = TEXT("MM_ROLAND_SC7_MIDIOUT");
break;
case MM_ROLAND_SC7_MIDIIN:
psz = TEXT("MM_ROLAND_SC7_MIDIIN");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_ROLAND()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_DIGISPEECH
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_DIGISPEECH
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Digispeech, Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
//case MM_DIGISP_WAVEOUT:
case MM_DSP_SOLUTIONS_WAVEOUT:
psz = TEXT("Digispeech Waveform output port");
break;
//case MM_DIGISP_WAVEIN:
case MM_DSP_SOLUTIONS_WAVEIN:
psz = TEXT("Digispeech Waveform input port");
break;
case MM_DSP_SOLUTIONS_SYNTH:
case MM_DSP_SOLUTIONS_AUX:
break;
#define MM_DSP_SOLUTIONS_WAVEOUT 1
#define MM_DSP_SOLUTIONS_WAVEIN 2
#define MM_DSP_SOLUTIONS_SYNTH 3
#define MM_DSP_SOLUTIONS_AUX 4
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_DIGISPEECH()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_NEC
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_NEC
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("NEC");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_NEC()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ATI
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ATI
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("ATI");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_ATI()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_WANGLABS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_WANGLABS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Wang Laboratories, Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_WANGLABS_WAVEIN1:
psz = TEXT("Wave input on Wang models: Exec 4010, 4030 and 3450; PC 251/25C, PC 461/25S and PC 461/33C");
break;
case MM_WANGLABS_WAVEOUT1:
psz = TEXT("Wave output on Wang models: Exec 4010, 4030 and 3450; PC 251/25C, PC 461/25S and PC 461/33C");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_WANGLABS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_TANDY
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_TANDY
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Tandy Corporation");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_TANDY()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_VOYETRA
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_VOYETRA
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Voyetra");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_VOYETRA()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ANTEX
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ANTEX
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Antex");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_ANTEX()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ICL_PS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ICL_PS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("ICL PS");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_ICL_PS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_INTEL
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_INTEL
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Intel");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_INTELOPD_WAVEIN:
psz = TEXT("HID2 WaveAudio Input driver");
break;
case MM_INTELOPD_WAVEOUT:
psz = TEXT("HID2 WaveAudio Output driver");
break;
case MM_INTELOPD_AUX:
psz = TEXT("HID2 Auxiliary driver (required for mixing functions)");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_INTEL()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_GRAVIS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_GRAVIS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Gravis");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_GRAVIS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_VAL
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_VAL
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Video Associates Labs");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_VAL()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_INTERACTIVE
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_INTERACTIVE
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("InterActive, Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_INTERACTIVE_WAVEIN:
psz = TEXT("MM_INTERACTIVE_WAVEIN or WAVEOUT ??");
break;
#if 0
// mmreg.h has in and out defined as same value... how quaint.
case MM_INTERACTIVE_WAVEOUT:
psz = TEXT("MM_INTERACTIVE_WAVEOUT");
break;
#endif
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_INTERACTIVE()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_YAMAHA
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_YAMAHA
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Yamaha Corp. of America");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_YAMAHA_GSS_SYNTH:
psz = TEXT("Yamaha Gold Sound Standard FM sythesis driver");
break;
case MM_YAMAHA_GSS_WAVEOUT:
psz = TEXT("Yamaha Gold Sound Standard wave output driver");
break;
case MM_YAMAHA_GSS_WAVEIN:
psz = TEXT("Yamaha Gold Sound Standard wave input driver");
break;
case MM_YAMAHA_GSS_MIDIOUT:
psz = TEXT("Yamaha Gold Sound Standard midi output driver");
break;
case MM_YAMAHA_GSS_MIDIIN:
psz = TEXT("Yamaha Gold Sound Standard midi input driver");
break;
case MM_YAMAHA_GSS_AUX:
psz = TEXT("Yamaha Gold Sound Standard auxillary driver for mixer functions");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_YAMAHA()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_EVEREX
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_EVEREX
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Everex Systems, Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_EVEREX_CARRIER:
psz = TEXT("Everex Carrier SL/25 Notebook");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_EVEREX()
BOOL FNLOCAL MMCapsMidPid_MM_ECHO
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Echo Speech Corporation");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_ECHO_SYNTH:
psz = TEXT("Echo EuSythesis driver");
break;
case MM_ECHO_WAVEOUT:
psz = TEXT("Wave output driver");
break;
case MM_ECHO_WAVEIN:
psz = TEXT("Wave input driver");
break;
case MM_ECHO_MIDIOUT:
psz = TEXT("MIDI output driver");
break;
case MM_ECHO_MIDIIN:
psz = TEXT("MIDI input driver");
break;
case MM_ECHO_AUX:
psz = TEXT("auxillary driver for mixer functions");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
}
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_SIERRA
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_SIERRA
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Sierra Semiconductor");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_SIERRA_ARIA_MIDIOUT:
psz = TEXT("Sierra Aria MIDI output");
break;
case MM_SIERRA_ARIA_MIDIIN:
psz = TEXT("Sierra Aria MIDI input");
break;
case MM_SIERRA_ARIA_SYNTH:
psz = TEXT("Sierra Aria Synthesizer");
break;
case MM_SIERRA_ARIA_WAVEOUT:
psz = TEXT("Sierra Aria Waveform output");
break;
case MM_SIERRA_ARIA_WAVEIN:
psz = TEXT("Sierra Aria Waveform input");
break;
case MM_SIERRA_ARIA_AUX:
psz = TEXT("Sierra Aria Auxiliary device");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_SIERRA()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_CAT
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_CAT
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Computer Aided Technologies");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_CAT()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_APPS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_APPS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("APPS Software International");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_APPS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_DSP_GROUP
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_DSP_GROUP
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("DSP Group, Inc.");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_DSP_GROUP_TRUESPEECH:
psz = TEXT("High quality 9.54:1 Speech Compression Vocoder");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_DSP_GROUP()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_MELABS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_MELABS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("microEngineering Labs");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_MELABS_MIDI2GO:
psz = TEXT("parallel port MIDI interface");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_MELABS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_COMPUTER_FRIENDS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_COMPUTER_FRIENDS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Computer Friends, Inc");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_COMPUTER_FRIENDS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_ESS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_ESS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("ESS Technology");
PTSTR psz;
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
psz = NULL;
switch (uPid)
{
case MM_ESS_AMWAVEOUT:
psz = TEXT("ESS Audio Magician Waveform Output Port");
break;
case MM_ESS_AMWAVEIN:
psz = TEXT("ESS Audio Magician Waveform Input Port");
break;
case MM_ESS_AMAUX:
psz = TEXT("ESS Audio Magician Auxiliary Port");
break;
case MM_ESS_AMSYNTH:
psz = TEXT("ESS Audio Magician Internal Music Synthesizer Port");
break;
case MM_ESS_AMMIDIOUT:
psz = TEXT("ESS Audio Magician MIDI Output Port");
break;
case MM_ESS_AMMIDIIN:
psz = TEXT("ESS Audio Magician MIDI Input Port");
break;
}
if (NULL != psz)
{
lstrcat(pszPid, psz);
return (TRUE);
}
return (FALSE);
} // MMCapsMidPid_MM_ESS()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_AUDIOFILE
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_AUDIOFILE
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Audio, Inc.");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_AUDIOFILE()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_MOTOROLA
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_MOTOROLA
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Motorola, Inc.");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_MOTOROLA()
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidPid_MM_CANOPUS
//
// Description:
//
//
// Arguments:
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
//--------------------------------------------------------------------------;
BOOL FNLOCAL MMCapsMidPid_MM_CANOPUS
(
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szMid[] = TEXT("Canopus Co., Ltd.");
if (NULL != pszMid)
lstrcpy(pszMid, szMid);
if (NULL == pszPid)
return (TRUE);
//
//
//
return (FALSE);
} // MMCapsMidPid_MM_CANOPUS()
//==========================================================================;
//
//
//
//
//==========================================================================;
//--------------------------------------------------------------------------;
//
// BOOL MMCapsMidAndPid
//
// Description:
//
//
// Arguments:
// UINT uMid:
//
// PTSTR pszMid:
//
// UINT uPid:
//
// PTSTR pszPid:
//
// Return (BOOL):
//
// History:
// 05/13/93
//
//--------------------------------------------------------------------------;
BOOL FNGLOBAL MMCapsMidAndPid
(
UINT uMid,
PTSTR pszMid,
UINT uPid,
PTSTR pszPid
)
{
static TCHAR szUnknown[] = TEXT("Unknown");
static TCHAR szFormatId[] = TEXT("[%u], %s");
TCHAR achMid[MMCAPS_MAX_STRING_MID_CHARS];
TCHAR achPid[MMCAPS_MAX_STRING_PID_CHARS];
BOOL f;
switch (uMid)
{
case MM_MICROSOFT:
f = MMCapsMidPid_MM_MICROSOFT(achMid, uPid, achPid);
break;
case MM_CREATIVE:
f = MMCapsMidPid_MM_CREATIVE(achMid, uPid, achPid);
break;
case MM_MEDIAVISION:
f = MMCapsMidPid_MM_MEDIAVISION(achMid, uPid, achPid);
break;
case MM_FUJITSU:
f = MMCapsMidPid_MM_FUJITSU(achMid, uPid, achPid);
break;
case MM_ARTISOFT:
f = MMCapsMidPid_MM_ARTISOFT(achMid, uPid, achPid);
break;
case MM_TURTLE_BEACH:
f = MMCapsMidPid_MM_TURTLE_BEACH(achMid, uPid, achPid);
break;
case MM_IBM:
f = MMCapsMidPid_MM_IBM(achMid, uPid, achPid);
break;
case MM_VOCALTEC:
f = MMCapsMidPid_MM_VOCALTEC(achMid, uPid, achPid);
break;
case MM_ROLAND:
f = MMCapsMidPid_MM_ROLAND(achMid, uPid, achPid);
break;
//case MM_DIGISPEECH:
case MM_DSP_SOLUTIONS:
f = MMCapsMidPid_MM_DIGISPEECH(achMid, uPid, achPid);
break;
case MM_NEC:
f = MMCapsMidPid_MM_NEC(achMid, uPid, achPid);
break;
case MM_ATI:
f = MMCapsMidPid_MM_ATI(achMid, uPid, achPid);
break;
case MM_WANGLABS:
f = MMCapsMidPid_MM_WANGLABS(achMid, uPid, achPid);
break;
case MM_TANDY:
f = MMCapsMidPid_MM_TANDY(achMid, uPid, achPid);
break;
case MM_VOYETRA:
f = MMCapsMidPid_MM_VOYETRA(achMid, uPid, achPid);
break;
case MM_ANTEX:
f = MMCapsMidPid_MM_ANTEX(achMid, uPid, achPid);
break;
case MM_ICL_PS:
f = MMCapsMidPid_MM_ICL_PS(achMid, uPid, achPid);
break;
case MM_INTEL:
f = MMCapsMidPid_MM_INTEL(achMid, uPid, achPid);
break;
case MM_GRAVIS:
f = MMCapsMidPid_MM_GRAVIS(achMid, uPid, achPid);
break;
case MM_VAL:
f = MMCapsMidPid_MM_VAL(achMid, uPid, achPid);
break;
case MM_INTERACTIVE:
f = MMCapsMidPid_MM_INTERACTIVE(achMid, uPid, achPid);
break;
case MM_YAMAHA:
f = MMCapsMidPid_MM_YAMAHA(achMid, uPid, achPid);
break;
case MM_EVEREX:
f = MMCapsMidPid_MM_EVEREX(achMid, uPid, achPid);
break;
case MM_ECHO:
f = MMCapsMidPid_MM_ECHO(achMid, uPid, achPid);
break;
case MM_SIERRA:
f = MMCapsMidPid_MM_SIERRA(achMid, uPid, achPid);
break;
case MM_CAT:
f = MMCapsMidPid_MM_CAT(achMid, uPid, achPid);
break;
case MM_APPS:
f = MMCapsMidPid_MM_APPS(achMid, uPid, achPid);
break;
case MM_DSP_GROUP:
f = MMCapsMidPid_MM_DSP_GROUP(achMid, uPid, achPid);
break;
case MM_MELABS:
f = MMCapsMidPid_MM_MELABS(achMid, uPid, achPid);
break;
case MM_COMPUTER_FRIENDS:
f = MMCapsMidPid_MM_COMPUTER_FRIENDS(achMid, uPid, achPid);
break;
case MM_ESS:
f = MMCapsMidPid_MM_ESS(achMid, uPid, achPid);
break;
case MM_AUDIOFILE:
f = MMCapsMidPid_MM_AUDIOFILE(achMid, uPid, achPid);
break;
case MM_MOTOROLA:
f = MMCapsMidPid_MM_MOTOROLA(achMid, uPid, achPid);
break;
case MM_CANOPUS:
f = MMCapsMidPid_MM_CANOPUS(achMid, uPid, achPid);
break;
default:
lstrcpy(achMid, szUnknown);
break;
}
//
//
//
if (NULL != pszMid)
{
wsprintf(pszMid, szFormatId, uMid, (LPTSTR)achMid);
}
if (NULL != pszPid)
{
if (f)
wsprintf(pszPid, szFormatId, uPid, (LPTSTR)achPid);
else
wsprintf(pszPid, szFormatId, uPid, (LPTSTR)szUnknown);
}
//
//
//
return (f);
} // MMCapsMidAndPid()