Files
OpenTXW81X/sdk/lib/sonic/sonic_process.c
2025-08-27 09:51:58 +01:00

62 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "sonic_process.h"
#define AUDIO_LEN 1024
sonicStream sonicStream_init(int32_t samplerate, int32_t channels, float speed, float pitch)
{
sonicStream stream;
stream = sonicCreateStream(samplerate, channels);
if(stream == NULL) {
printf("sonicStream_init err!\n");
return NULL;
}
sonicSetSpeed(stream, speed);
sonicSetPitch(stream, pitch);
sonicSetRate(stream, 1);
sonicSetVolume(stream, 1);
sonicSetQuality(stream, 0);\
os_printf("sonicStream_init succwss,samplingrate:%d,channel:%d,speed:%f,pitch:%f",samplerate,channels,speed,pitch);
return stream;
}
void sonicStream_deinit(sonicStream stream)
{
sonicDestroyStream(stream);
}
void sonicStream_input_data(sonicStream stream,short *inBuffer,int samplesRead)
{
sonicWriteShortToStream(stream, inBuffer, samplesRead);
}
int sonicStream_output_data(sonicStream stream,short *outBuffer,int maxlen)
{
int samplesWritten;
samplesWritten = sonicReadShortFromStream(stream, outBuffer,maxlen);
return samplesWritten;
}
int sonicStream_output_available(sonicStream stream)
{
return get_sonicReadLen(stream);
}
void sonic_flush_stream(sonicStream stream)
{
sonicFlushStream(stream);
}
void sonicStream_set_pitch(sonicStream stream, float pitch)
{
sonicSetPitch(stream, pitch);
}
void sonicStream_set_speed(sonicStream stream, float speed)
{
sonicSetSpeed(stream, speed);
}