--- uae/src/sd-mme/sound.c 2018/04/24 16:42:38 1.1.1.1 +++ uae/src/sd-mme/sound.c 2018/04/24 17:17:11 1.1.1.5 @@ -1,17 +1,17 @@ - /* + /* * UAE - The Un*x Amiga Emulator - * + * * Support for Digital Unix/MME - * + * * Copyright 1997 Marcus Sundberg */ #define MME_SOUND_C #include "sysconfig.h" #include "sysdeps.h" -#include "config.h" #include "options.h" #include "memory.h" +#include "events.h" #include "custom.h" #include "audio.h" #include "gensound.h" @@ -88,15 +88,15 @@ int init_sound (void) fprintf(stderr, "Sound buffer size %d out of range.\n", currprefs.sound_maxbsiz); currprefs.sound_maxbsiz = 8192; } - + sndbufsize = currprefs.sound_maxbsiz; dspbits = currprefs.sound_bits; rate = currprefs.sound_freq; - + channels = 1; - + if((waveformat = (LPPCMWAVEFORMAT) mmeAllocMem(sizeof(PCMWAVEFORMAT))) == NULL ) { fprintf(stderr, "Failed to allocate PCMWAVEFORMAT struct\n"); @@ -106,13 +106,13 @@ int init_sound (void) waveformat->wf.nChannels = channels; waveformat->wBitsPerSample = dspbits; waveformat->wf.wFormatTag = WAVE_FORMAT_PCM; - + bytes_per_sample = waveformat->wf.nChannels * (waveformat->wBitsPerSample/8); waveformat->wf.nBlockAlign = bytes_per_sample; waveformat->wf.nAvgBytesPerSec = bytes_per_sample * waveformat->wf.nSamplesPerSec; - + /* Open the audio device with desired rate/format */ status = waveOutOpen( &mme_handle, WAVE_MAPPER, @@ -121,12 +121,12 @@ int init_sound (void) (unsigned int)NULL, CALLBACK_FUNCTION | WAVE_OPEN_SHAREABLE ); mmeFreeMem(waveformat); - + if(status != MMSYSERR_NOERROR) { fprintf(stderr, "waveOutOpen failed - status = %d\n", status); return 0; } - + /* Allocate wave header for use in write */ if((WaveHeader = (LPWAVEHDR) mmeAllocMem(sizeof(WAVEHDR))) == NULL ) { @@ -141,7 +141,7 @@ int init_sound (void) return 0; } sndbuffer = mme_audiobuf; - sample_evtime = (long)maxhpos * maxvpos * 50 / rate; + obtained_freq = rate; if (dspbits == 16) { init_sound_table16 (); @@ -160,11 +160,11 @@ int init_sound (void) __inline__ void check_sound_buffers (void) { if (((char *)sndbufpt - (char *)mme_sndbufpt) < sndbufsize) - return; + return 0; if (mmeCheckForCallbacks()) mmeProcessCallbacks(); if (mme_free_bufs >= SOUND_NUMBUF) - return; + return 0; WaveHeader->lpData = (LPSTR)mme_sndbufpt; WaveHeader->dwBufferLength = ((char *)sndbufpt - (char *)mme_sndbufpt); mme_nextbuf++; @@ -177,4 +177,5 @@ __inline__ void check_sound_buffers (voi if (waveOutWrite(mme_handle, WaveHeader, sizeof(WAVEHDR)) == MMSYSERR_NOERROR) mme_free_bufs++; + return 1; }