|
|
//==========================================================================;
//
// 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 (C) 1993 - 1997 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()
|