diff options
Diffstat (limited to 'apps/dsp.c')
-rw-r--r-- | apps/dsp.c | 9 |
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) | |||
1112 | int dsp_process(struct dsp_config *dsp, char *dst, const char *src[], int count) | 1112 | int 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) |