diff options
Diffstat (limited to 'apps/pcmbuf.h')
-rw-r--r-- | apps/pcmbuf.h | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/apps/pcmbuf.h b/apps/pcmbuf.h index 2476857f88..555c1bcb33 100644 --- a/apps/pcmbuf.h +++ b/apps/pcmbuf.h | |||
@@ -19,36 +19,48 @@ | |||
19 | #ifndef PCMBUF_H | 19 | #ifndef PCMBUF_H |
20 | #define PCMBUF_H | 20 | #define PCMBUF_H |
21 | 21 | ||
22 | /* Guard buffer for crossfader when dsp is enabled. */ | 22 | #define PCMBUF_TARGET_CHUNK 32768 /* This is the target fill size of chunks |
23 | #define PCMBUF_GUARD 32768 | 23 | on the pcm buffer */ |
24 | #define PCMBUF_MINAVG_CHUNK 24576 /* This is the minimum average size of | ||
25 | chunks on the pcm buffer (or we run out | ||
26 | of buffer descriptors, which is | ||
27 | non-fatal) */ | ||
28 | #define PCMBUF_MIN_CHUNK 4096 /* We try to never feed a chunk smaller than | ||
29 | this to the DMA */ | ||
30 | #define PCMBUF_FADE_CHUNK 8192 /* This is the maximum size of one packet | ||
31 | for mixing (crossfade or voice) */ | ||
24 | 32 | ||
25 | void pcmbuf_init(long bufsize); | 33 | /* Returns true if the buffer needs to change size */ |
26 | long pcmbuf_get_bufsize(void); | 34 | bool pcmbuf_is_same_size(size_t bufsize); |
35 | void pcmbuf_init(size_t bufsize); | ||
36 | /* Size in bytes used by the pcmbuffer */ | ||
37 | size_t pcmbuf_get_bufsize(void); | ||
38 | size_t get_pcmbuf_descsize(void); | ||
27 | 39 | ||
40 | void pcmbuf_pause(bool pause); | ||
28 | void pcmbuf_play_stop(void); | 41 | void pcmbuf_play_stop(void); |
29 | bool pcmbuf_is_crossfade_active(void); | 42 | bool pcmbuf_is_crossfade_active(void); |
30 | 43 | ||
31 | /* These functions are for playing chained buffers of PCM data */ | 44 | /* These functions are for playing chained buffers of PCM data */ |
32 | bool pcmbuf_add_chunk(void *addr, int size, void (*callback)(void)); | 45 | #if defined(HAVE_ADJUSTABLE_CPU_FREQ) && !defined(SIMULATOR) |
33 | |||
34 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | ||
35 | void pcmbuf_boost(bool state); | 46 | void pcmbuf_boost(bool state); |
36 | void pcmbuf_set_boost_mode(bool state); | 47 | void pcmbuf_set_boost_mode(bool state); |
37 | #else | 48 | #else |
38 | #define pcmbuf_boost(state) do { } while(0) | 49 | #define pcmbuf_boost(state) do { } while(0) |
39 | #define pcmbuf_set_boost_mode(state) do { } while(0) | 50 | #define pcmbuf_set_boost_mode(state) do { } while(0) |
40 | #endif | 51 | #endif |
41 | bool pcmbuf_is_lowdata(void); | 52 | bool pcmbuf_is_lowdata(void); |
42 | void pcmbuf_flush_audio(void); | ||
43 | void pcmbuf_play_start(void); | 53 | void pcmbuf_play_start(void); |
44 | bool pcmbuf_crossfade_init(bool manual_skip); | 54 | bool pcmbuf_crossfade_init(bool manual_skip); |
45 | void pcmbuf_add_event(void (*event_handler)(void)); | 55 | void pcmbuf_set_event_handler(void (*callback)(void)); |
46 | void pcmbuf_set_position_callback(void (*callback)(int size)); | 56 | void pcmbuf_set_position_callback(void (*callback)(size_t size)); |
47 | unsigned int pcmbuf_get_latency(void); | 57 | unsigned int pcmbuf_get_latency(void); |
48 | void pcmbuf_set_low_latency(bool state); | 58 | void pcmbuf_set_low_latency(bool state); |
49 | bool pcmbuf_insert_buffer(char *buf, long length); | 59 | bool pcmbuf_insert_buffer(const char *buf, size_t length); |
50 | void pcmbuf_flush_buffer(long length); | 60 | void pcmbuf_write_complete(size_t length); |
51 | void* pcmbuf_request_buffer(long length, long *realsize); | 61 | void pcmbuf_write_voice(size_t length); |
62 | void* pcmbuf_request_buffer(size_t length, size_t *realsize); | ||
63 | void* pcmbuf_request_voice_buffer(size_t length, size_t *realsize, bool mix); | ||
52 | bool pcmbuf_is_crossfade_enabled(void); | 64 | bool pcmbuf_is_crossfade_enabled(void); |
53 | void pcmbuf_crossfade_enable(bool on_off); | 65 | void pcmbuf_crossfade_enable(bool on_off); |
54 | 66 | ||
@@ -56,6 +68,9 @@ int pcmbuf_usage(void); | |||
56 | int pcmbuf_mix_usage(void); | 68 | int pcmbuf_mix_usage(void); |
57 | void pcmbuf_beep(int frequency, int duration, int amplitude); | 69 | void pcmbuf_beep(int frequency, int duration, int amplitude); |
58 | void pcmbuf_reset_mixpos(void); | 70 | void pcmbuf_reset_mixpos(void); |
59 | void pcmbuf_mix(char *buf, long length); | 71 | void pcmbuf_mix(char *buf, size_t length); |
72 | |||
73 | int pcmbuf_used_descs(void); | ||
74 | int pcmbuf_descs(void); | ||
60 | 75 | ||
61 | #endif | 76 | #endif |