Developer World
Spresense SDK Library v3.2.0-ebc0364
customproc_command_base.h
1/****************************************************************************
2 * modules/include/audio/dsp_framework/customproc_command_base.h
3 *
4 * Copyright 2018 Sony Semiconductor Solutions Corporation
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * 3. Neither the name of Sony Semiconductor Solutions Corporation nor
17 * the names of its contributors may be used to endorse or promote
18 * products derived from this software without specific prior written
19 * permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
28 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 *
34 ****************************************************************************/
35
36#ifndef __CUSTOMPROC_COMMAND_BASE_H__
37#define __CUSTOMPROC_COMMAND_BASE_H__
38
39#include <stdint.h>
40
41namespace CustomprocCommand
42{
43 enum command_type
44 {
45 Init,
46 Exec,
47 Flush,
48 Set,
49 CmdTypeNum
50 };
51 typedef command_type CmdType;
52
53 enum process_mode
54 {
55 CommonMode = 0,
56 FilterMode = 1,
57 };
58 typedef process_mode ProcMode;
59
60 enum data_type
61 {
62 DataTypeAddr = 0,
63 DataTypeValue,
64 };
65 typedef data_type DataType;
66
67 enum result_code
68 {
69 ExecOk = 0,
70 ExecWarn,
71 ExecError,
72 };
73 typedef result_code ResultCode;
74
75 struct Buffer
76 {
77 void *addr;
78 uint32_t size;
79 };
80
84 {
85 uint32_t cmd_type;
86 };
88
92 {
93 /* reserve */
94
95 uint32_t reserve0;
96 uint32_t reserve1;
97 uint32_t reserve2;
98 uint32_t reserve3;
99 };
101
105 {
106 /* Fixed parameters */
107
108 Buffer input;
109 Buffer output;
110 };
112
116 {
117 /* Fixed parameters */
118
119 Buffer output;
120
121 /* reserve*/
122
123 uint32_t reserve0;
124 uint32_t reserve1;
125 };
127
131 {
132 /* reserve*/
133
134 uint32_t reserve0;
135 uint32_t reserve1;
136 uint32_t reserve2;
137 uint32_t reserve3;
138 };
140
143 struct result_s
144 {
145 uint32_t result_code;
146 uint32_t inform_req;
147 };
148 typedef result_s ResultParam;
149
150
154 {
155 CmdHeader header;
156 ResultParam result;
157
158 union
159 {
160 InitParamBase init_cmd;
161 ExecParamBase exec_cmd;
162 FlushParamBase flush_cmd;
163 SetParamBase set_cmd;
164 };
165
166 };
167 typedef command_base_s CmdBase;
168
169};
170
171#endif /* __CUSTOMPROC_COMMAND_BASE_H__ */
172
@ CommonMode
Definition: sensor_command.h:85
Definition: customproc_command_base.h:76
Definition: customproc_command_base.h:154
Definition: customproc_command_base.h:84
Definition: customproc_command_base.h:105
Definition: customproc_command_base.h:116
Definition: customproc_command_base.h:92
Definition: customproc_command_base.h:144
Definition: customproc_command_base.h:131