void es_getCursor(sdl_data *sd, int len,char *buff) { char *bp, *start; SDL_Cursor *c; int sendlen; bp = start = sdl_get_temp_buff(sd, 8); c = SDL_GetCursor(); PUSHGLPTR(c, bp); sendlen = bp - start; sdl_send(sd, sendlen); }
void es_joystick_open(sdl_data *sd, int len,char *buff) { int sendlen; char *bp, *start; SDL_Joystick *joy; int index; bp = buff; index = get8(bp); bp = start = sdl_get_temp_buff(sd, 8); if((joy = SDL_JoystickOpen(index)) != NULL) { PUSHGLPTR(joy, bp); } sendlen = bp - start; sdl_send(sd, sendlen); }
void es_convertAudio(sdl_data *sd, int len, char *buff) { char *bp, *start; void *mptr; Uint16 oformat, nformat; Uint8 ochannels, nchannels; int ofreq, nfreq, osize, nsize; SDL_AudioCVT wav_cvt; int sendlen; bp = buff; oformat = get16be(bp); ochannels = get8(bp); ofreq = get32be(bp); nformat = get16be(bp); nchannels = get8(bp); nfreq = get32be(bp); POPGLPTR(mptr, bp); osize = get32be(bp); bp = start = sdl_getbuff(sd, 12); /* Build AudioCVT */ if(SDL_BuildAudioCVT(&wav_cvt,oformat, ochannels, ofreq, nformat, nchannels, nfreq) >= 0) { /* Setup for conversion */ nsize = osize*wav_cvt.len_mult; wav_cvt.buf=(Uint8 *)malloc(nsize); if(wav_cvt.buf != NULL) { wav_cvt.len=osize; memcpy(wav_cvt.buf, mptr, osize); if (SDL_ConvertAudio(&wav_cvt) >= 0) { PUSHGLPTR(wav_cvt.buf, bp); put32be(bp, nsize); } } } sendlen = (int) (bp - start); sdl_send(sd, sendlen); }
void es_createCursor(sdl_data *sd, int len, char *bp) { int sendlen; char *start; Uint8* data; Uint8* mask; int w,h, hotx, hoty, ds; SDL_Cursor* cursor; w = * (unsigned short *) bp; bp += sizeof(unsigned short); h = * (unsigned short *) bp; bp += sizeof(unsigned short); hotx = * (unsigned short *) bp; bp += sizeof(unsigned short); hoty = * (unsigned short *) bp; bp += sizeof(unsigned short); ds = * (unsigned short *) bp; bp += sizeof(unsigned short); data = (Uint8*) bp; mask = data + ds; cursor = SDL_CreateCursor(data, mask, w, h, hotx, hoty); bp = start = sdl_get_temp_buff(sd, 8); PUSHGLPTR(cursor, bp); sendlen = bp - start; sdl_send(sd, sendlen); }
void es_loadWAV(sdl_data *sd, int len, char *bp) { int sendlen; char *name, *start; SDL_AudioSpec obtained; Uint8 * ptr; Uint32 blen; name = bp; bp = start = sdl_get_temp_buff(sd, 28); if(NULL != SDL_LoadWAV(name, &obtained, &ptr, &blen)) { put32be(bp, obtained.freq); put16be(bp, obtained.format); put8(bp, obtained.channels); put8(bp, obtained.silence); put16be(bp, obtained.samples); put16be(bp, obtained.padding); put32be(bp, obtained.size); PUSHGLPTR(ptr, bp); put32be(bp, blen); } sendlen = (int) (bp - start); sdl_send(sd, sendlen); }