The last of my audiolib changes for now. These change no functionality.

git-svn-id: https://svn.eduke32.com/eduke32@7127 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2018-10-25 23:33:21 +00:00
parent 890341d3af
commit 28bed56348
7 changed files with 69 additions and 62 deletions

View file

@ -110,9 +110,9 @@ typedef struct VoiceNode
struct VoiceNode *next; struct VoiceNode *next;
struct VoiceNode *prev; struct VoiceNode *prev;
playbackstatus (*GetSound)(struct VoiceNode *voice); playbackstatus (*GetSound)(struct VoiceNode *);
void (*mix)(struct VoiceNode *voice, uint32_t length); void (*mix)(struct VoiceNode const *, uint32_t);
const char *sound; const char *sound;
@ -215,17 +215,17 @@ void MV_ReleaseXAVoice(VoiceNode *voice);
void MV_ReleaseXMPVoice(VoiceNode *voice); void MV_ReleaseXMPVoice(VoiceNode *voice);
// implemented in mix.c // implemented in mix.c
void MV_Mix16BitMono(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitMono(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitStereo(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitStereo(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitMono16(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitMono16(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitStereo16(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitStereo16(struct VoiceNode const *voice, uint32_t length);
void MV_16BitReverb( char const *src, char *dest, int16_t *volume, int32_t count ); void MV_16BitReverb(char const *src, char *dest, const int16_t *volume, int32_t count);
// implemented in mixst.c // implemented in mixst.c
void MV_Mix16BitMono8Stereo(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitMono8Stereo(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitStereo8Stereo(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitStereo8Stereo(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitMono16Stereo(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitMono16Stereo(struct VoiceNode const *voice, uint32_t length);
void MV_Mix16BitStereo16Stereo(struct VoiceNode *voice, uint32_t length); void MV_Mix16BitStereo16Stereo(struct VoiceNode const *voice, uint32_t length);
extern char *MV_MixDestination; // pointer to the next output sample extern char *MV_MixDestination; // pointer to the next output sample
extern uint32_t MV_MixPosition; // return value of where the source pointer got to extern uint32_t MV_MixPosition; // return value of where the source pointer got to

View file

@ -71,7 +71,7 @@ static playbackstatus MV_GetNextVOCBlock(VoiceNode *voice)
return KeepPlaying; return KeepPlaying;
} }
const uint8_t *ptr = (uint8_t const *)voice->NextBlock; auto *ptr = (uint8_t const *)voice->NextBlock;
voice->Paused = FALSE; voice->Paused = FALSE;

View file

@ -21,18 +21,18 @@
#include "_multivc.h" #include "_multivc.h"
/* /*
position = offset of starting sample in start
rate = resampling increment
start = sound data
length = count of samples to mix length = count of samples to mix
position = offset of starting sample in source
rate = resampling increment
volume = direct volume adjustment, 1.0 = no change volume = direct volume adjustment, 1.0 = no change
*/ */
// 8-bit mono source, 16-bit mono output // 8-bit mono source, 16-bit mono output
void MV_Mix16BitMono(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitMono(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (uint8_t const *)voice->sound; auto *const source = (uint8_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -52,10 +52,11 @@ void MV_Mix16BitMono(struct VoiceNode *voice, uint32_t length)
} }
// 8-bit mono source, 16-bit stereo output // 8-bit mono source, 16-bit stereo output
void MV_Mix16BitStereo(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitStereo(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (uint8_t const *)voice->sound; auto *const source = (uint8_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -77,10 +78,11 @@ void MV_Mix16BitStereo(struct VoiceNode *voice, uint32_t length)
} }
// 16-bit mono source, 16-bit mono output // 16-bit mono source, 16-bit mono output
void MV_Mix16BitMono16(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitMono16(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (int16_t const *)voice->sound; auto *const source = (int16_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -104,10 +106,11 @@ void MV_Mix16BitMono16(struct VoiceNode *voice, uint32_t length)
} }
// 16-bit mono source, 16-bit stereo output // 16-bit mono source, 16-bit stereo output
void MV_Mix16BitStereo16(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitStereo16(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (int16_t const *)voice->sound; auto *const source = (int16_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -134,10 +137,10 @@ void MV_Mix16BitStereo16(struct VoiceNode *voice, uint32_t length)
MV_MixDestination = (char *)dest; MV_MixDestination = (char *)dest;
} }
void MV_16BitReverb(char const *src, char *dest, int16_t *volume, int32_t count) void MV_16BitReverb(char const *src, char *dest, const int16_t *volume, int32_t count)
{ {
auto input = (uint16_t const *)src; auto *input = (uint16_t const *)src;
int16_t *output = (int16_t *)dest; auto *output = (int16_t *)dest;
do do
{ {
@ -150,8 +153,8 @@ void MV_16BitReverb(char const *src, char *dest, int16_t *volume, int32_t count)
int sample0h = (sample0 >> 8) ^ 128; int sample0h = (sample0 >> 8) ^ 128;
#endif #endif
sample0l = ((int16_t *)volume)[sample0l] >> 8; sample0l = (volume)[sample0l] >> 8;
sample0h = ((int16_t *)volume)[sample0h]; sample0h = (volume)[sample0h];
*output++ = (int16_t)(sample0l + sample0h + 128); *output++ = (int16_t)(sample0l + sample0h + 128);
} while (--count > 0); } while (--count > 0);
} }

View file

@ -28,10 +28,11 @@
*/ */
// 8-bit stereo source, 16-bit mono output // 8-bit stereo source, 16-bit mono output
void MV_Mix16BitMono8Stereo(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitMono8Stereo(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (uint8_t const *)voice->sound; auto *const source = (uint8_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -53,10 +54,11 @@ void MV_Mix16BitMono8Stereo(struct VoiceNode *voice, uint32_t length)
} }
// 8-bit stereo source, 16-bit stereo output // 8-bit stereo source, 16-bit stereo output
void MV_Mix16BitStereo8Stereo(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitStereo8Stereo(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (uint8_t const *)voice->sound; auto *const source = (uint8_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -79,10 +81,11 @@ void MV_Mix16BitStereo8Stereo(struct VoiceNode *voice, uint32_t length)
} }
// 16-bit stereo source, 16-bit mono output // 16-bit stereo source, 16-bit mono output
void MV_Mix16BitMono16Stereo(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitMono16Stereo(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (int16_t const *)voice->sound; auto *const source = (int16_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;
@ -110,10 +113,11 @@ void MV_Mix16BitMono16Stereo(struct VoiceNode *voice, uint32_t length)
} }
// 16-bit stereo source, 16-bit stereo output // 16-bit stereo source, 16-bit stereo output
void MV_Mix16BitStereo16Stereo(struct VoiceNode *voice, uint32_t length) void MV_Mix16BitStereo16Stereo(struct VoiceNode const * const voice, uint32_t length)
{ {
auto const source = (int16_t const *)voice->sound; auto *const source = (int16_t const *)voice->sound;
int16_t * dest = (int16_t *)MV_MixDestination; auto * dest = (int16_t *)MV_MixDestination;
uint32_t position = voice->position; uint32_t position = voice->position;
uint32_t const rate = voice->RateScale; uint32_t const rate = voice->RateScale;
float const volume = voice->volume; float const volume = voice->volume;

View file

@ -136,7 +136,7 @@ static void MV_GetVorbisCommentLoops(VoiceNode *voice, vorbis_comment *vc)
static size_t read_vorbis(void *ptr, size_t size, size_t nmemb, void *datasource) static size_t read_vorbis(void *ptr, size_t size, size_t nmemb, void *datasource)
{ {
vorbis_data *vorb = (vorbis_data *)datasource; auto *vorb = (vorbis_data *)datasource;
errno = 0; errno = 0;
@ -169,7 +169,7 @@ static size_t read_vorbis(void *ptr, size_t size, size_t nmemb, void *datasource
static int seek_vorbis(void *datasource, ogg_int64_t offset, int whence) static int seek_vorbis(void *datasource, ogg_int64_t offset, int whence)
{ {
vorbis_data *vorb = (vorbis_data *)datasource; auto *vorb = (vorbis_data *)datasource;
switch (whence) switch (whence)
{ {
@ -194,7 +194,7 @@ static int close_vorbis(void *datasource)
static long tell_vorbis(void *datasource) static long tell_vorbis(void *datasource)
{ {
vorbis_data *vorb = (vorbis_data *)datasource; auto *vorb = (vorbis_data *)datasource;
return vorb->pos; return vorb->pos;
} }
@ -204,14 +204,14 @@ static ov_callbacks vorbis_callbacks = { read_vorbis, seek_vorbis, close_vorbis,
int32_t MV_GetVorbisPosition(VoiceNode *voice) int32_t MV_GetVorbisPosition(VoiceNode *voice)
{ {
vorbis_data * vd = (vorbis_data *) voice->rawdataptr; auto * vd = (vorbis_data *) voice->rawdataptr;
return ov_pcm_tell(&vd->vf); return ov_pcm_tell(&vd->vf);
} }
void MV_SetVorbisPosition(VoiceNode *voice, int32_t position) void MV_SetVorbisPosition(VoiceNode *voice, int32_t position)
{ {
vorbis_data * vd = (vorbis_data *) voice->rawdataptr; auto * vd = (vorbis_data *) voice->rawdataptr;
ov_pcm_seek(&vd->vf, position); ov_pcm_seek(&vd->vf, position);
} }
@ -227,7 +227,7 @@ static playbackstatus MV_GetNextVorbisBlock(VoiceNode *voice)
int bitstream; int bitstream;
int32_t bytesread = 0; int32_t bytesread = 0;
vorbis_data *vd = (vorbis_data *)voice->rawdataptr; auto *vd = (vorbis_data *)voice->rawdataptr;
do do
{ {
#ifdef USING_TREMOR #ifdef USING_TREMOR
@ -370,7 +370,7 @@ int32_t MV_PlayVorbis(char *ptr, uint32_t length, int32_t loopstart, int32_t loo
return MV_Error; return MV_Error;
} }
vorbis_data *vd = (vorbis_data *)calloc(1, sizeof(vorbis_data)); auto *vd = (vorbis_data *)calloc(1, sizeof(vorbis_data));
if (!vd) if (!vd)
{ {
@ -459,7 +459,7 @@ void MV_ReleaseVorbisVoice( VoiceNode * voice )
if (voice->wavetype != FMT_VORBIS) if (voice->wavetype != FMT_VORBIS)
return; return;
vorbis_data *vd = (vorbis_data *)voice->rawdataptr; auto *vd = (vorbis_data *)voice->rawdataptr;
ov_clear(&vd->vf); ov_clear(&vd->vf);
free(vd); free(vd);

View file

@ -129,13 +129,13 @@ static int8_t getSoundData(int8_t *buf, int32_t unit, int32_t sample)
return ret; return ret;
} }
static int8_t getFilter(int8_t *buf, int32_t unit) static int8_t getFilter(const int8_t *buf, int32_t unit)
{ {
return (*(buf + 4 + unit) >> 4) & 0x03; return (*(buf + 4 + unit) >> 4) & 0x03;
} }
static int8_t getRange(int8_t *buf, int32_t unit) static int8_t getRange(const int8_t *buf, int32_t unit)
{ {
return *(buf + 4 + unit) & 0x0F; return *(buf + 4 + unit) & 0x0F;
} }
@ -276,13 +276,13 @@ static void decodeSoundSectStereo(XASector *ssct, xa_data * xad)
int32_t MV_GetXAPosition(VoiceNode *voice) int32_t MV_GetXAPosition(VoiceNode *voice)
{ {
xa_data * xad = (xa_data *) voice->rawdataptr; auto * xad = (xa_data *) voice->rawdataptr;
return xad->pos; return xad->pos;
} }
void MV_SetXAPosition(VoiceNode *voice, int32_t position) void MV_SetXAPosition(VoiceNode *voice, int32_t position)
{ {
xa_data * xad = (xa_data *) voice->rawdataptr; auto * xad = (xa_data *) voice->rawdataptr;
if (position < XA_DATA_START || (size_t)position >= xad->length) if (position < XA_DATA_START || (size_t)position >= xad->length)
{ {
@ -304,7 +304,7 @@ static playbackstatus MV_GetNextXABlock
VoiceNode *voice VoiceNode *voice
) )
{ {
xa_data * xad = (xa_data *) voice->rawdataptr; auto * xad = (xa_data *) voice->rawdataptr;
XASector ssct; XASector ssct;
int coding; int coding;
@ -477,7 +477,7 @@ int32_t MV_PlayXA(char *ptr, uint32_t length, int32_t loopstart, int32_t loopend
void MV_ReleaseXAVoice( VoiceNode * voice ) void MV_ReleaseXAVoice( VoiceNode * voice )
{ {
xa_data * xad = (xa_data *) voice->rawdataptr; auto * xad = (xa_data *) voice->rawdataptr;
if (voice->wavetype != FMT_XA) { if (voice->wavetype != FMT_XA) {
return; return;

View file

@ -20,19 +20,19 @@ typedef struct {
int32_t MV_GetXMPPosition(VoiceNode *voice) int32_t MV_GetXMPPosition(VoiceNode *voice)
{ {
xmp_data * xmpd = (xmp_data *)voice->rawdataptr; auto * xmpd = (xmp_data *)voice->rawdataptr;
return xmpd->time; return xmpd->time;
} }
void MV_SetXMPPosition(VoiceNode *voice, int32_t position) void MV_SetXMPPosition(VoiceNode *voice, int32_t position)
{ {
xmp_data * xmpd = (xmp_data *)voice->rawdataptr; auto * xmpd = (xmp_data *)voice->rawdataptr;
xmp_seek_time(xmpd->context, position); xmp_seek_time(xmpd->context, position);
} }
static playbackstatus MV_GetNextXMPBlock(VoiceNode *voice) static playbackstatus MV_GetNextXMPBlock(VoiceNode *voice)
{ {
xmp_data * xmpd = (xmp_data *)voice->rawdataptr; auto * xmpd = (xmp_data *)voice->rawdataptr;
struct xmp_frame_info mi; struct xmp_frame_info mi;
if (xmp_play_frame(xmpd->context) != 0) if (xmp_play_frame(xmpd->context) != 0)
@ -187,7 +187,7 @@ int32_t MV_PlayXMP(char *ptr, uint32_t length, int32_t loopstart, int32_t loopen
void MV_ReleaseXMPVoice(VoiceNode * voice) void MV_ReleaseXMPVoice(VoiceNode * voice)
{ {
xmp_data * xmpd = (xmp_data *) voice->rawdataptr; auto * xmpd = (xmp_data *) voice->rawdataptr;
if (voice->wavetype != FMT_XMP) if (voice->wavetype != FMT_XMP)
return; return;