1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #ifndef AUDIO_STREAM_DISP_H 10 #define AUDIO_STREAM_DISP_H 11 12 #include "audio_host.h" 13 #include "audio_codec_if.h" 14 #include "audio_platform_if.h" 15 #include "audio_dai_if.h" 16 #include "audio_dsp_if.h" 17 18 #ifdef __cplusplus 19 #if __cplusplus 20 extern "C" { 21 #endif 22 #endif /* __cplusplus */ 23 24 enum StreamDispMethodCmd { 25 AUDIO_DRV_PCM_IOCTL_HW_PARAMS, 26 AUDIO_DRV_PCM_IOCTL_RENDER_PREPARE, 27 AUDIO_DRV_PCM_IOCTL_CAPTURE_PREPARE, 28 AUDIO_DRV_PCM_IOCTL_WRITE, 29 AUDIO_DRV_PCM_IOCTL_READ, 30 AUDIO_DRV_PCM_IOCTL_RENDER_START, 31 AUDIO_DRV_PCM_IOCTL_RENDER_STOP, 32 AUDIO_DRV_PCM_IOCTL_CAPTURE_START, 33 AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP, 34 AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE, 35 AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE, 36 AUDIO_DRV_PCM_IOCTL_RENDER_RESUME, 37 AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME, 38 AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER, 39 AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER_CAPTURE, 40 AUDIO_DRV_PCM_IOCTL_MMAP_POSITION, 41 AUDIO_DRV_PCM_IOCTL_MMAP_POSITION_CAPTURE, 42 AUDIO_DRV_PCM_IOCTL_RENDER_OPEN, 43 AUDIO_DRV_PCM_IOCTL_RENDER_CLOSE, 44 AUDIO_DRV_PCM_IOCTL_CAPTURE_OPEN, 45 AUDIO_DRV_PCM_IOCTL_CAPTURE_CLOSE, 46 AUDIO_DRV_PCM_IOCTL_DSPDECODE, 47 AUDIO_DRV_PCM_IOCTL_DSPENCODE, 48 AUDIO_DRV_PCM_IOCTL_DSPEQUALIZER, 49 AUDIO_DRV_PCM_IOCTL_BUTT, 50 }; 51 52 struct StreamDispCmdHandleList { 53 enum StreamDispMethodCmd cmd; 54 int32_t (*func)(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply); 55 }; 56 57 struct StreamHost { 58 struct IDeviceIoService service; 59 struct HdfDeviceObject *device; 60 void *priv; 61 }; 62 63 #ifdef __cplusplus 64 #if __cplusplus 65 } 66 #endif 67 #endif /* __cplusplus */ 68 69 #endif /* AUDIO_STREAM_DISP_H */ 70