예제 #1
0
//---------------------------------------------------------------------------------
void VblankHandler(void) {
//---------------------------------------------------------------------------------

    u32 i;
    uint8 ct[sizeof(IPC->time.curtime)];

    //sound code  :)
    TransferSound *snd = IPC->soundData;
    IPC->soundData = 0;

    rtcGetTime((uint8 *)ct);
    BCDToInteger((uint8 *)&(ct[1]), 7);

    for(i=0; i<sizeof(ct); i++) {
        IPC->time.curtime[i] = ct[i];
    }

    if (0 != snd) {

        for (i=0; i<snd->count; i++) {
            s32 chan = getFreeSoundChannel();

            if (chan >= 0) {
                startSound(snd->data[i].rate, snd->data[i].data, snd->data[i].len, chan, snd->data[i].vol, snd->data[i].pan, snd->data[i].format);
            }
        }
    }
    Wifi_Update(); // update wireless in vblank
}
예제 #2
0
extern "C" void ds_playsound(void *data, int length, int samplerate)
{
	s32 channel = getFreeSoundChannel();
//	ARM7_PRINTF("using channel %d\n", channel);
	
	if (channel != -1)
		startSound(samplerate, data, length, channel, 127, 64, 0, false);
}
예제 #3
0
//---------------------------------------------------------------------------------
void VblankHandler(void) {
//---------------------------------------------------------------------------------

	u32 i;


	//sound code  :)
	TransferSound *snd = IPC->soundData;
	IPC->soundData = 0;

	if (0 != snd) {

		for (i=0; i<snd->count; i++) {
			s32 chan = getFreeSoundChannel();

			if (chan >= 0) {
				startSound(snd->data[i].rate, snd->data[i].data, snd->data[i].len, chan, snd->data[i].vol, snd->data[i].pan, snd->data[i].format);
			}
		}
	}

	CommandProcessCommands();
}