feeder.h (66308) | feeder.h (70134) |
---|---|
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 * | 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 66308 2000-09-23 22:11:32Z cg $ | 26 * $FreeBSD: head/sys/dev/sound/pcm/feeder.h 70134 2000-12-18 01:36:41Z cg $ |
27 */ 28 | 27 */ 28 |
29struct feeder_class { 30 KOBJ_CLASS_FIELDS; 31 int align; 32 struct pcm_feederdesc *desc; 33 void *data; 34}; 35 |
|
29void feeder_register(void *p); | 36void feeder_register(void *p); |
30pcm_feeder *feeder_get(struct pcm_feederdesc *desc); 31pcm_feeder *feeder_getroot(void); 32int feeder_set(pcm_feeder *feeder, int what, int value); | 37struct feeder_class *feeder_getclass(struct pcm_feederdesc *desc); |
33 34u_int32_t chn_fmtchain(pcm_channel *c, u_int32_t *to); | 38 39u_int32_t chn_fmtchain(pcm_channel *c, u_int32_t *to); |
35int chn_addfeeder(pcm_channel *c, pcm_feeder *f); | 40int chn_addfeeder(pcm_channel *c, struct feeder_class *fc, struct pcm_feederdesc *desc); |
36int chn_removefeeder(pcm_channel *c); 37pcm_feeder *chn_findfeeder(pcm_channel *c, u_int32_t type); 38 | 41int chn_removefeeder(pcm_channel *c); 42pcm_feeder *chn_findfeeder(pcm_channel *c, u_int32_t type); 43 |
39#define FEEDER_DECLARE(feeder) SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, feeder_register, &feeder) | 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); |
40 41#define FEEDER_ROOT 1 42#define FEEDER_FMT 2 43#define FEEDER_RATE 3 44#define FEEDER_FILTER 4 45#define FEEDER_VOLUME 5 46#define FEEDER_LAST FEEDER_VOLUME 47 48#define FEEDRATE_SRC 1 49#define FEEDRATE_DST 2 50 51 | 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 |