📄 masnddrv.h
字号:
#include "pccdef.h"
#include "predef.h"
typedef struct _MASNDDRVINFO
{
UINT8 master_volume; /* master volume */
UINT8 ctrl_volume; /* control volume */
UINT8 min_slot[3]; /* minimum slot number */
UINT8 max_slot[3]; /* maximum slot number */
} MASNDDRVINFO;
typedef struct _MACHINFO
{
UINT8 bank_no; /* bank number */
UINT8 prog_no; /* program number */
UINT8 poly; /* poly/mono */
UINT8 volume; /* volume */
UINT8 bend_range; /* bend range */
UINT8 expression; /* expression */
UINT8 sfx; /* sfx */
UINT8 note_on; /* note on (used for MONO_POLY MODE) */
} MACHINFO;
typedef struct _MAVINFO
{
UINT8 synth; /* synth type */
UINT16 key; /* key number */
UINT16 address; /* address */
} MAVINFO, * PMAVINFO;
typedef struct _MAVOICEINFO
{
UINT8 synth; /* synth type */
UINT16 key; /* key number */
UINT16 ram_adrs; /* ram address */
} MAVOICEINFO, * PMAVOICEINFO;
typedef struct _MASLOTINFO
{
UINT8 ch; /* channel number */
UINT32 key; /* key number */
} MASLOTINFO;
typedef struct _MASLOTLIST
{
UINT8 top[3]; /* top */
UINT8 end[3]; /* end */
UINT8 next[42]; /* next */
} MASLOTLIST, *PMASLOTLIST;
static MASNDDRVINFO ma_snddrv_info;
static MACHINFO ma_channel_info[MASMW_NUM_CHANNEL];
static MAVOICEINFO ma_voice_info[MA_MAX_REG_VOICE*2];
static MASLOTINFO ma_slot_info[MASMW_MAX_SLOT];
static MASLOTLIST ma_slot_list;
static UINT8 ma_voice_index[MA_MAX_RAM_BANK*2*128]; /* (Bank[16+16]) * Prog */
/*static UINT8 bTimeBaseR=1;*/
static UINT32 pre_time=0; /*Note ON*/
static UINT8 packet_buf[256];
static UINT8 con = 0 ;
static UINT8 channel[16];
static UINT32 reg[16];
static SINT32 dura[16];
SINT32 MaSndDrv_SetVoice(UINT8 bank_no, UINT8 program_no, UINT32 key, UINT32 ram_adrs);
SINT32 MaSndDrv_Create(UINT8 timebase, UINT8 cnv_mode, UINT8 sa_num,
UINT32 *ram_adrs, UINT32 *ram_size);
SINT32 MaSndDrv_Nop(SINT32 delta_time, UINT32 type);
UINT8 CalcChVolume(UINT32 ch);
SINT32 MaSndDrv_ChannelVolume(SINT32 delta_time, UINT32 ch, UINT32 vol);
SINT32 MaSndDrv_Panpot(SINT32 delta_time, UINT32 ch, UINT32 pan);
SINT32 MaSndDrv_Expression(SINT32 delta_time, UINT32 ch, UINT32 vol);
SINT32 MaSndDrv_ModulationDepth(SINT32 delta_time, UINT32 ch, UINT32 depth);
SINT32 MaSndDrv_Hold1(SINT32 delta_time, UINT32 ch, UINT32 val);
SINT32 MaSndDrv_ResetAllControllers(SINT32 delta_time, UINT32 ch);
SINT32 MaSndDrv_MonoModeOn(SINT32 delta_time, UINT32 ch);
SINT32 MaSndDrv_PolyModeOn(SINT32 delta_time, UINT32 ch);
SINT32 MaSndDrv_BendRange(SINT32 delta_time, UINT32 ch, UINT32 bend_range);
SINT32 MaSndDrv_MasterVolume(SINT32 delta_time, UINT32 vol);
SINT32 MaSndDrv_PitchBend(SINT32 delta_time, UINT32 ch, UINT32 bend);
void RemakeSlotList(UINT32 synth_type, UINT32 slot_no, UINT32 type);
SINT32 MaSndDrv_AllSoundOff(SINT32 delta_time, UINT32 ch );
SINT32 MaSndDrv_AllSoundOff_EOS(SINT32 delta_time );
SINT32 GetSlotList(SINT32 synth_type);
UINT16 GetFmBlockFnum(UINT8 ch, UINT8 key, UINT16 drum_key);
UINT16 GetWtBlockFnum(UINT8 ch, UINT8 key, UINT16 base_fs);
UINT8 CalcVoiceVolume(UINT32 vol, UINT32 offset);
UINT32 MakeDeltaTime( UINT8 * packet_ptr, SINT32 delta_time );
SINT32 GetVoiceInfo(UINT8 ch, UINT8 key, PMAVINFO voice_info_ptr);
SINT32 MaSndDrv_NoteOn(SINT32 delta_time, UINT8 ch,
UINT8 key, UINT8 velocity, SINT32 gatetime, SINT32 next_dura);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -