summaryrefslogtreecommitdiff
path: root/apps/dsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dsp.c')
-rw-r--r--apps/dsp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index 3c2d7f63b1..5bbbe08ac2 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -1112,6 +1112,7 @@ int dsp_callback(int msg, intptr_t param)
1112int dsp_process(struct dsp_config *dsp, char *dst, const char *src[], int count) 1112int dsp_process(struct dsp_config *dsp, char *dst, const char *src[], int count)
1113{ 1113{
1114 int32_t *tmp[2]; 1114 int32_t *tmp[2];
1115 long last_yield = current_tick;
1115 int written = 0; 1116 int written = 0;
1116 int samples; 1117 int samples;
1117 1118
@@ -1159,7 +1160,13 @@ int dsp_process(struct dsp_config *dsp, char *dst, const char *src[], int count)
1159 1160
1160 written += samples; 1161 written += samples;
1161 dst += samples * sizeof (int16_t) * 2; 1162 dst += samples * sizeof (int16_t) * 2;
1162 yield(); 1163
1164 /* yield at least once each tick */
1165 if (current_tick > last_yield)
1166 {
1167 yield();
1168 last_yield = current_tick;
1169 }
1163 } 1170 }
1164 1171
1165#if defined(CPU_COLDFIRE) 1172#if defined(CPU_COLDFIRE)