1/* 2 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/dev/sound/pcm/feeder.h 70134 2000-12-18 01:36:41Z cg $ |
27 */ 28 |
29struct feeder_class { 30 KOBJ_CLASS_FIELDS; 31 int align; 32 struct pcm_feederdesc *desc; 33 void *data; 34}; 35 |
36void feeder_register(void *p); |
37struct feeder_class *feeder_getclass(struct pcm_feederdesc *desc); |
38 39u_int32_t chn_fmtchain(pcm_channel *c, u_int32_t *to); |
40int chn_addfeeder(pcm_channel *c, struct feeder_class *fc, struct pcm_feederdesc *desc); |
41int chn_removefeeder(pcm_channel *c); 42pcm_feeder *chn_findfeeder(pcm_channel *c, u_int32_t type); 43 |
44#define FEEDER_DECLARE(feeder, palign, pdata) \ 45static struct feeder_class feeder ## _class = { \ 46 name: #feeder, \ 47 methods: feeder ## _methods, \ 48 size: sizeof(pcm_feeder), \ 49 align: palign, \ 50 desc: feeder ## _desc, \ 51 data: pdata, \ 52}; \ 53SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, feeder_register, &feeder ## _class); |
54 55#define FEEDER_ROOT 1 56#define FEEDER_FMT 2 57#define FEEDER_RATE 3 58#define FEEDER_FILTER 4 59#define FEEDER_VOLUME 5 60#define FEEDER_LAST FEEDER_VOLUME 61 62#define FEEDRATE_SRC 1 63#define FEEDRATE_DST 2 64 65 |