Lines Matching refs:bank
53 static const SNDWaveData *GetWaveData(const SNDBankData *bank, int waveArcNo, int waveIndex);
70 void SND_AssignWaveArc(SNDBankData *bank, int index, SNDWaveArc *waveArc) in SND_AssignWaveArc() argument
75 SDK_NULL_ASSERT(bank); in SND_AssignWaveArc()
78 SDK_ASSERTMSG(((u32)bank & 0x1f) == 0, "bank address must be aligned 32 bytes boundary."); in SND_AssignWaveArc()
85 if (bank->waveArcLink[index].waveArc != NULL) in SND_AssignWaveArc()
90 if (waveArc == bank->waveArcLink[index].waveArc) in SND_AssignWaveArc()
97 if (&bank->waveArcLink[index] == bank->waveArcLink[index].waveArc->topLink) in SND_AssignWaveArc()
99 bank->waveArcLink[index].waveArc->topLink = bank->waveArcLink[index].next; in SND_AssignWaveArc()
102 DC_StoreRange(bank->waveArcLink[index].waveArc, sizeof(SNDWaveArc)); in SND_AssignWaveArc()
107 prev = bank->waveArcLink[index].waveArc->topLink; in SND_AssignWaveArc()
110 if (&bank->waveArcLink[index] == prev->next) in SND_AssignWaveArc()
115 prev->next = bank->waveArcLink[index].next; in SND_AssignWaveArc()
124 waveArc->topLink = &bank->waveArcLink[index]; in SND_AssignWaveArc()
125 bank->waveArcLink[index].next = next; in SND_AssignWaveArc()
126 bank->waveArcLink[index].waveArc = waveArc; in SND_AssignWaveArc()
131 DC_StoreRange(bank, sizeof(SNDBankData)); in SND_AssignWaveArc()
145 void SND_DestroyBank(SNDBankData *bank) in SND_DestroyBank() argument
151 SDK_NULL_ASSERT(bank); in SND_DestroyBank()
153 SDK_ASSERTMSG(((u32)bank & 0x1f) == 0, "bank address must be aligned 32 bytes boundary."); in SND_DestroyBank()
160 waveArc = bank->waveArcLink[i].waveArc; in SND_DestroyBank()
164 if (&bank->waveArcLink[i] == waveArc->topLink) in SND_DestroyBank()
166 waveArc->topLink = bank->waveArcLink[i].next; in SND_DestroyBank()
177 if (&bank->waveArcLink[i] == prev->next) in SND_DestroyBank()
182 prev->next = bank->waveArcLink[i].next; in SND_DestroyBank()
244 BOOL SND_ReadInstData(const SNDBankData *bank, int prgNo, int key, SNDInstData *inst) in SND_ReadInstData() argument
248 SDK_NULL_ASSERT(bank); in SND_ReadInstData()
255 if (bank->fileHeader.signature[0] == 'S' && in SND_ReadInstData()
256 bank->fileHeader.signature[1] == 'B' && in SND_ReadInstData()
257 bank->fileHeader.signature[2] == 'C' && bank->fileHeader.signature[3] == 'B') in SND_ReadInstData()
259 const SNDBankDataCallback *bankcb = (const SNDBankDataCallback *)bank; in SND_ReadInstData()
266 if (prgNo >= bank->instCount) in SND_ReadInstData()
272 instOffset = bank->instOffset[prgNo]; // Note: Read from MainMemory in SND_ReadInstData()
285 const SNDInstParam *param = (const SNDInstParam *)((u8 *)bank + instOffset); in SND_ReadInstData()
293 const SNDDrumSet *drumSet = (const SNDDrumSet *)((u8 *)bank + instOffset); in SND_ReadInstData()
310 const SNDKeySplit *keySplit = (const SNDKeySplit *)((u8 *)bank + instOffset); in SND_ReadInstData()
349 BOOL SND_WriteInstData(SNDBankData *bank, int prgNo, int key, const struct SNDInstData *inst) in SND_WriteInstData() argument
354 SDK_NULL_ASSERT(bank); in SND_WriteInstData()
361 if (prgNo >= bank->instCount) in SND_WriteInstData()
367 instOffset = bank->instOffset[prgNo]; // Note: Read from MainMemory in SND_WriteInstData()
380 SNDInstParam *param = (SNDInstParam *)((u8 *)bank + instOffset); in SND_WriteInstData()
382 bank->instOffset[prgNo] = (instOffset << 8) | inst->type; in SND_WriteInstData()
389 SNDDrumSet *drumSet = (SNDDrumSet *)((u8 *)bank + instOffset); in SND_WriteInstData()
406 SNDKeySplit *keySplit = (SNDKeySplit *)((u8 *)bank + instOffset); in SND_WriteInstData()
431 DC_StoreRange(bank, bank->fileHeader.fileSize); in SND_WriteInstData()
446 SNDInstPos SND_GetFirstInstDataPos(const SNDBankData *bank) in SND_GetFirstInstDataPos() argument
450 SDK_NULL_ASSERT(bank); in SND_GetFirstInstDataPos()
452 (void)bank; in SND_GetFirstInstDataPos()
471 BOOL SND_GetNextInstData(const SNDBankData *bank, SNDInstData *inst, SNDInstPos *pos) in SND_GetNextInstData() argument
473 SDK_NULL_ASSERT(bank); in SND_GetNextInstData()
477 for (; pos->prgNo < bank->instCount; pos->prgNo++, pos->index = 0) in SND_GetNextInstData()
479 u32 instOffset = bank->instOffset[pos->prgNo]; in SND_GetNextInstData()
491 const SNDInstParam *param = (const SNDInstParam *)((u8 *)bank + instOffset); in SND_GetNextInstData()
499 const SNDDrumSet *drumSet = (const SNDDrumSet *)((u8 *)bank + instOffset); in SND_GetNextInstData()
511 const SNDKeySplit *keySplit = (const SNDKeySplit *)((u8 *)bank + instOffset); in SND_GetNextInstData()
629 int key, int velocity, s32 length, const SNDBankData *bank, const SNDInstData *inst) in SND_NoteOn() argument
653 wave_data = GetWaveData(bank, inst->param.wave[1], inst->param.wave[0]); in SND_NoteOn()
722 static const SNDWaveData *GetWaveData(const SNDBankData *bank, int waveArcNo, int waveIndex) in GetWaveData() argument
728 arc = bank->waveArcLink[waveArcNo].waveArc; in GetWaveData()