new trace logs and optimizations

This commit is contained in:
Joshua Reisenauer
2016-04-26 16:50:07 -07:00
parent 3104d3d6cd
commit 299ae7a4bd
2 changed files with 23 additions and 21 deletions

View File

@ -121,51 +121,47 @@ void jar_xm_free_context(jar_xm_context_t*);
/** Play the module and put the sound samples in an output buffer.
*
* @param output buffer of 2*numsamples elements
* @param output buffer of 2*numsamples elements (A left and right value for each sample)
* @param numsamples number of samples to generate
*/
void jar_xm_generate_samples(jar_xm_context_t*, float* output, size_t numsamples);
/** Play the module, resample from 32 bit to 16 bit, and put the sound samples in an output buffer.
*
* @param output buffer of 2*numsamples elements
* @param output buffer of 2*numsamples elements (A left and right value for each sample)
* @param numsamples number of samples to generate
*/
void jar_xm_generate_samples_16bit(jar_xm_context_t* ctx, short* output, size_t numsamples)
{
float* musicBuffer = malloc((2*numsamples)*sizeof(float));
short* musicBuffer2 = malloc((2*numsamples)*sizeof(short));
jar_xm_generate_samples(ctx, musicBuffer, numsamples);
int x;
for(x=0;x<2*numsamples;x++)
musicBuffer2[x] = musicBuffer[x] * SHRT_MAX;
if(output){
int x;
for(x=0;x<2*numsamples;x++)
output[x] = musicBuffer[x] * SHRT_MAX;
}
memcpy(output, musicBuffer2, (2*numsamples)*sizeof(short));
free(musicBuffer);
free(musicBuffer2);
}
/** Play the module, resample from 32 bit to 8 bit, and put the sound samples in an output buffer.
*
* @param output buffer of 2*numsamples elements
* @param output buffer of 2*numsamples elements (A left and right value for each sample)
* @param numsamples number of samples to generate
*/
void jar_xm_generate_samples_8bit(jar_xm_context_t* ctx, char* output, size_t numsamples)
{
float* musicBuffer = malloc((2*numsamples)*sizeof(float));
char* musicBuffer2 = malloc((2*numsamples)*sizeof(char));
jar_xm_generate_samples(ctx, musicBuffer, numsamples);
int x;
for(x=0;x<2*numsamples;x++)
musicBuffer2[x] = musicBuffer[x] * CHAR_MAX;
if(output){
int x;
for(x=0;x<2*numsamples;x++)
output[x] = musicBuffer[x] * CHAR_MAX;
}
memcpy(output, musicBuffer2, (2*numsamples)*sizeof(char));
free(musicBuffer);
free(musicBuffer2);
}