audio_mixer.h revision 88447a05f537aabe9a1bc3d5313f22581ec992a7
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (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 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* 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
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
/*
* Miscellaneous defines
*/
struct am_ad_sample_rates {
};
typedef struct am_ad_sample_rates am_ad_sample_rates_t;
/*
*/
struct am_ad_ch_cap {
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() commands */
/*
* am_ad_info_t - Audio Driver configuration information structure
*/
struct am_ad_info {
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 */
/*
* 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 */