2018-05-14 09:27:37 +03:00
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
/*
* Xen para - virtual sound device
*
* Copyright ( C ) 2016 - 2018 EPAM Systems Inc .
*
* Author : Oleksandr Andrushchenko < oleksandr_andrushchenko @ epam . com >
*/
# ifndef __XEN_SND_FRONT_H
# define __XEN_SND_FRONT_H
2018-05-14 09:27:38 +03:00
# include "xen_snd_front_cfg.h"
2018-05-14 09:27:41 +03:00
struct xen_snd_front_card_info ;
struct xen_snd_front_evtchnl ;
2018-05-14 09:27:39 +03:00
struct xen_snd_front_evtchnl_pair ;
2018-11-30 10:42:05 +03:00
struct xen_front_pgdir_shbuf ;
2018-05-14 09:27:41 +03:00
struct xensnd_query_hw_param ;
2018-05-14 09:27:39 +03:00
2018-05-14 09:27:37 +03:00
struct xen_snd_front_info {
struct xenbus_device * xb_dev ;
2018-05-14 09:27:38 +03:00
2018-05-14 09:27:41 +03:00
struct xen_snd_front_card_info * card_info ;
2018-05-14 09:27:39 +03:00
int num_evt_pairs ;
struct xen_snd_front_evtchnl_pair * evt_pairs ;
2018-05-14 09:27:38 +03:00
struct xen_front_cfg_card cfg ;
2018-05-14 09:27:37 +03:00
} ;
2018-05-14 09:27:41 +03:00
int xen_snd_front_stream_query_hw_param ( struct xen_snd_front_evtchnl * evtchnl ,
struct xensnd_query_hw_param * hw_param_req ,
struct xensnd_query_hw_param * hw_param_resp ) ;
int xen_snd_front_stream_prepare ( struct xen_snd_front_evtchnl * evtchnl ,
2018-11-30 10:42:05 +03:00
struct xen_front_pgdir_shbuf * shbuf ,
2018-05-14 09:27:41 +03:00
u8 format , unsigned int channels ,
unsigned int rate , u32 buffer_sz ,
u32 period_sz ) ;
int xen_snd_front_stream_close ( struct xen_snd_front_evtchnl * evtchnl ) ;
int xen_snd_front_stream_write ( struct xen_snd_front_evtchnl * evtchnl ,
unsigned long pos , unsigned long count ) ;
int xen_snd_front_stream_read ( struct xen_snd_front_evtchnl * evtchnl ,
unsigned long pos , unsigned long count ) ;
int xen_snd_front_stream_trigger ( struct xen_snd_front_evtchnl * evtchnl ,
int type ) ;
2018-05-14 09:27:37 +03:00
# endif /* __XEN_SND_FRONT_H */