📄 masnddrv.h
字号:
/****************************************************************************
*
* Copyright (C) 2002-2003 YAMAHA CORPORATION. All rights reserved.
*
* Module : masnddrv.h
*
* Description : MA Sound Driver
*
* Version : 2.7.13 2003.06.13
*
****************************************************************************/
#ifndef __MASNDDRV_H__
#define __MASNDDRV_H__
#include "mamachdep.h"
#include "madebug.h"
#include "madefs.h"
/* for MaSndDrv_Create */
#define MASMW_SEQTYPE_DELAYED (0)
#define MASMW_SEQTYPE_DIRECT (1)
#define MASMW_SEQTYPE_HV (2)
#define MASNDDRV_MAX_SEQTYPE (2) /* maximum value of sequence type */
#define MASNDDRV_MIN_DLY_BASETIME (4)
#define MASNDDRV_MAX_DLY_BASETIME (10)
#define MASNDDRV_DIRECT_BASETIME (20)
#define MASMW_DIRECT_BASETIME (20)
#define MASNDDRV_HV_BASETIME (20)
#define MASNDDRV_RESOURCE_MODE_HV (0)
#define MASNDDRV_RESOURCE_MODE_PHRASE (1)
#define MASNDDRV_RESOURCE_MODE_AUDIO (1)
#define MASNDDRV_RESOURCE_MODE_MA3 (2)
#define MASNDDRV_RESOURCE_MODE_MA2 (3)
#define MASNDDRV_RESOURCE_MODE_V50 (4)
#define MASNDDRV_RESOURCE_MODE_V64 (5)
#define MASNDDRV_FM_MODE_2OP (0x00)
#define MASNDDRV_FM_MODE_4OP (0x01)
#define MASNDDRV_DRUM_MODE_GMX (0x00)
#define MASNDDRV_DRUM_MODE_GML1 (0x02)
#define MASNDDRV_WTVOLUME_MODE_MA3 (0x00)
#define MASNDDRV_WTVOLUME_MODE_MA5 (0x04)
#define MASNDDRV_HVTYPE_0 (0x00)
#define MASNDDRV_HVTYPE_1 (0x10)
/* for MaSndDrv_ControlSequencer */
#define MASNDDRV_SEQUENCER_STOP (0)
#define MASNDDRV_SEQUENCER_START (1)
#define MASNDDRV_SEQUENCER_ENTERREPEAT (2)
#define MASNDDRV_SEQUENCER_LEAVEREPEAT (3)
#define MASNDDRV_SEQUENCER_SEEK (4)
/* cannel */
#define MASNDDRV_NUM_CHANNEL (MA_MAX_CHANNEL) /* number of channels */
#define MASNDDRV_MAX_CHANNEL (MASNDDRV_NUM_CHANNEL-1) /* maximum value of channle */
#define MASNDDRV_STM_CH (16)
#define MASMW_NUM_CHANNEL (MA_MAX_CHANNEL) /* number of channel */
#define MASNDDRV_NUM_STREAM (MA_MAX_STREAM_AUDIO) /* number of stream audio */
/* ram */
#define MASNDDRV_MIN_RAMADRS (0x4000) /* minimum value of ram address */
#define MASNDDRV_MAX_RAMADRS (0x5FFF) /* maximum value of ram address */
/* for MaSndDrv_UpdateSequencer */
#define MASNDDRV_UPDATE_FIFO (0)
#define MASNDDRV_UPDATE_TIMER2A (3)
#define MASNDDRV_UPDATE_TIMER2B (4)
/* for MaSndDrv_SetSpeed */
#define MASNDDRV_MIN_SPEED (25)
#define MASNDDRV_MAX_SPEED (400)
/* for MaSndDrv_SetVolume / MaSndDrv_SetVolShift */
#define MASNDDRV_MAX_VOICE_TYPE (0x7F)
#define MASNDDRV_FM_FLAG_BIT (0x01)
#define MASNDDRV_WT_FLAG_BIT (0x02)
#define MASNDDRV_ST_FLAG_BIT (0x04)
#define MASNDDRV_HV_FLAG_BIT (0x08)
#define MASNDDRV_MASTERL_FLAG_BIT (0x20)
#define MASNDDRV_MASTERR_FLAG_BIT (0x40)
#define MASNDDRV_MAX_VOLUME_SHIFT (3)
/* for MaSndDrv_SetKey */
#define MASNDDRV_MIN_KEYCTRL (-12)
#define MASNDDRV_MAX_KEYCTRL (12)
/* for MaSndDrv_SetKeyControl */
#define MASNDDRV_KEYCTRL_NONE (0)
#define MASNDDRV_KEYCTRL_OFF (1)
#define MASNDDRV_KEYCTRL_ON (2)
/* for MaSndDrv_SetHvVoice */
#define MASNDDRV_MAX_HVVOICE_SIZE (46)
/* for MaSndDrv_SetCommand */
#define MASNDDRV_CMD_NOTE_ON (0)
#define MASNDDRV_CMD_NOTE_ON_MA2 (1)
#define MASNDDRV_CMD_NOTE_ON_MA2EX (2)
#define MASNDDRV_CMD_NOTE_OFF (3)
#define MASNDDRV_CMD_NOTE_OFF_MA2 (4)
#define MASNDDRV_CMD_NOTE_OFF_MA2EX (5)
#define MASNDDRV_CMD_PROGRAM_CHANGE (6)
#define MASNDDRV_CMD_MODULATION_DEPTH (7)
#define MASNDDRV_CMD_CHANNEL_VOLUME (8)
#define MASNDDRV_CMD_PANPOT (9)
#define MASNDDRV_CMD_EXPRESSION (10)
#define MASNDDRV_CMD_HOLD1 (11)
#define MASNDDRV_CMD_ALL_SOUND_OFF (12)
#define MASNDDRV_CMD_RESET_ALL_CONTROLLERS (13)
#define MASNDDRV_CMD_ALL_NOTE_OFF (14)
#define MASNDDRV_CMD_MONO_MODE_ON (15)
#define MASNDDRV_CMD_POLY_MODE_ON (16)
#define MASNDDRV_CMD_PITCH_BEND (17)
#define MASNDDRV_CMD_BEND_RANGE (18)
#define MASNDDRV_CMD_STREAM_ON (19)
#define MASNDDRV_CMD_STREAM_OFF (20)
#define MASNDDRV_CMD_STREAM_SLAVE (21)
#define MASNDDRV_CMD_STREAM_PANPOT (22)
#define MASNDDRV_CMD_MASTER_VOLUME (23)
#define MASNDDRV_CMD_SYSTEM_ON (24)
#define MASNDDRV_CMD_USER_EVENT (29)
#define MASNDDRV_CMD_NOP (30)
#define MASNDDRV_CMD_SET_LED_SYNC_CH (31)
#define MASNDDRV_CMD_SET_MOTOR_SYNC_CH (32)
#define MASNDDRV_CMD_STREAM_PAUSE (33)
#define MASNDDRV_CMD_STREAM_RESTART (34)
#define MASNDDRV_CMD_VOL_DIRECT (35)
#define MASNDDRV_CMD_SET_LPFQ (36)
#define MASNDDRV_CMD_SET_LPFCOF (37)
#define MASNDDRV_CMD_HV_NOTE_ON (40)
#define MASNDDRV_CMD_HV_NOTE_OFF (41)
#define MASNDDRV_CMD_HV_PROGRAM_CHANGE (42)
#define MASNDDRV_CMD_HV_PITCH_BEND (43)
#define MASNDDRV_CMD_HV_BEND_RANGE (44)
#define MASNDDRV_CMD_HV_PROSODIC_BEND_RANGE (45)
#define MASNDDRV_CMD_HV_CHANNEL_VOLUME (47)
#define MASNDDRV_CMD_HV_PANPOT (48)
#define MASNDDRV_CMD_HV_ALL_SOUND_OFF (50)
#define MASNDDRV_CMD_STREAM_SEEK (51)
#define MASNDDRV_CMD_HV_EVENT (52)
#define MASNDDRV_CMD_COASE_TUNE (53)
#define MASNDDRV_CMD_FINE_TUNE (54)
#define MASNDDRV_NUM_COMMAND (55)
#define MASNDDRV_MAX_COMMAND MASNDDRV_CMD_FINE_TUNE
#define MASNDDRV_CTRL_OFF (0)
#define MASNDDRV_CTRL_ON (1)
#define MASNDDRV_MAX_NOPTYPE (1) /* maximum value of nop type */
#define MASNDDRV_MAX_USEREVENT (127) /* maximum value of user event */
#define MASMW_MAX_USEREVENT (127) /* maximum value of user event */
#define MASNDDRV_MAX_KEY (127) /* maximum value of key */
#define MASNDDRV_MAX_VELOCITY (127) /* maximum value of velocity */
#define MASNDDRV_MAX_BANK (255) /* maximum value of bank number */
#define MASNDDRV_MAX_PROGRAM (127) /* maximum value of program number */
#define MASNDDRV_MAX_DEPTH (4) /* maximum value of modulation depth */
#define MASNDDRV_MAX_VOLUME (127) /* maximum value of volume */
#define MASNDDRV_MAX_PAN (127) /* maximum value of panpot */
#define MASNDDRV_MAX_HOLD1 (1) /* maximum value of hold1 */
#define MASNDDRV_MAX_BEND (0x3FFF) /* maximum value of pitch bend */
#define MASNDDRV_MAX_BENDRANGE (24) /* maximum value of bend range */
#define MASNDDRV_MAX_FORMAT (3) /* maximum value of format */
#define MASNDDRV_MAX_STREAMPAN (255) /* maximum value of stream panpot */
#define MASNDDRV_MIN_STREAMFS (4000) /* minimum value of stream frequency */
#define MASNDDRV_MAX_STREAMFS (48000) /* maximum value of stream frequency */
#define MASNDDRV_MAX_LPFQREL (127) /* maximum relative value of lpf q */
#define MASNDDRV_MAX_LPFCOFREL (127) /* maximum relative value of cutoff frequency */
#define MASNDDRV_MAX_HV_PROGRAM_NO (31) /* maximum value of program number for HV */
#define MASNDDRV_MAX_HV_EFFECTIVE_PROGNO (15) /* maximum value of program number without bit7 */
#define MASNDDRV_MAX_HV_PROSODIC_BENDRANGE (60) /* maximum value of prosodic bend range for HV */
#define MASNDDRV_MAX_WAVEID (31) /* maximum value of wave ID */
#define MASNDDRV_MAX_HVSID (63) /* maximum value of HV-Script ID */
#define MASNDDRV_HV_SOUND_OFF (127) /* HV sound off ID */
#define MASNDDRV_MAX_COASETUNE (0x7F) /* maximum value of coase tune */
#define MASNDDRV_MAX_FINETUNE (0x3FFF) /* maximum value of fine tune */
/* struct definitions for MaSound_Control */
typedef struct _MASMW_CONTENTSINFO
{
UINT16 code; /* code type */
UINT8 tag[2]; /* tag name */
UINT8* buf; /* pointer to read buffer */
UINT32 size; /* size of read buffer */
} MASMW_CONTENTSINFO, *PMASMW_CONTENTSINFO;
typedef struct _MASMW_PHRASELIST
{
UINT8 tag[2]; /* tag name */
UINT32 start; /* start point */
UINT32 stop; /* stop point */
} MASMW_PHRASELIST, *PMASMW_PHRASELIST;
typedef struct _MASMW_EVENTNOTE
{
UINT8 ch; /* channel number */
UINT8 note; /* note number */
} MASMW_EVENTNOTE, *PMASMW_EVENTNOTE;
typedef struct _MASMW_HVDICTIONARY
{
UINT8 * pbBuf; /* pointer to dictionary buffer */
UINT32 dSize; /* size of dictionary buffer */
} MASMW_HVDICTIONARY, *PMASMW_HVDICTIONARY;
typedef struct _MASMW_HVVOICEPARAM
{
UINT8 bProgNo; /* Program No */
UINT8* pbBuf; /* pointer to dictionary buffer */
UINT32 dSize; /* size of dictionary buffer */
} MASMW_HVVOICEPARAM, *PMASMW_HVVOICEPARAM;
typedef struct _MASMW_HVSCRIPT
{
UINT8 *pbBuf;
UINT32 dSize;
} MASMW_HVSCRIPT, *PMASMW_HVSCRIPT;
SINT32 MaSndDrv_Initialize ( void );
SINT32 MaSndDrv_End ( void );
SINT32 MaSndDrv_Create ( UINT32 dSeqType, UINT32 dTimeBase, UINT32 dResMode, UINT32 dCnvMode, UINT32 dStream,
UINT32 dAlCh, SINT32 (*pFunc)(void), UINT32 *pdRamAdrs, UINT32 *pdRamSize );
SINT32 MaSndDrv_Free ( SINT32 sdSeqId );
SINT32 MaSndDrv_GetPos ( SINT32 sdSeqId );
SINT32 MaSndDrv_SetSpeed ( SINT32 sdSeqId, UINT32 dVal );
SINT32 MaSndDrv_SetKey ( SINT32 sdSeqId, SINT32 sdVal );
SINT32 MaSndDrv_SetKeyControl ( SINT32 sdSeqId, UINT32 dCh, UINT32 dVal );
SINT32 MaSndDrv_SetFmExtWave ( SINT32 sdSeqId, UINT32 dWaveNo, UINT32 dRamAdrs );
SINT32 MaSndDrv_SetVolume ( SINT32 sdSeqId, UINT32 dVolume, UINT32 dCtrl );
SINT32 MaSndDrv_SetVoice ( SINT32 sdSeqId, UINT32 dBank, UINT32 dProg, UINT32 dSynth, UINT32 dKey, UINT32 dAddress );
SINT32 MaSndDrv_GetVoice ( SINT32 sdSeqId, UINT32 dBank, UINT32 dProg );
SINT32 MaSndDrv_SetStream ( SINT32 sdSeqId, UINT32 dWaveId, UINT32 dFormat, UINT32 dFrequency, UINT8 * pbWave, UINT32 dWaveSize );
SINT32 MaSndDrv_SetHVVoice ( SINT32 sdSeqId, UINT32 dProgNo, UINT8 *pbVoice, UINT32 dSize );
SINT32 MaSndDrv_SetHVDictionary ( SINT32 sdSeqId, UINT8 *pbDict, UINT32 dSize, UINT32 dMode, void *pvExtArgs );
SINT32 MaSndDrv_SetALVoice ( SINT32 sdSeqId, UINT32 dBankNo, UINT32 dProgNo, UINT8 *pbParam, UINT32 dParamSize );
SINT32 MaSndDrv_SetBalance ( SINT32 sdSeqId, UINT32 dLVol, UINT32 dRVol );
SINT32 MaSndDrv_SetVolShift ( SINT32 sdSeqId, UINT32 dVal, UINT32 dCtrl );
SINT32 MaSndDrv_SetCommand ( SINT32 sdSeqId, SINT32 sdDeltaTime, UINT32 dCmd, UINT32 dParam1, UINT32 dParam2, UINT32 dParam3 );
SINT32 MaSndDrv_ControlSequencer( SINT32 sdId, UINT32 dCtrl );
SINT32 MaSndDrv_DeviceControl ( UINT32 dCmd, UINT32 dParam1, UINT32 dParam2, UINT32 dParam3 );
SINT32 MaSndDrv_UpdateSequence ( SINT32 sdId, UINT8 * pbBuf, UINT32 dBufSize );
SINT32 MaSndDrv_ResetPos ( SINT32 sdSeqId );
UINT32 MaSndDrv_Mix40LogVol ( UINT32 dVol1, UINT32 dVol2);
UINT32 MaSndDrv_Convert20to40Log( UINT32 dVol );
#endif /*__MASNDDRV_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -