//==========================================================================; // // 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 #include #include #include #include #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()