Sound Open Firmware
Loading...
Searching...
No Matches
module_initial_settings.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2022 Intel Corporation. All rights reserved.
4 */
6
7#ifndef _ADSP_MODULE_INITIAL_SETTINGS_H_
8#define _ADSP_MODULE_INITIAL_SETTINGS_H_
9
10#include "adsp_stddef.h"
11#include "fixed_array.h"
12#include <ipc4/base-config.h>
13
14/* Mapping of IPC4 definitions into IADK naming counterpart */
15typedef struct ipc4_base_module_cfg BaseModuleCfg;
16typedef struct ipc4_base_module_cfg LegacyModuleInitialSettings;
17typedef struct ipc4_input_pin_format InputPinFormat;
18typedef struct ipc4_output_pin_format OutputPinFormat;
19typedef struct ipc4_audio_format AudioFormat;
20
21#define INPUT_PIN_COUNT (1 << 3)
22#define OUTPUT_PIN_COUNT (1 << 3)
23
24namespace intel_adsp
25{
43
47 template < ModuleInitialSettingsKey KEY > struct ModuleInitialSettingsItem
48 {
52 typedef void ValueType;
53 };
54
62 size_t & length) = 0;
63 };
64
65 namespace system
66 { class SystemAgent; }
67
74 {
75 template < class DERIVED, class PROCESSING_MODULE >
77 friend class system::SystemAgent;
78
79 public:
83 template < class VALUE >
84 struct Array : public FixedArray < VALUE >
85 {
87 typedef VALUE ValueType;
88
91 explicit Array(ValueType *array, size_t length) :
92 FixedArray < ValueType > (array, length)
93 {}
94
95 private:
100 Array(Array < ValueType > const &);
101
106 Array < ValueType > &operator = (Array < ValueType > const &);
107 };
108
111
116 performer_(performer)
117 {}
118
125 template < Key key >
126 const Array < typename ModuleInitialSettingsItem < key >
127 :: ValueType const > GetItem()
128 {
129 size_t length;
130
131 return Array < typename ModuleInitialSettingsItem < key >
132 :: ValueType const > (
133 reinterpret_cast < typename ModuleInitialSettingsItem < key >
134 :: ValueType const *>
135 (performer_.GetUntypedItem(key, length)), length);
136 }
137
138 private:
144 performer_(src.performer_) { }
146 ModuleInitialSettings operator = (ModuleInitialSettings const &src);
147
148 ModuleInitialSettingsInterface & performer_;
149 };
150
159
165 {
167 };
168
174 {
176 };
177
178} /*namespace intel_adsp */
179
180#endif /* #ifndef _ADSP_MODULE_INITIAL_SETTINGS_H_ */
The set of settings item given for initialization of a Module instance.
Definition module_initial_settings.h:74
ModuleInitialSettingsKey Key
the type of keys to access to the ModuleInitialSettings items
Definition module_initial_settings.h:110
friend class ProcessingModuleFactory
Definition module_initial_settings.h:76
ModuleInitialSettings(ModuleInitialSettingsInterface &performer)
Initializes a new instance of ModuleInitialSettings given some ModuleInitialSettingsInterface object.
Definition module_initial_settings.h:115
const Array< typename ModuleInitialSettingsItem< key >::ValueType const > GetItem()
Retrieves the item as an array of values for the given key.
Definition module_initial_settings.h:127
friend class system::SystemAgent
Definition module_initial_settings.h:77
struct ipc4_input_pin_format InputPinFormat
Definition module_initial_settings.h:17
struct ipc4_base_module_cfg BaseModuleCfg
Definition module_initial_settings.h:15
struct ipc4_audio_format AudioFormat
Definition module_initial_settings.h:19
struct ipc4_output_pin_format OutputPinFormat
Definition module_initial_settings.h:18
struct ipc4_base_module_cfg LegacyModuleInitialSettings
Definition module_initial_settings.h:16
Definition module_initial_settings.h:66
Definition fixed_array.h:13
ModuleInitialSettingsKey
Enumeration values of keys to access to the ModuleInitialSettings items.
Definition module_initial_settings.h:27
@ OUT_PINS_FORMAT
Key value to retrieve the array of OutputPinFormat item from the ModuleInitialSettings.
Definition module_initial_settings.h:41
@ LEGACY_STRUCT
Key value to retrieve the LegacyModuleInitialSettings item from the ModuleInitialSettings.
Definition module_initial_settings.h:33
@ IN_PINS_FORMAT
Key value to retrieve the array of InputPinFormat item from the ModuleInitialSettings.
Definition module_initial_settings.h:37
FixedArray(ValueType *array, size_t length)
Initializes a new instance of FixedArray.
Definition fixed_array.h:28
friend class ModuleInitialSettings
Definition module_initial_settings.h:86
VALUE ValueType
Definition module_initial_settings.h:87
Array(ValueType *array, size_t length)
Initializes a new instance of Array.
Definition module_initial_settings.h:91
Defines the interface to retrieve untyped items based on ModuleInitialSettingsKey values.
Definition module_initial_settings.h:59
virtual void const * GetUntypedItem(ModuleInitialSettingsKey key, size_t &length)=0
InputPinFormat ValueType
Definition module_initial_settings.h:166
LegacyModuleInitialSettings ValueType
Definition module_initial_settings.h:157
OutputPinFormat ValueType
Definition module_initial_settings.h:175
Helps to identify type of a ModuleInitialSettings item referenced by its KEY.
Definition module_initial_settings.h:48
void ValueType
value type of the SETTINGS item for the given KEY value.
Definition module_initial_settings.h:52
uint32_t length
Definition tlv.h:1