Copyright 1999, Be Incorporated. All Rights Reserved.
This file may be used under the terms of the Be Sample Code License.
*/
#if !defined(_AUDIO_DRIVER_H)
#define _AUDIO_DRIVER_H
#if !defined(_SUPPORT_DEFS_H)
#include <SupportDefs.h>
#endif
#if !defined(_DRIVERS_H)
#include <Drivers.h>
#endif
enum {
B_AUDIO_GET_AUDIO_FORMAT = B_AUDIO_DRIVER_BASE,
B_AUDIO_SET_AUDIO_FORMAT,
B_AUDIO_GET_PREFERRED_SAMPLE_RATES,
B_ROUTING_GET_VALUES,
B_ROUTING_SET_VALUES,
B_MIXER_GET_VALUES,
B_MIXER_SET_VALUES,
B_AUDIO_GET_TIMING
};
typedef struct audio_format {
float sample_rate;
int32 channels;
int32 format;
int32 big_endian;
size_t buf_header;
size_t play_buf_size;
size_t rec_buf_size;
} audio_format;
typedef struct audio_buf_header {
bigtime_t capture_time;
uint32 capture_size;
float sample_rate;
} audio_buf_header;
typedef struct audio_routing {
int32 selector;
int32 value;
} audio_routing;
typedef struct audio_routing_cmd {
int32 count;
audio_routing* data;
} audio_routing_cmd;
typedef struct {
bigtime_t wr_time;
bigtime_t rd_time;
uint32 wr_skipped;
uint32 rd_skipped;
uint64 wr_total;
uint64 rd_total;
uint32 _reserved_[6];
} audio_timing;
enum {
B_AUDIO_INPUT_SELECT,
B_AUDIO_MIC_BOOST,
B_AUDIO_MIDI_OUTPUT_TO_SYNTH,
B_AUDIO_MIDI_INPUT_TO_SYNTH,
B_AUDIO_MIDI_OUTPUT_TO_PORT,
B_AUDIO_PCM_OUT_POST_3D,
B_AUDIO_STEREO_ENHANCEMENT,
B_AUDIO_3D_STEREO_ENHANCEMENT,
B_AUDIO_BASS_BOOST,
B_AUDIO_LOCAL_LOOPBACK,
B_AUDIO_REMOTE_LOOPBACK,
B_AUDIO_MONO_OUTPUT_FROM_MIC,
B_AUDIO_ALTERNATE_MIC,
B_AUDIO_ADC_DAC_LOOPBACK
};
enum {
B_AUDIO_INPUT_DAC = 1,
B_AUDIO_INPUT_LINE_IN,
B_AUDIO_INPUT_CD,
B_AUDIO_INPUT_VIDEO,
B_AUDIO_INPUT_AUX1,
B_AUDIO_INPUT_AUX2,
B_AUDIO_INPUT_PHONE,
B_AUDIO_INPUT_MIC,
B_AUDIO_INPUT_MIX_OUT,
B_AUDIO_INPUT_MONO_OUT
};
typedef struct audio_level {
int32 selector;
uint32 flags;
float value;
} audio_level;
typedef struct audio_level_cmd {
int32 count;
audio_level* data;
} audio_level_cmd;
#define B_AUDIO_LEVEL_MUTED 1
enum {
B_AUDIO_MIX_ADC_LEFT,
B_AUDIO_MIX_ADC_RIGHT,
B_AUDIO_MIX_DAC_LEFT,
B_AUDIO_MIX_DAC_RIGHT,
B_AUDIO_MIX_LINE_IN_LEFT,
B_AUDIO_MIX_LINE_IN_RIGHT,
B_AUDIO_MIX_CD_LEFT,
B_AUDIO_MIX_CD_RIGHT,
B_AUDIO_MIX_VIDEO_LEFT,
B_AUDIO_MIX_VIDEO_RIGHT,
B_AUDIO_MIX_SYNTH_LEFT,
B_AUDIO_MIX_SYNTH_RIGHT,
B_AUDIO_MIX_AUX_LEFT,
B_AUDIO_MIX_AUX_RIGHT,
B_AUDIO_MIX_PC_BEEP,
B_AUDIO_MIX_PHONE,
B_AUDIO_MIX_MIC,
B_AUDIO_MIX_LINE_OUT_LEFT,
B_AUDIO_MIX_LINE_OUT_RIGHT,
B_AUDIO_MIX_HEADPHONE_OUT_LEFT,
B_AUDIO_MIX_HEADPHONE_OUT_RIGHT,
B_AUDIO_MIX_MONO_OUT,
B_AUDIO_MIX_LOOPBACK_LEVEL
};
#endif