73 lines
2.2 KiB
C
73 lines
2.2 KiB
C
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
synth.h
|
|
|
|
Abstract:
|
|
|
|
This include file defines constants and types for
|
|
the Microsoft midi synthesizer driver
|
|
|
|
This header file is shared between the low level driver and the
|
|
kernel mode driver.
|
|
|
|
Author:
|
|
|
|
Robin Speed (RobinSp) 20-Oct-92
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#define STR_DRIVERNAME L"synth"
|
|
#define STR_MV_DRIVERNAME L"mvopl3"
|
|
#define STR_OPL3_DEVICENAME L"\\Device\\opl3.mid"
|
|
#define STR_ADLIB_DEVICENAME L"\\Device\\adlib.mid"
|
|
|
|
/*
|
|
* Stucture for passing synth data
|
|
* Why on earth isn't there a type for sharing short data?
|
|
*/
|
|
|
|
typedef struct {
|
|
unsigned short IoPort;
|
|
unsigned short PortData;
|
|
} SYNTH_DATA, *PSYNTH_DATA;
|
|
|
|
/* positions within FM */
|
|
#define AD_LSI (0x000)
|
|
#define AD_LSI2 (0x101)
|
|
#define AD_TIMER1 (0x001)
|
|
#define AD_TIMER2 (0x002)
|
|
#define AD_MASK (0x004)
|
|
#define AD_CONNECTION (0x104)
|
|
#define AD_NEW (0x105)
|
|
#define AD_NTS (0x008)
|
|
#define AD_MULT (0x020)
|
|
#define AD_MULT2 (0x120)
|
|
#define AD_LEVEL (0x040)
|
|
#define AD_LEVEL2 (0x140)
|
|
#define AD_AD (0x060)
|
|
#define AD_AD2 (0x160)
|
|
#define AD_SR (0x080)
|
|
#define AD_SR2 (0x180)
|
|
#define AD_FNUMBER (0x0a0)
|
|
#define AD_FNUMBER2 (0x1a0)
|
|
#define AD_BLOCK (0x0b0)
|
|
#define AD_BLOCK2 (0x1b0)
|
|
#define AD_DRUM (0x0bd)
|
|
#define AD_FEEDBACK (0x0c0)
|
|
#define AD_FEEDBACK2 (0x1c0)
|
|
#define AD_WAVE (0x0e0)
|
|
#define AD_WAVE2 (0x1e0)
|
|
|
|
/*
|
|
** Special IOCTL
|
|
*/
|
|
|
|
#define IOCTL_MIDI_SET_OPL3_MODE CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x000A, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|