summaryrefslogtreecommitdiff
path: root/apps/pcmbuf.c
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2006-04-05 04:27:16 +0000
committerBrandon Low <lostlogic@rockbox.org>2006-04-05 04:27:16 +0000
commit33a62e8a8ebe8039101a2333e71bc2c2de8e5225 (patch)
tree6bb12311091a554738f992ccdf76a60504b859eb /apps/pcmbuf.c
parent4ff8744e55da1cbd6da70033dd6cdcff50d55cae (diff)
downloadrockbox-33a62e8a8ebe8039101a2333e71bc2c2de8e5225.tar.gz
rockbox-33a62e8a8ebe8039101a2333e71bc2c2de8e5225.zip
More work on swcodec. No significant pcmbuf functions are called from the audio thread now. Do not be surprised if seek or skip behavior gets weird after this, but it Works for Me (TM), and is a significant step in the right direction.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9510 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/pcmbuf.c')
-rw-r--r--apps/pcmbuf.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c
index c0791987ce..7a261fecbe 100644
--- a/apps/pcmbuf.c
+++ b/apps/pcmbuf.c
@@ -61,8 +61,6 @@ static bool crossfade_init IDATA_ATTR;
61static size_t crossfade_pos IDATA_ATTR; 61static size_t crossfade_pos IDATA_ATTR;
62static size_t crossfade_rem IDATA_ATTR; 62static size_t crossfade_rem IDATA_ATTR;
63 63
64static struct mutex pcmbuf_mutex IDATA_ATTR;
65
66/* Crossfade modes. If CFM_CROSSFADE is selected, normal 64/* Crossfade modes. If CFM_CROSSFADE is selected, normal
67 * crossfader will activate. Selecting CFM_FLUSH is a special 65 * crossfader will activate. Selecting CFM_FLUSH is a special
68 * operation that only overwrites the pcm buffer without crossfading. 66 * operation that only overwrites the pcm buffer without crossfading.
@@ -297,7 +295,6 @@ bool pcmbuf_crossfade_init(bool manual_skip)
297 295
298void pcmbuf_play_stop(void) 296void pcmbuf_play_stop(void)
299{ 297{
300 mutex_lock(&pcmbuf_mutex);
301 /** Prevent a very tiny pop from happening by muting audio 298 /** Prevent a very tiny pop from happening by muting audio
302 * until dma has been initialized. */ 299 * until dma has been initialized. */
303 pcm_mute(true); 300 pcm_mute(true);
@@ -320,7 +317,6 @@ void pcmbuf_play_stop(void)
320 pcmbuf_set_boost_mode(false); 317 pcmbuf_set_boost_mode(false);
321 pcmbuf_boost(false); 318 pcmbuf_boost(false);
322 319
323 mutex_unlock(&pcmbuf_mutex);
324} 320}
325 321
326int pcmbuf_used_descs(void) { 322int pcmbuf_used_descs(void) {
@@ -356,7 +352,6 @@ static void pcmbuf_init_pcmbuffers(void) {
356 * ...CODECBUFFER|---------PCMBUF---------|GUARDBUF|DESCS| */ 352 * ...CODECBUFFER|---------PCMBUF---------|GUARDBUF|DESCS| */
357void pcmbuf_init(size_t bufsize) 353void pcmbuf_init(size_t bufsize)
358{ 354{
359 mutex_init(&pcmbuf_mutex);
360 pcmbuf_size = bufsize; 355 pcmbuf_size = bufsize;
361 pcmbuf_descsize = pcmbuf_descs()*sizeof(struct pcmbufdesc); 356 pcmbuf_descsize = pcmbuf_descs()*sizeof(struct pcmbufdesc);
362 audiobuffer = (char *)&audiobuf[(audiobufend - audiobuf) - 357 audiobuffer = (char *)&audiobuf[(audiobufend - audiobuf) -
@@ -401,8 +396,6 @@ void pcmbuf_pause(bool pause) {
401/* Force playback. */ 396/* Force playback. */
402void pcmbuf_play_start(void) 397void pcmbuf_play_start(void)
403{ 398{
404 mutex_lock(&pcmbuf_mutex);
405
406 if (!pcm_is_playing() && pcmbuf_unplayed_bytes) 399 if (!pcm_is_playing() && pcmbuf_unplayed_bytes)
407 { 400 {
408 /** Prevent a very tiny pop from happening by muting audio 401 /** Prevent a very tiny pop from happening by muting audio
@@ -417,8 +410,6 @@ void pcmbuf_play_start(void)
417 /* Now unmute the audio. */ 410 /* Now unmute the audio. */
418 pcm_mute(false); 411 pcm_mute(false);
419 } 412 }
420
421 mutex_unlock(&pcmbuf_mutex);
422} 413}
423 414
424/** 415/**
@@ -426,8 +417,6 @@ void pcmbuf_play_start(void)
426 */ 417 */
427static void pcmbuf_flush_fillpos(void) 418static void pcmbuf_flush_fillpos(void)
428{ 419{
429 mutex_lock(&pcmbuf_mutex);
430
431 if (audiobuffer_fillpos) { 420 if (audiobuffer_fillpos) {
432 /* Never use the last buffer descriptor */ 421 /* Never use the last buffer descriptor */
433 while (pcmbuf_write == pcmbuf_write_end) { 422 while (pcmbuf_write == pcmbuf_write_end) {
@@ -444,8 +433,6 @@ static void pcmbuf_flush_fillpos(void)
444 } 433 }
445 pcmbuf_add_chunk(); 434 pcmbuf_add_chunk();
446 } 435 }
447
448 mutex_unlock(&pcmbuf_mutex);
449} 436}
450 437
451/** 438/**