Skip to content

Commit a444436

Browse files
sink/src: add ID to sink/src API
add get buffer ID to sink/src api Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
1 parent 50e185f commit a444436

File tree

7 files changed

+26
-6
lines changed

7 files changed

+26
-6
lines changed

src/audio/dp_queue.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,8 @@ static const struct sink_ops dp_queue_sink_ops = {
245245
.audio_set_ipc_params = dp_queue_set_ipc_params_sink,
246246
};
247247

248-
struct dp_queue *dp_queue_create(size_t min_available, size_t min_free_space, uint32_t flags)
248+
struct dp_queue *dp_queue_create(size_t min_available, size_t min_free_space, uint32_t flags,
249+
uint32_t id)
249250
{
250251
struct dp_queue *dp_queue;
251252

@@ -286,8 +287,9 @@ struct dp_queue *dp_queue_create(size_t min_available, size_t min_free_space, ui
286287
if (!dp_queue->_data_buffer)
287288
goto err;
288289

289-
tr_info(&dp_queue_tr, "DpQueue created, shared: %u min_available: %u min_free_space %u, size %u",
290-
dp_queue_is_shared(dp_queue), min_available, min_free_space,
290+
dp_queue->audio_stream_params.id = id;
291+
tr_info(&dp_queue_tr, "DpQueue created, id: %u shared: %u min_available: %u min_free_space %u, size %u",
292+
id, dp_queue_is_shared(dp_queue), min_available, min_free_space,
291293
dp_queue->data_buffer_size);
292294

293295
/* return a pointer to allocated structure */

src/audio/module_adapter/module_adapter.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,8 @@ static int module_adapter_dp_queue_prepare(struct comp_dev *dev)
189189
sink_get_min_free_space(audio_stream_get_sink(&source_buffer->stream));
190190

191191
/* create a shadow dp queue */
192-
dp_queue = dp_queue_create(min_available, min_free_space, dp_mode);
192+
dp_queue = dp_queue_create(min_available, min_free_space, dp_mode,
193+
buf_get_id(source_buffer));
193194

194195
if (!dp_queue)
195196
goto err;
@@ -223,7 +224,8 @@ static int module_adapter_dp_queue_prepare(struct comp_dev *dev)
223224
sink_get_min_free_space(audio_stream_get_sink(&sink_buffer->stream));
224225

225226
/* create a shadow dp queue */
226-
dp_queue = dp_queue_create(min_available, min_free_space, dp_mode);
227+
dp_queue = dp_queue_create(min_available, min_free_space, dp_mode,
228+
buf_get_id(sink_buffer));
227229

228230
if (!dp_queue)
229231
goto err;

src/audio/sink_api_helper.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,9 @@ size_t sink_get_min_free_space(struct sof_sink *sink)
185185
{
186186
return sink->min_free_space;
187187
}
188+
189+
uint32_t sink_get_id(struct sof_sink *sink)
190+
{
191+
return sink->audio_stream_params->id;
192+
}
193+

src/audio/source_api_helper.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,8 @@ size_t source_get_min_available(struct sof_source *source)
175175
{
176176
return source->min_available;
177177
}
178+
179+
uint32_t source_get_id(struct sof_source *source)
180+
{
181+
return source->audio_stream_params->id;
182+
}

src/include/sof/audio/dp_queue.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,11 @@ struct dp_queue {
138138
*
139139
* @param flags a combinatin of DP_QUEUE_MODE_* flags determining working mode
140140
*
141+
* @param id a stream ID, accessible later by sink_get_id/source_get_id
142+
*
141143
*/
142-
struct dp_queue *dp_queue_create(size_t min_available, size_t min_free_space, uint32_t flags);
144+
struct dp_queue *dp_queue_create(size_t min_available, size_t min_free_space, uint32_t flags,
145+
uint32_t id);
143146

144147
/**
145148
* @brief remove the queue from the list, free dp queue memory

src/include/sof/audio/sink_api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ int sink_set_overrun(struct sof_sink *sink, bool overrun_permitted);
131131
int sink_set_buffer_fmt(struct sof_sink *sink, uint32_t buffer_fmt);
132132
void sink_set_min_free_space(struct sof_sink *sink, size_t min_free_space);
133133
size_t sink_get_min_free_space(struct sof_sink *sink);
134+
uint32_t sink_get_id(struct sof_sink *sink);
134135

135136
/**
136137
* initial set of audio parameters, provided in sof_ipc_stream_params

src/include/sof/audio/source_api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ unsigned int source_get_rate(struct sof_source *source);
132132
unsigned int source_get_channels(struct sof_source *source);
133133
uint32_t source_get_buffer_fmt(struct sof_source *source);
134134
bool source_get_underrun(struct sof_source *source);
135+
uint32_t source_get_id(struct sof_source *source);
135136

136137
/** set of functions for setting audio parameters */
137138
int source_set_valid_fmt(struct sof_source *source,

0 commit comments

Comments
 (0)