Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/sound/pcm/sound.h
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
#define SND_STATUSLEN 64 | #define SND_STATUSLEN 64 | ||||
#define SOUND_MODVER 5 | #define SOUND_MODVER 5 | ||||
#define SOUND_MINVER SOUND_MODVER | #define SOUND_MINVER SOUND_MODVER | ||||
#define SOUND_PREFVER SOUND_MODVER | #define SOUND_PREFVER SOUND_MODVER | ||||
#define SOUND_MAXVER SOUND_MODVER | #define SOUND_MAXVER SOUND_MODVER | ||||
#define SND_MAXVCHANS 256 | |||||
#define SD_F_SIMPLEX 0x00000001 | #define SD_F_SIMPLEX 0x00000001 | ||||
#define SD_F_AUTOVCHAN 0x00000002 | #define SD_F_AUTOVCHAN 0x00000002 | ||||
#define SD_F_SOFTPCMVOL 0x00000004 | #define SD_F_SOFTPCMVOL 0x00000004 | ||||
#define SD_F_BUSY 0x00000008 | #define SD_F_BUSY 0x00000008 | ||||
#define SD_F_MPSAFE 0x00000010 | #define SD_F_MPSAFE 0x00000010 | ||||
#define SD_F_REGISTERED 0x00000020 | #define SD_F_REGISTERED 0x00000020 | ||||
#define SD_F_BITPERFECT 0x00000040 | #define SD_F_BITPERFECT 0x00000040 | ||||
#define SD_F_VPC 0x00000080 /* volume-per-channel */ | #define SD_F_VPC 0x00000080 /* volume-per-channel */ | ||||
#define SD_F_EQ 0x00000100 /* EQ */ | #define SD_F_EQ 0x00000100 /* EQ */ | ||||
#define SD_F_EQ_ENABLED 0x00000200 /* EQ enabled */ | #define SD_F_EQ_ENABLED 0x00000200 /* EQ enabled */ | ||||
#define SD_F_EQ_BYPASSED 0x00000400 /* EQ bypassed */ | #define SD_F_EQ_BYPASSED 0x00000400 /* EQ bypassed */ | ||||
#define SD_F_EQ_PC 0x00000800 /* EQ per-channel */ | #define SD_F_EQ_PC 0x00000800 /* EQ per-channel */ | ||||
#define SD_F_PVCHANS 0x00001000 /* Playback vchans enabled */ | |||||
#define SD_F_RVCHANS 0x00002000 /* Recording vchans enabled */ | |||||
#define SD_F_EQ_DEFAULT (SD_F_EQ | SD_F_EQ_ENABLED) | #define SD_F_EQ_DEFAULT (SD_F_EQ | SD_F_EQ_ENABLED) | ||||
#define SD_F_EQ_MASK (SD_F_EQ | SD_F_EQ_ENABLED | \ | #define SD_F_EQ_MASK (SD_F_EQ | SD_F_EQ_ENABLED | \ | ||||
SD_F_EQ_BYPASSED | SD_F_EQ_PC) | SD_F_EQ_BYPASSED | SD_F_EQ_PC) | ||||
#define SD_F_PRIO_RD 0x10000000 | #define SD_F_PRIO_RD 0x10000000 | ||||
#define SD_F_PRIO_WR 0x20000000 | #define SD_F_PRIO_WR 0x20000000 | ||||
#define SD_F_BITS "\020" \ | #define SD_F_BITS "\020" \ | ||||
"\001SIMPLEX" \ | "\001SIMPLEX" \ | ||||
"\002AUTOVCHAN" \ | "\002AUTOVCHAN" \ | ||||
"\003SOFTPCMVOL" \ | "\003SOFTPCMVOL" \ | ||||
"\004BUSY" \ | "\004BUSY" \ | ||||
"\005MPSAFE" \ | "\005MPSAFE" \ | ||||
"\006REGISTERED" \ | "\006REGISTERED" \ | ||||
"\007BITPERFECT" \ | "\007BITPERFECT" \ | ||||
"\010VPC" \ | "\010VPC" \ | ||||
"\011EQ" \ | "\011EQ" \ | ||||
"\012EQ_ENABLED" \ | "\012EQ_ENABLED" \ | ||||
"\013EQ_BYPASSED" \ | "\013EQ_BYPASSED" \ | ||||
"\014EQ_PC" \ | "\014EQ_PC" \ | ||||
"\015PVCHANS" \ | |||||
"\016RVCHANS" \ | |||||
"\035PRIO_RD" \ | "\035PRIO_RD" \ | ||||
"\036PRIO_WR" | "\036PRIO_WR" | ||||
#define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL) | #define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL) | ||||
#define PCM_REGISTERED(x) (PCM_ALIVE(x) && ((x)->flags & SD_F_REGISTERED)) | #define PCM_REGISTERED(x) (PCM_ALIVE(x) && ((x)->flags & SD_F_REGISTERED)) | ||||
#define PCM_MAXCHANS 10000 | |||||
#define PCM_CHANCOUNT(d) \ | #define PCM_CHANCOUNT(d) \ | ||||
(d->playcount + d->pvchancount + d->reccount + d->rvchancount) | (d->playcount + d->pvchancount + d->reccount + d->rvchancount) | ||||
/* many variables should be reduced to a range. Here define a macro */ | /* many variables should be reduced to a range. Here define a macro */ | ||||
#define RANGE(var, low, high) (var) = \ | #define RANGE(var, low, high) (var) = \ | ||||
(((var)<(low))? (low) : ((var)>(high))? (high) : (var)) | (((var)<(low))? (low) : ((var)>(high))? (high) : (var)) | ||||
enum { | enum { | ||||
Show All 12 Lines | |||||
extern struct unrhdr *pcmsg_unrhdr; | extern struct unrhdr *pcmsg_unrhdr; | ||||
#ifndef DEB | #ifndef DEB | ||||
#define DEB(x) | #define DEB(x) | ||||
#endif | #endif | ||||
SYSCTL_DECL(_hw_snd); | SYSCTL_DECL(_hw_snd); | ||||
int pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, | |||||
pid_t pid, char *comm); | |||||
int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo); | int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo); | ||||
unsigned int pcm_getbuffersize(device_t dev, unsigned int minbufsz, unsigned int deflt, unsigned int maxbufsz); | unsigned int pcm_getbuffersize(device_t dev, unsigned int minbufsz, unsigned int deflt, unsigned int maxbufsz); | ||||
void pcm_init(device_t dev, void *devinfo); | void pcm_init(device_t dev, void *devinfo); | ||||
int pcm_register(device_t dev, char *str); | int pcm_register(device_t dev, char *str); | ||||
int pcm_unregister(device_t dev); | int pcm_unregister(device_t dev); | ||||
u_int32_t pcm_getflags(device_t dev); | u_int32_t pcm_getflags(device_t dev); | ||||
void pcm_setflags(device_t dev, u_int32_t val); | void pcm_setflags(device_t dev, u_int32_t val); | ||||
void *pcm_getdevinfo(device_t dev); | void *pcm_getdevinfo(device_t dev); | ||||
Show All 37 Lines | struct { | ||||
struct { | struct { | ||||
SLIST_HEAD(, pcm_channel) head; | SLIST_HEAD(, pcm_channel) head; | ||||
struct { | struct { | ||||
SLIST_HEAD(, pcm_channel) head; | SLIST_HEAD(, pcm_channel) head; | ||||
} busy; | } busy; | ||||
struct { | struct { | ||||
SLIST_HEAD(, pcm_channel) head; | SLIST_HEAD(, pcm_channel) head; | ||||
} opened; | } opened; | ||||
struct { | |||||
SLIST_HEAD(, pcm_channel) head; | |||||
} primary; | |||||
} pcm; | } pcm; | ||||
} channels; | } channels; | ||||
unsigned playcount, reccount, pvchancount, rvchancount; | unsigned playcount, reccount, pvchancount, rvchancount; | ||||
unsigned flags; | unsigned flags; | ||||
unsigned int bufsz; | unsigned int bufsz; | ||||
void *devinfo; | void *devinfo; | ||||
device_t dev; | device_t dev; | ||||
char status[SND_STATUSLEN]; | char status[SND_STATUSLEN]; | ||||
▲ Show 20 Lines • Show All 281 Lines • Show Last 20 Lines |