Esempio n. 1
0
/* lee un entero */
int 
getint(const char mensaje[], ...)
{
#if 1
	int n, salir = 0;
	va_list ap;
		
	do	
	{
		va_start(ap, mensaje);
		vprintf(mensaje, ap);
		va_end(ap);
		if ( scanf("%d",&n) != 1)
			BORRA_BUFFER;
		else
			salir = finalBuffer();
		if ( !salir)
			printf("Invalid command\n");

	} while (! salir);
	return n;
#else
	char buf[100];
	printf("%s: ", mensaje);
	fflush(stdout);
//	fgets(buf, sizeof buf, stdout);
	gets(buf);
	return atoi(buf);
#endif
}
Esempio n. 2
0
void Upsampler::test()
{
    //
    // Make some audio data
    //
    int sampleRate = 48000;
    FrequencySweepAudioSource generator;
    AudioSampleBuffer sourceBuffer(1, sampleRate * 2);
    AudioSourceChannelInfo asi(&sourceBuffer, 0, sourceBuffer.getNumSamples());
    
    generator.prepareToPlay(sourceBuffer.getNumSamples(), sampleRate);
    generator.getNextAudioBlock(asi);
    generator.releaseResources();

    //
    // Create the upsampler
    //
    int const upsampleFactor = 4;
    Upsampler upsampler(sampleRate, sampleRate * upsampleFactor, 2.0);
    HeapBlock<double> upsamplerInputBuffer, upsamplerOutputBuffer;
    int upsamplerOutputBufferSamples = sourceBuffer.getNumSamples() * upsampleFactor * 2;
    
    upsamplerInputBuffer.allocate(sourceBuffer.getNumSamples(), true);
    upsamplerOutputBuffer.allocate(upsamplerOutputBufferSamples, true);
    
    //
    // Convert data to doubles
    //
    const float* source = sourceBuffer.getReadPointer(0);
    for (int i = 0; i < sourceBuffer.getNumSamples(); ++i)
    {
        upsamplerInputBuffer[i] = source[i];
    }
    
    //
    // Upsample
    //
    int upsampledCount = upsampler.upsample( upsamplerInputBuffer,
                                            upsamplerOutputBuffer,
                                            sourceBuffer.getNumSamples(),
                                            upsamplerOutputBufferSamples);
    
    //
    // Convert upsampled data to float
    //
    AudioSampleBuffer finalBuffer(1, upsamplerOutputBufferSamples);
    
    float *destination = finalBuffer.getWritePointer(0);
    for (int i = 0; i < upsampledCount; ++i)
    {
        destination[i] = (float)upsamplerOutputBuffer[i];
    }
    
    WriteWaveFile("upsample.wav", sampleRate * upsampleFactor, &finalBuffer, upsamplerOutputBufferSamples);
}
Esempio n. 3
0
/* lee un double */
double 
getdouble(const char mensaje[], ...)
{
	double n;
	int salir = 0;
	va_list ap;
		
	do	
	{
		va_start(ap, mensaje);
		vprintf(mensaje, ap);
		va_end(ap);

		if ( scanf("%lg",&n) != 1)
			BORRA_BUFFER;
		else
			salir = finalBuffer();
		if ( !salir)
			printf("\nIncorrect data\n");
	} while (! salir);
	return n;
}