audio_mixer.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1999-2001 by Sun Microsystems, Inc.
* All rights reserved.
*
* This header file defines the public interfaces for the audio mixer
* audio personality module.
*
* CAUTION: This header file has not gone through a formal review process.
* Thus its commitment level is very low and may change or be removed
* at any time.
*/
#ifndef _SYS_AUDIO_MIXER_H
#define _SYS_AUDIO_MIXER_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
/*
* Miscellaneous defines
*/
/*
*/
struct am_ad_ch_cap {
void *ad_sr_info; /* sample rate conv. info */
int ad_int_rate; /* interrupt rate */
int ad_max_chs; /* max channels */
};
typedef struct am_ad_ch_cap am_ad_ch_cap_t;
/*
*/
struct am_ad_cap_comb {
int ad_prec; /* the data precision */
int ad_enc; /* the data encoding method */
};
typedef struct am_ad_cap_comb am_ad_cap_comb_t;
/*
* am_ad_entry_t - Audio Driver ops vector definition
*/
struct am_ad_entry {
};
typedef struct am_ad_entry am_ad_entry_t;
/* ad_set_config() and ad_set_format() stream # */
/* ad_set_config() commands */
/*
* am_ad_info_t - Audio Driver configuration information structure
*/
struct am_ad_info {
int ad_int_vers; /* Audio Driver interface version */
int ad_mode; /* MIXER or COMPAT mode */
int ad_codec_type; /* Codec type */
int ad_num_mics; /* # of mic inputs */
};
typedef struct am_ad_info am_ad_info_t;
/* the taskq lock must be held in order for ad_mode to be valid */
/* am_ad_info.ad_int_vers defines */
#define AM_VERSION AM_VERS2
/* am_ad_info.ad_add_mode defines */
/* am_ad_info.ad_codec_type defines */
/* am_ad_info.ad_diag_flags defines */
/* am_ad_info.ad_diff_flags defines */
/* am_ad_info.ad_assist_flags defines */
/* am_ad_info.ad_misc_flags defines */
/* am_ad_info.ad_translate_flags */
/*
* Support for custom audio driver ioctl()s.
*/
#define AM_WIOCDATA 0 /* returned by Audio Driver */
/*
* Audio Mixer Driver Entry Point Routines
*/
/*
* Audio Mixer Driver Device Dependent Driver Play Routines
*/
/*
* Audio Mixer Driver Device Dependent Driver Record Routines
*/
/*
* Audio Mixer Driver Device Dependent Driver Miscellaneous Routines
*/
int sleep);
/* am_hw_state_change() commands */
#define AM_HWSC_SET_GAIN_DELTA 0x01
#define AM_HWSC_SET_BAL_DELTA 0x02
#define AM_HWSC_MUTE_TOGGLE 0x03
#define AM_HWSC_ONLINE 0x04
#define AM_HWSC_OFFLINE 0x05
#define AM_HWSC_SET_GAIN_ABS 0x06
#define AM_HWSC_SET_BAL_ABS 0x07
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_AUDIO_MIXER_H */