summaryrefslogtreecommitdiff
path: root/apps/pcmbuf.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/pcmbuf.h')
-rw-r--r--apps/pcmbuf.h45
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
25void pcmbuf_init(long bufsize); 33/* Returns true if the buffer needs to change size */
26long pcmbuf_get_bufsize(void); 34bool pcmbuf_is_same_size(size_t bufsize);
35void pcmbuf_init(size_t bufsize);
36/* Size in bytes used by the pcmbuffer */
37size_t pcmbuf_get_bufsize(void);
38size_t get_pcmbuf_descsize(void);
27 39
40void pcmbuf_pause(bool pause);
28void pcmbuf_play_stop(void); 41void pcmbuf_play_stop(void);
29bool pcmbuf_is_crossfade_active(void); 42bool 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 */
32bool 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
35void pcmbuf_boost(bool state); 46void pcmbuf_boost(bool state);
36void pcmbuf_set_boost_mode(bool state); 47void 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
41bool pcmbuf_is_lowdata(void); 52bool pcmbuf_is_lowdata(void);
42void pcmbuf_flush_audio(void);
43void pcmbuf_play_start(void); 53void pcmbuf_play_start(void);
44bool pcmbuf_crossfade_init(bool manual_skip); 54bool pcmbuf_crossfade_init(bool manual_skip);
45void pcmbuf_add_event(void (*event_handler)(void)); 55void pcmbuf_set_event_handler(void (*callback)(void));
46void pcmbuf_set_position_callback(void (*callback)(int size)); 56void pcmbuf_set_position_callback(void (*callback)(size_t size));
47unsigned int pcmbuf_get_latency(void); 57unsigned int pcmbuf_get_latency(void);
48void pcmbuf_set_low_latency(bool state); 58void pcmbuf_set_low_latency(bool state);
49bool pcmbuf_insert_buffer(char *buf, long length); 59bool pcmbuf_insert_buffer(const char *buf, size_t length);
50void pcmbuf_flush_buffer(long length); 60void pcmbuf_write_complete(size_t length);
51void* pcmbuf_request_buffer(long length, long *realsize); 61void pcmbuf_write_voice(size_t length);
62void* pcmbuf_request_buffer(size_t length, size_t *realsize);
63void* pcmbuf_request_voice_buffer(size_t length, size_t *realsize, bool mix);
52bool pcmbuf_is_crossfade_enabled(void); 64bool pcmbuf_is_crossfade_enabled(void);
53void pcmbuf_crossfade_enable(bool on_off); 65void pcmbuf_crossfade_enable(bool on_off);
54 66
@@ -56,6 +68,9 @@ int pcmbuf_usage(void);
56int pcmbuf_mix_usage(void); 68int pcmbuf_mix_usage(void);
57void pcmbuf_beep(int frequency, int duration, int amplitude); 69void pcmbuf_beep(int frequency, int duration, int amplitude);
58void pcmbuf_reset_mixpos(void); 70void pcmbuf_reset_mixpos(void);
59void pcmbuf_mix(char *buf, long length); 71void pcmbuf_mix(char *buf, size_t length);
72
73int pcmbuf_used_descs(void);
74int pcmbuf_descs(void);
60 75
61#endif 76#endif