#include "game_types.h"

/* Sound_UpdateChannelType @ 0x08010914 (real 76B) -- type-switched channel update dispatch. Mirrors src/matched/Sound_UpdateChannelType.c. */
/* Dispatches on word 0: 1 -> word reader, 0 -> byte reader, 2 -> halfword
   reader, 3 -> waveform loader (args reordered), else nothing. */
extern void Mem_ReadWord(int a, int b);
extern void Mem_ReadByte(int a, int b);
extern void Mem_ReadHalfword(int a, int b);
extern void Sound_LoadWaveform(int a, int b, int c);

void Sound_UpdateChannelType(int *p)
{
    switch (p[0]) {
    case 1:
        Mem_ReadWord(p[1], p[2]);
        break;
    case 0:
        Mem_ReadByte(p[1], p[2]);
        break;
    case 2:
        Mem_ReadHalfword(p[1], p[2]);
        break;
    case 3:
        Sound_LoadWaveform(p[2], p[1], p[3]);
        break;
    default:
        break;
    }
}
