blob: 29217afc9b49708e92673901fb71c0533e64b964 [file] [log] [blame]
Miika Pekkarinen20b38972005-07-13 12:48:22 +00001/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2005 by Miika Pekkarinen
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef PCMBUF_H
20#define PCMBUF_H
21
22/* Guard buffer for crossfader when dsp is enabled. */
23#define PCMBUF_GUARD 32768
24
Miika Pekkarinenf090dc32005-07-21 11:44:00 +000025void pcmbuf_init(long bufsize);
26long pcmbuf_get_bufsize(void);
Miika Pekkarinen20b38972005-07-13 12:48:22 +000027
28void pcmbuf_play_stop(void);
29bool pcmbuf_is_crossfade_active(void);
30
31/* These functions are for playing chained buffers of PCM data */
32bool pcmbuf_add_chunk(void *addr, int size, void (*callback)(void));
33int pcmbuf_num_used_buffers(void);
34void pcmbuf_set_watermark(int numbytes, void (*callback)(int bytes_left));
35
36void pcmbuf_set_boost_mode(bool state);
37bool pcmbuf_is_lowdata(void);
38void pcmbuf_flush_audio(void);
39bool pcmbuf_crossfade_init(void);
40void pcmbuf_add_event(void (*event_handler)(void));
41unsigned int pcmbuf_get_latency(void);
42bool pcmbuf_insert_buffer(char *buf, long length);
43void pcmbuf_flush_buffer(long length);
44void* pcmbuf_request_buffer(long length, long *realsize);
45bool pcmbuf_is_crossfade_enabled(void);
46void pcmbuf_crossfade_enable(bool on_off);
47
48#endif