extern
rhino
demo
c
pvrecorder
src
miniaudio
research
_extras
nodes
ma_channel_separator_node
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c
Go to the documentation of this file.
1
2
#include "
ma_channel_separator_node.h
"
3
4
MA_API
ma_channel_separator_node_config
ma_channel_separator_node_config_init
(
ma_uint32
channels)
5
{
6
ma_channel_separator_node_config
config
;
7
8
MA_ZERO_OBJECT
(&
config
);
9
config
.nodeConfig =
ma_node_config_init
();
/* Input and output channels will be set in ma_channel_separator_node_init(). */
10
config
.channels = channels;
11
12
return
config
;
13
}
14
15
16
static
void
ma_channel_separator_node_process_pcm_frames
(
ma_node
* pNode,
const
float
** ppFramesIn,
ma_uint32
* pFrameCountIn,
float
** ppFramesOut,
ma_uint32
* pFrameCountOut)
17
{
18
ma_channel_separator_node
* pSplitterNode = (
ma_channel_separator_node
*)pNode;
19
20
(void)pFrameCountIn;
21
22
ma_deinterleave_pcm_frames
(
ma_format_f32
,
ma_node_get_input_channels
(pSplitterNode, 0), *pFrameCountOut, (
const
void
*)ppFramesIn[0], (
void
**)ppFramesOut);
23
}
24
25
static
ma_node_vtable
g_ma_channel_separator_node_vtable
=
26
{
27
ma_channel_separator_node_process_pcm_frames
,
28
NULL
,
29
1,
/* 1 input bus. */
30
MA_NODE_BUS_COUNT_UNKNOWN
,
/* Output bus count is determined by the channel count and is unknown until the node instance is initialized. */
31
0
/* Default flags. */
32
};
33
34
MA_API
ma_result
ma_channel_separator_node_init
(
ma_node_graph
* pNodeGraph,
const
ma_channel_separator_node_config
* pConfig,
const
ma_allocation_callbacks
* pAllocationCallbacks,
ma_channel_separator_node
* pSeparatorNode)
35
{
36
ma_result
result;
37
ma_node_config
baseConfig;
38
ma_uint32
inputChannels[1];
39
ma_uint32
outputChannels[
MA_MAX_NODE_BUS_COUNT
];
40
ma_uint32
iChannel;
41
42
if
(pSeparatorNode ==
NULL
) {
43
return
MA_INVALID_ARGS
;
44
}
45
46
MA_ZERO_OBJECT
(pSeparatorNode);
47
48
if
(pConfig ==
NULL
) {
49
return
MA_INVALID_ARGS
;
50
}
51
52
if
(pConfig->
channels
>
MA_MAX_NODE_BUS_COUNT
) {
53
return
MA_INVALID_ARGS
;
/* Channel count cannot exceed the maximum number of buses. */
54
}
55
56
inputChannels[0] = pConfig->
channels
;
57
58
/* All output channels are mono. */
59
for
(iChannel = 0; iChannel < pConfig->
channels
; iChannel += 1) {
60
outputChannels[iChannel] = 1;
61
}
62
63
baseConfig = pConfig->
nodeConfig
;
64
baseConfig.
vtable
= &
g_ma_channel_separator_node_vtable
;
65
baseConfig.
outputBusCount
= pConfig->
channels
;
/* The vtable has an unknown channel count, so must specify it here. */
66
baseConfig.
pInputChannels
= inputChannels;
67
baseConfig.
pOutputChannels
= outputChannels;
68
69
result =
ma_node_init
(pNodeGraph, &baseConfig, pAllocationCallbacks, &pSeparatorNode->
baseNode
);
70
if
(result !=
MA_SUCCESS
) {
71
return
result;
72
}
73
74
return
MA_SUCCESS
;
75
}
76
77
MA_API
void
ma_channel_separator_node_uninit
(
ma_channel_separator_node
* pSeparatorNode,
const
ma_allocation_callbacks
* pAllocationCallbacks)
78
{
79
/* The base node is always uninitialized first. */
80
ma_node_uninit
(pSeparatorNode, pAllocationCallbacks);
81
}
MA_INVALID_ARGS
#define MA_INVALID_ARGS
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1661
ma_channel_separator_node.h
ma_channel_separator_node_init
MA_API ma_result ma_channel_separator_node_init(ma_node_graph *pNodeGraph, const ma_channel_separator_node_config *pConfig, const ma_allocation_callbacks *pAllocationCallbacks, ma_channel_separator_node *pSeparatorNode)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c:34
ma_channel_separator_node_config::nodeConfig
ma_node_config nodeConfig
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.h:11
NULL
#define NULL
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
ma_channel_separator_node::baseNode
ma_node_base baseNode
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.h:20
ma_node_config::outputBusCount
ma_uint32 outputBusCount
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:940
ma_channel_separator_node_config_init
MA_API ma_channel_separator_node_config ma_channel_separator_node_config_init(ma_uint32 channels)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c:4
ma_node_get_input_channels
MA_API ma_uint32 ma_node_get_input_channels(const ma_node *pNode, ma_uint32 inputBusIndex)
ma_format_f32
@ ma_format_f32
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1790
MA_API
#define MA_API
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.h:174
ma_node
void ma_node
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:874
ma_deinterleave_pcm_frames
void ma_deinterleave_pcm_frames(ma_format format, ma_uint32 channels, ma_uint64 frameCount, const void *pInterleavedPCMFrames, void **ppDeinterleavedPCMFrames)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:30312
ma_node_vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:892
ma_allocation_callbacks
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1823
ma_channel_separator_node
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.h:18
ma_channel_separator_node_config
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.h:9
g_ma_channel_separator_node_vtable
static ma_node_vtable g_ma_channel_separator_node_vtable
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c:25
ma_result
int ma_result
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_channel_separator_node_config::channels
ma_uint32 channels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.h:12
ma_node_init
MA_API ma_result ma_node_init(ma_node_graph *pNodeGraph, const ma_node_config *pConfig, const ma_allocation_callbacks *pAllocationCallbacks, ma_node *pNode)
ma_node_config_init
MA_API ma_node_config ma_node_config_init(void)
ma_node_config::vtable
const ma_node_vtable * vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:937
ma_node_config::pOutputChannels
const ma_uint32 * pOutputChannels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:942
MA_NODE_BUS_COUNT_UNKNOWN
#define MA_NODE_BUS_COUNT_UNKNOWN
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:871
ma_node_uninit
MA_API void ma_node_uninit(ma_node *pNode, const ma_allocation_callbacks *pAllocationCallbacks)
ma_uint32
uint32_t ma_uint32
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
ma_channel_separator_node_uninit
MA_API void ma_channel_separator_node_uninit(ma_channel_separator_node *pSeparatorNode, const ma_allocation_callbacks *pAllocationCallbacks)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c:77
ma_node_config
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:935
ma_node_graph
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:1053
ma_node_config::pInputChannels
const ma_uint32 * pInputChannels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:941
config
static sai_transceiver_t config
Definition:
imxrt1050/imxrt1050-evkb/source/pv_audio_rec.c:75
MA_SUCCESS
#define MA_SUCCESS
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
ma_channel_separator_node_process_pcm_frames
static void ma_channel_separator_node_process_pcm_frames(ma_node *pNode, const float **ppFramesIn, ma_uint32 *pFrameCountIn, float **ppFramesOut, ma_uint32 *pFrameCountOut)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_channel_separator_node/ma_channel_separator_node.c:16
MA_ZERO_OBJECT
#define MA_ZERO_OBJECT(p)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:774
MA_MAX_NODE_BUS_COUNT
#define MA_MAX_NODE_BUS_COUNT
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:862
picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56