quadrilateralcowboy/sys/linux/oss/include/mixer_core.h
2020-06-12 14:06:25 -07:00

61 lines
1.4 KiB
C

#ifndef MIXER_CORE_H
#define MIXER_CORE_H
/*
* Copyright by 4Front Technologies 1993-2004
*
* All rights reserved.
*/
/*
* IMPORTANT NOTICE!
*
* This file contains internal structures used by Open Sound Systems.
* They will change without any notice between OSS versions. Care must be taken
* to make sure any software using this header gets properly re-compiled before
* use.
*
* 4Front Technologies (or anybody else) takes no responsibility of damages
* caused by use of this file.
*/
typedef int (*mixer_ext_fn) (int dev, int ctrl, unsigned int cmd, int value);
typedef int (*mixer_ext_init_fn) (int dev);
typedef struct
{
oss_mixext ext;
mixer_ext_fn handler;
oss_mixer_enuminfo *enum_info;
}
oss_mixext_desc;
struct mixer_operations
{
char id[16];
char name[64];
int (*ioctl) (int dev, int audiodev, unsigned int cmd, ioctl_arg arg);
void *devc;
void *hw_devc;
int modify_counter;
/* Mixer extension interface */
int nr_ext;
int max_ext;
int nr_extra_ext;
int timestamp;
oss_mixext_desc *extensions;
mixer_ext_init_fn ext_init_fn;
int ignore_mask; /* Controls ignored by mixer ext API */
int card_number;
int enabled;
};
typedef struct mixer_operations mixdev_t, *mixdev_p;
extern struct mixer_operations **mixer_devs;
extern int num_mixers;
extern void touch_mixer (int dev);
extern int oss_mixer_ext (int orig_dev, unsigned int cmd, ioctl_arg arg);
extern int mixer_ext_set_enum (oss_mixer_enuminfo * ent);
#endif