diff options
author | Brandon Low <lostlogic@rockbox.org> | 2007-10-27 04:16:41 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2007-10-27 04:16:41 +0000 |
commit | 14b6f437bbaaddaa47e6fb991a57c74e691b8c2b (patch) | |
tree | ff69bc062a12c23f459dc1d67ccd5cae2789fc47 /apps/buffering.c | |
parent | 404c6fbdb288de0e88eeb7484e2ab524ef438871 (diff) | |
download | rockbox-14b6f437bbaaddaa47e6fb991a57c74e691b8c2b.tar.gz rockbox-14b6f437bbaaddaa47e6fb991a57c74e691b8c2b.zip |
Make buffering initialization versus reset separate functions to avoid double initializing threads or mutexes more easily
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15327 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/buffering.c')
-rw-r--r-- | apps/buffering.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/apps/buffering.c b/apps/buffering.c index b8fd16f870..08726a5582 100644 --- a/apps/buffering.c +++ b/apps/buffering.c | |||
@@ -1189,8 +1189,23 @@ void buffering_thread(void) | |||
1189 | } | 1189 | } |
1190 | } | 1190 | } |
1191 | 1191 | ||
1192 | void buffering_init(void) { | ||
1193 | mutex_init(&llist_mutex); | ||
1194 | |||
1195 | conf_filechunk = BUFFERING_DEFAULT_FILECHUNK; | ||
1196 | conf_watermark = BUFFERING_DEFAULT_WATERMARK; | ||
1197 | |||
1198 | buffering_thread_p = create_thread( buffering_thread, buffering_stack, | ||
1199 | sizeof(buffering_stack), 0, | ||
1200 | buffering_thread_name IF_PRIO(, PRIORITY_BUFFERING) | ||
1201 | IF_COP(, CPU)); | ||
1202 | |||
1203 | queue_init(&buffering_queue, true); | ||
1204 | queue_enable_queue_send(&buffering_queue, &buffering_queue_sender_list); | ||
1205 | } | ||
1206 | |||
1192 | /* Initialise the buffering subsystem */ | 1207 | /* Initialise the buffering subsystem */ |
1193 | bool buffering_init(char *buf, size_t buflen) | 1208 | bool buffering_reset(char *buf, size_t buflen) |
1194 | { | 1209 | { |
1195 | if (!buf || !buflen) | 1210 | if (!buf || !buflen) |
1196 | return false; | 1211 | return false; |
@@ -1211,27 +1226,11 @@ bool buffering_init(char *buf, size_t buflen) | |||
1211 | buffer_callback_count = 0; | 1226 | buffer_callback_count = 0; |
1212 | memset(buffer_low_callback_funcs, 0, sizeof(buffer_low_callback_funcs)); | 1227 | memset(buffer_low_callback_funcs, 0, sizeof(buffer_low_callback_funcs)); |
1213 | 1228 | ||
1214 | mutex_init(&llist_mutex); | ||
1215 | |||
1216 | conf_filechunk = BUFFERING_DEFAULT_FILECHUNK; | ||
1217 | conf_watermark = BUFFERING_DEFAULT_WATERMARK; | ||
1218 | |||
1219 | /* Set the high watermark as 75% full...or 25% empty :) */ | 1229 | /* Set the high watermark as 75% full...or 25% empty :) */ |
1220 | #if MEM > 8 | 1230 | #if MEM > 8 |
1221 | high_watermark = 3*buflen / 4; | 1231 | high_watermark = 3*buflen / 4; |
1222 | #endif | 1232 | #endif |
1223 | 1233 | ||
1224 | if (buffering_thread_p == NULL) | ||
1225 | { | ||
1226 | buffering_thread_p = create_thread( buffering_thread, buffering_stack, | ||
1227 | sizeof(buffering_stack), 0, | ||
1228 | buffering_thread_name IF_PRIO(, PRIORITY_BUFFERING) | ||
1229 | IF_COP(, CPU)); | ||
1230 | |||
1231 | queue_init(&buffering_queue, true); | ||
1232 | queue_enable_queue_send(&buffering_queue, &buffering_queue_sender_list); | ||
1233 | } | ||
1234 | |||
1235 | return true; | 1234 | return true; |
1236 | } | 1235 | } |
1237 | 1236 | ||