mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
Get rid of tdspeed_enabled in struct dsp_config and use the global_settings member instead. That one needs to be checked in tdspeed_init() as well, else the buffers are always allocated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21305 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
3866755d28
commit
cb57a568e8
2 changed files with 18 additions and 14 deletions
|
@ -161,7 +161,6 @@ struct dsp_config
|
|||
int sample_depth;
|
||||
int sample_bytes;
|
||||
int stereo_mode;
|
||||
bool tdspeed_enabled; /* User has enabled timestretch */
|
||||
int tdspeed_percent; /* Speed % */
|
||||
bool tdspeed_active; /* Timestretch is in use */
|
||||
int frac_bits;
|
||||
|
@ -266,12 +265,12 @@ void sound_set_pitch(int permille)
|
|||
AUDIO_DSP.codec_frequency);
|
||||
}
|
||||
|
||||
void tdspeed_setup(struct dsp_config *dspc)
|
||||
static void tdspeed_setup(struct dsp_config *dspc)
|
||||
{
|
||||
dspc->tdspeed_active = false;
|
||||
if (dspc == &AUDIO_DSP)
|
||||
{
|
||||
if (!dspc->tdspeed_enabled)
|
||||
if(!dsp_timestretch_enabled())
|
||||
return;
|
||||
if (dspc->tdspeed_percent == 0)
|
||||
dspc->tdspeed_percent = 100;
|
||||
|
@ -304,7 +303,7 @@ void dsp_timestretch_enable(bool enable)
|
|||
if (big_sample_buf_count < 0)
|
||||
big_sample_buf_count = 0;
|
||||
}
|
||||
AUDIO_DSP.tdspeed_enabled = enable;
|
||||
global_settings.timestretch_enabled = enable;
|
||||
tdspeed_setup(&AUDIO_DSP);
|
||||
}
|
||||
|
||||
|
@ -321,7 +320,7 @@ int dsp_get_timestretch()
|
|||
|
||||
bool dsp_timestretch_enabled()
|
||||
{
|
||||
return (AUDIO_DSP.tdspeed_enabled && big_sample_buf_count > 0);
|
||||
return (global_settings.timestretch_enabled && big_sample_buf_count > 0);
|
||||
}
|
||||
|
||||
/* Convert count samples to the internal format, if needed. Updates src
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "debug.h"
|
||||
#include "system.h"
|
||||
#include "tdspeed.h"
|
||||
#include "settings.h"
|
||||
|
||||
#define assert(cond)
|
||||
|
||||
|
@ -56,6 +57,8 @@ static int32_t *outbuf[2] = { NULL, NULL };
|
|||
|
||||
void tdspeed_init()
|
||||
{
|
||||
if (global_settings.timestretch_enabled)
|
||||
{
|
||||
/* Allocate buffers */
|
||||
if (overlap_buffer[0] == NULL)
|
||||
overlap_buffer[0] = (int32_t *) buffer_alloc(FIXED_BUFSIZE * sizeof(int32_t));
|
||||
|
@ -65,6 +68,7 @@ void tdspeed_init()
|
|||
outbuf[0] = (int32_t *) buffer_alloc(TDSPEED_OUTBUFSIZE * sizeof(int32_t));
|
||||
if (outbuf[1] == NULL)
|
||||
outbuf[1] = (int32_t *) buffer_alloc(TDSPEED_OUTBUFSIZE * sizeof(int32_t));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -327,3 +331,4 @@ int tdspeed_doit(int32_t *src[], int count)
|
|||
src[1] = outbuf[1];
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue