1#- 2# KOBJ 3# 4# Copyright (c) 2000 Cameron Grant <cg@freebsd.org> 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26# SUCH DAMAGE. 27# 28# $FreeBSD: src/sys/dev/sound/pcm/channel_if.m,v 1.5 2005/01/06 01:43:20 imp Exp $ 29# $DragonFly: src/sys/dev/sound/pcm/channel_if.m,v 1.3 2007/01/04 21:47:03 corecode Exp $ 30# 31 32#include <dev/sound/pcm/sound.h> 33 34INTERFACE channel; 35 36CODE { 37 38 static int 39 channel_nosetdir(kobj_t obj, void *data, int dir) 40 { 41 return 0; 42 } 43 44 static int 45 channel_noreset(kobj_t obj, void *data) 46 { 47 return 0; 48 } 49 50 static int 51 channel_noresetdone(kobj_t obj, void *data) 52 { 53 return 0; 54 } 55 56 static int 57 channel_nofree(kobj_t obj, void *data) 58 { 59 return 1; 60 } 61 62 static u_int32_t 63 channel_nogetptr(kobj_t obj, void *data) 64 { 65 return 0; 66 } 67 68 static int 69 channel_nonotify(kobj_t obj, void *data, u_int32_t changed) 70 { 71 return 0; 72 } 73 74}; 75 76METHOD void* init { 77 kobj_t obj; 78 void *devinfo; 79 struct snd_dbuf *b; 80 struct pcm_channel *c; 81 int dir; 82}; 83 84METHOD int free { 85 kobj_t obj; 86 void *data; 87} DEFAULT channel_nofree; 88 89METHOD int reset { 90 kobj_t obj; 91 void *data; 92} DEFAULT channel_noreset; 93 94METHOD int resetdone { 95 kobj_t obj; 96 void *data; 97} DEFAULT channel_noresetdone; 98 99METHOD int setdir { 100 kobj_t obj; 101 void *data; 102 int dir; 103} DEFAULT channel_nosetdir; 104 105METHOD u_int32_t setformat { 106 kobj_t obj; 107 void *data; 108 u_int32_t format; 109}; 110 111METHOD u_int32_t setspeed { 112 kobj_t obj; 113 void *data; 114 u_int32_t speed; 115}; 116 117METHOD u_int32_t setblocksize { 118 kobj_t obj; 119 void *data; 120 u_int32_t blocksize; 121}; 122 123METHOD int trigger { 124 kobj_t obj; 125 void *data; 126 int go; 127}; 128 129METHOD u_int32_t getptr { 130 kobj_t obj; 131 void *data; 132} DEFAULT channel_nogetptr; 133 134METHOD struct pcmchan_caps* getcaps { 135 kobj_t obj; 136 void *data; 137}; 138 139METHOD int notify { 140 kobj_t obj; 141 void *data; 142 u_int32_t changed; 143} DEFAULT channel_nonotify; 144