diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/id3.h | 2 | ||||
-rw-r--r-- | firmware/pcm_playback.c | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/firmware/export/id3.h b/firmware/export/id3.h index 8fd41a1286..8f904e49e6 100644 --- a/firmware/export/id3.h +++ b/firmware/export/id3.h | |||
@@ -25,7 +25,7 @@ | |||
25 | /* Audio file types. */ | 25 | /* Audio file types. */ |
26 | /* NOTE: When adding new audio types, also add to codec_labels[] in id3.c */ | 26 | /* NOTE: When adding new audio types, also add to codec_labels[] in id3.c */ |
27 | enum { | 27 | enum { |
28 | AFMT_UNKNOWN = 0, /* Unknown file format */ | 28 | AFMT_UNKNOWN = 1, /* Unknown file format */ |
29 | 29 | ||
30 | #if CONFIG_HWCODEC==MASNONE | 30 | #if CONFIG_HWCODEC==MASNONE |
31 | AFMT_MPA_L1, /* MPEG Audio layer 1 */ | 31 | AFMT_MPA_L1, /* MPEG Audio layer 1 */ |
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index 298d2e7874..a58069d5f1 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c | |||
@@ -127,7 +127,7 @@ void pcm_boost(bool state) | |||
127 | { | 127 | { |
128 | static bool boost_state = false; | 128 | static bool boost_state = false; |
129 | 129 | ||
130 | if (crossfade_active || boost_mode) | 130 | if (crossfade_init || crossfade_active || boost_mode) |
131 | return ; | 131 | return ; |
132 | 132 | ||
133 | if (state != boost_state) { | 133 | if (state != boost_state) { |
@@ -158,6 +158,7 @@ static void dma_stop(void) | |||
158 | next_start = NULL; | 158 | next_start = NULL; |
159 | next_size = 0; | 159 | next_size = 0; |
160 | crossfade_init = 0; | 160 | crossfade_init = 0; |
161 | crossfade_active = 0; | ||
161 | pcm_paused = false; | 162 | pcm_paused = false; |
162 | } | 163 | } |
163 | 164 | ||
@@ -255,13 +256,12 @@ void pcm_play_data(const unsigned char* start, int size, | |||
255 | 256 | ||
256 | void pcm_play_stop(void) | 257 | void pcm_play_stop(void) |
257 | { | 258 | { |
258 | crossfade_active = false; | ||
259 | pcm_set_boost_mode(false); | ||
260 | pcm_boost(false); | ||
261 | if (pcm_playing) { | 259 | if (pcm_playing) { |
262 | uda1380_mute(true); | 260 | uda1380_mute(true); |
263 | dma_stop(); | 261 | dma_stop(); |
264 | } | 262 | } |
263 | pcm_set_boost_mode(false); | ||
264 | pcm_boost(false); | ||
265 | } | 265 | } |
266 | 266 | ||
267 | void pcm_play_pause(bool play) | 267 | void pcm_play_pause(bool play) |
@@ -436,6 +436,7 @@ bool pcm_crossfade_init(void) | |||
436 | return false; | 436 | return false; |
437 | } | 437 | } |
438 | logf("crossfading!"); | 438 | logf("crossfading!"); |
439 | pcm_boost(true); | ||
439 | crossfade_mode = CFM_CROSSFADE; | 440 | crossfade_mode = CFM_CROSSFADE; |
440 | crossfade_init = true; | 441 | crossfade_init = true; |
441 | 442 | ||