summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-06-16 00:59:24 +0000
committerThomas Martitz <kugel@rockbox.org>2009-06-16 00:59:24 +0000
commitcb57a568e8dc9def607dc9ab27f515309bd13841 (patch)
tree45e01c7b2d8b15c6c8fbaef8139d097c95df7e92 /apps
parent3866755d28f35bdaf29147799009b1d0ac89d1d7 (diff)
downloadrockbox-cb57a568e8dc9def607dc9ab27f515309bd13841.zip
rockbox-cb57a568e8dc9def607dc9ab27f515309bd13841.tar.gz
rockbox-cb57a568e8dc9def607dc9ab27f515309bd13841.tar.bz2
rockbox-cb57a568e8dc9def607dc9ab27f515309bd13841.tar.xz
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
Diffstat (limited to 'apps')
-rw-r--r--apps/dsp.c9
-rw-r--r--apps/tdspeed.c23
2 files changed, 18 insertions, 14 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index 496e333..a68b861 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -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
diff --git a/apps/tdspeed.c b/apps/tdspeed.c
index f365e95..501c1d8 100644
--- a/apps/tdspeed.c
+++ b/apps/tdspeed.c
@@ -28,6 +28,7 @@
#include "debug.h"
#include "system.h"
#include "tdspeed.h"
+#include "settings.h"
#define assert(cond)
@@ -56,15 +57,18 @@ static int32_t *outbuf[2] = { NULL, NULL };
void tdspeed_init()
{
- /* Allocate buffers */
- if (overlap_buffer[0] == NULL)
- overlap_buffer[0] = (int32_t *) buffer_alloc(FIXED_BUFSIZE * sizeof(int32_t));
- if (overlap_buffer[1] == NULL)
- overlap_buffer[1] = (int32_t *) buffer_alloc(FIXED_BUFSIZE * sizeof(int32_t));
- if (outbuf[0] == NULL)
- 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));
+ if (global_settings.timestretch_enabled)
+ {
+ /* Allocate buffers */
+ if (overlap_buffer[0] == NULL)
+ overlap_buffer[0] = (int32_t *) buffer_alloc(FIXED_BUFSIZE * sizeof(int32_t));
+ if (overlap_buffer[1] == NULL)
+ overlap_buffer[1] = (int32_t *) buffer_alloc(FIXED_BUFSIZE * sizeof(int32_t));
+ if (outbuf[0] == NULL)
+ 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;
}
+