Sound Open Firmware
Loading...
Searching...
No Matches
kpb_interface.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright 2026 Intel Corporation. All rights reserved.
4 */
5
6#ifndef _KPB_INTERFACE_H_
7#define _KPB_INTERFACE_H_
8
9#include <stddef.h>
10#include <stdint.h>
11#include "system_error.h"
12
13namespace intel_adsp
14{
15class ModuleHandle;
16
21struct KpbToken;
22
28public:
38 virtual ErrorCode::Type RegisterKpbClient(const ModuleHandle& module_handle,
39 KpbToken& token,
40 size_t current_history_depth,
41 size_t max_hist_depth,
42 uint32_t output_pin) const = 0;
43
50 virtual ErrorCode::Type SignalDetection(KpbToken& token, void* data) const = 0;
51
58 virtual ErrorCode::Type SignalVoiceDetection(KpbToken& token, void* data) const = 0;
59
66 virtual ErrorCode::Type SignalSilenceDetection(KpbToken& token, void* data) const = 0;
67
73 virtual ErrorCode::Type UnregisterKpbClient(KpbToken& token) const = 0;
74
80 virtual ErrorCode::Type RegisterWovProducer(const ModuleHandle& module_handle) const = 0;
81
87 virtual ErrorCode::Type RegisterKpbProducer(const ModuleHandle& module_handle) const = 0;
88
94 virtual ErrorCode::Type RequestWovConsumer(const ModuleHandle& module_handle) const = 0;
95};
96
102public:
112 virtual ErrorCode::Type RegisterKpbClient(const ModuleHandle& module_handle,
113 KpbToken& token,
114 size_t current_history_depth,
115 size_t max_hist_depth,
116 uint32_t output_pin) const = 0;
117
124 virtual ErrorCode::Type SignalDetection(KpbToken& token, void* data) const = 0;
125
132
138 virtual ErrorCode::Type RegisterKpbProducer(const ModuleHandle& module_handle) const = 0;
139};
140
141} /* namespace intel_adsp */
142
143#endif /* _KPB_INTERFACE_H_ */
Version 1 KPB service interface for IADK modules.
Definition kpb_interface.h:27
virtual ErrorCode::Type RegisterKpbClient(const ModuleHandle &module_handle, KpbToken &token, size_t current_history_depth, size_t max_hist_depth, uint32_t output_pin) const =0
Register an IADK module as a KPB client.
virtual ErrorCode::Type SignalSilenceDetection(KpbToken &token, void *data) const =0
Report silence detection for a registered client.
virtual ErrorCode::Type RegisterKpbProducer(const ModuleHandle &module_handle) const =0
Register an IADK module as a KPB producer.
virtual ErrorCode::Type RequestWovConsumer(const ModuleHandle &module_handle) const =0
Request a WOV consumer for an IADK module.
virtual ErrorCode::Type SignalDetection(KpbToken &token, void *data) const =0
Report key-phrase detection for a registered client.
virtual ErrorCode::Type UnregisterKpbClient(KpbToken &token) const =0
Unregister a KPB client.
virtual ErrorCode::Type RegisterWovProducer(const ModuleHandle &module_handle) const =0
Register an IADK module as a WOV producer.
virtual ErrorCode::Type SignalVoiceDetection(KpbToken &token, void *data) const =0
Report voice detection for a registered client.
Version 2 KPB service interface for IADK modules.
Definition kpb_interface.h:101
virtual ErrorCode::Type RegisterKpbProducer(const ModuleHandle &module_handle) const =0
Register an IADK module as a KPB producer.
virtual ErrorCode::Type UnregisterKpbClient(KpbToken &token) const =0
Unregister a KPB client.
virtual ErrorCode::Type SignalDetection(KpbToken &token, void *data) const =0
Report key-phrase detection for a registered client.
virtual ErrorCode::Type RegisterKpbClient(const ModuleHandle &module_handle, KpbToken &token, size_t current_history_depth, size_t max_hist_depth, uint32_t output_pin) const =0
Register an IADK module as a KPB client.
uint8_t data[0]
Binary byte payload for raw controls.
Definition header.h:5
Definition fixed_array.h:13
Opaque state for a KPB client registration.
int Type
type of the error code value
Definition system_error.h:20