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