#ifndef __SOUND_MIXART_CORE_H
#define __SOUND_MIXART_CORE_H
enum mixart_message_id { … };
#define MSG_DEFAULT_SIZE …
struct mixart_msg
{ … };
struct mixart_enum_connector_resp
{ … } __packed;
#define MIXART_FLOAT_P_22_0_TO_HEX …
#define MIXART_FLOAT_M_20_0_TO_HEX …
#define MIXART_FLOAT____0_0_TO_HEX …
struct mixart_audio_info_req
{ … } __packed;
struct mixart_analog_hw_info
{ … } __packed;
struct mixart_digital_hw_info
{ … } __packed;
struct mixart_analog_info
{ … } __packed;
struct mixart_digital_info
{ … } __packed;
struct mixart_audio_info
{ … } __packed;
struct mixart_audio_info_resp
{ … } __packed;
#define MIXART_FLOAT_P__4_0_TO_HEX …
#define MIXART_FLOAT_P__8_0_TO_HEX …
struct mixart_stream_info
{ … } __packed;
struct mixart_streaming_group_req
{ … } __packed;
struct mixart_stream_desc
{ … } __packed;
struct mixart_streaming_group
{ … } __packed;
struct mixart_delete_group_resp
{ … } __packed;
struct mixart_fx_couple_uid
{ … } __packed;
struct mixart_txx_stream_desc
{ … } __packed;
struct mixart_flow_info
{ … } __packed;
struct mixart_stream_state_req
{ … } __packed;
struct mixart_group_state_req
{ … } __packed;
struct mixart_group_state_resp
{ … } __packed;
struct mixart_sample_pos
{ … } __packed;
#define MIXART_MAX_TIMER_NOTIFY_STREAMS …
struct mixart_timer_notify
{ … } __packed;
struct mixart_return_uid
{ … } __packed;
enum mixart_clock_generic_type { … };
enum mixart_clock_mode { … };
struct mixart_clock_properties
{ … } __packed;
struct mixart_clock_properties_resp
{ … } __packed;
enum mixart_coding_type { … };
enum mixart_sample_type { … };
struct mixart_stream_param_desc
{ … } __packed;
struct mixart_get_out_audio_level
{ … } __packed;
#define MIXART_AUDIO_LEVEL_ANALOG_MASK …
#define MIXART_AUDIO_LEVEL_DIGITAL_MASK …
#define MIXART_AUDIO_LEVEL_MONITOR_MASK …
#define MIXART_AUDIO_LEVEL_MUTE_MASK …
#define MIXART_AUDIO_LEVEL_MUTE_M1_MASK …
#define MIXART_AUDIO_LEVEL_MUTE_M2_MASK …
struct mixart_set_out_audio_level
{ … } __packed;
#define MIXART_MAX_PHYS_IO …
struct mixart_uid_enumeration
{ … } __packed;
struct mixart_io_channel_level
{ … } __packed;
struct mixart_io_level
{ … } __packed;
struct mixart_in_audio_level_info
{ … } __packed;
struct mixart_set_in_audio_level_req
{ … } __packed;
#define MIXART_OUT_STREAM_SET_LEVEL_LEFT_AUDIO1 …
#define MIXART_OUT_STREAM_SET_LEVEL_LEFT_AUDIO2 …
#define MIXART_OUT_STREAM_SET_LEVEL_RIGHT_AUDIO1 …
#define MIXART_OUT_STREAM_SET_LEVEL_RIGHT_AUDIO2 …
#define MIXART_OUT_STREAM_SET_LEVEL_STREAM_1 …
#define MIXART_OUT_STREAM_SET_LEVEL_STREAM_2 …
#define MIXART_OUT_STREAM_SET_LEVEL_MUTE_1 …
#define MIXART_OUT_STREAM_SET_LEVEL_MUTE_2 …
struct mixart_out_stream_level_info
{ … } __packed;
struct mixart_set_out_stream_level
{ … } __packed;
struct mixart_set_out_stream_level_req
{ … } __packed;
void snd_mixart_init_mailbox(struct mixart_mgr *mgr);
void snd_mixart_exit_mailbox(struct mixart_mgr *mgr);
int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int max_resp_size, void *resp_data);
int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event);
int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request);
irqreturn_t snd_mixart_interrupt(int irq, void *dev_id);
irqreturn_t snd_mixart_threaded_irq(int irq, void *dev_id);
void snd_mixart_reset_board(struct mixart_mgr *mgr);
#endif