Skip to content

Commit cbb350a

Browse files
buf: ring_buffer and comp_buffer use default methods
This commit modifies both existing buffers implementations to use simplified API for sink/source/audio_buffer Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
1 parent 137d087 commit cbb350a

2 files changed

Lines changed: 14 additions & 87 deletions

File tree

src/audio/buffers/comp_buffer.c

Lines changed: 14 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -64,33 +64,6 @@ static int comp_buffer_release_data(struct sof_source *source, size_t free_size)
6464
return 0;
6565
}
6666

67-
static int comp_buffer_set_ipc_params_source(struct sof_source *source,
68-
struct sof_ipc_stream_params *params,
69-
bool force_update)
70-
{
71-
struct comp_buffer *buffer = comp_buffer_get_from_source(source);
72-
73-
return buffer_set_params(buffer, params, force_update);
74-
}
75-
76-
static int comp_buffer_source_format_set(struct sof_source *source)
77-
{
78-
struct comp_buffer *buffer = comp_buffer_get_from_source(source);
79-
80-
audio_stream_recalc_align(&buffer->stream);
81-
return 0;
82-
}
83-
84-
static int comp_buffer_source_set_alignment_constants(struct sof_source *source,
85-
const uint32_t byte_align,
86-
const uint32_t frame_align_req)
87-
{
88-
struct comp_buffer *buffer = comp_buffer_get_from_source(source);
89-
90-
audio_stream_set_align(byte_align, frame_align_req, &buffer->stream);
91-
return 0;
92-
}
93-
9467
static size_t comp_buffer_get_free_size(struct sof_sink *sink)
9568
{
9669
struct comp_buffer *buffer = comp_buffer_get_from_sink(sink);
@@ -125,28 +98,29 @@ static int comp_buffer_commit_buffer(struct sof_sink *sink, size_t commit_size)
12598
return 0;
12699
}
127100

128-
static int comp_buffer_set_ipc_params_sink(struct sof_sink *sink,
129-
struct sof_ipc_stream_params *params,
130-
bool force_update)
101+
static int comp_buffer_set_ipc_params(struct sof_audio_buffer *audio_buffer,
102+
struct sof_ipc_stream_params *params,
103+
bool force_update)
131104
{
132-
struct comp_buffer *buffer = comp_buffer_get_from_sink(sink);
105+
struct comp_buffer *buffer = container_of(audio_buffer, struct comp_buffer, audio_buffer);
133106

134107
return buffer_set_params(buffer, params, force_update);
108+
return 0;
135109
}
136110

137-
static int comp_buffer_sink_format_set(struct sof_sink *sink)
111+
static int comp_buffer_format_set(struct sof_audio_buffer *audio_buffer)
138112
{
139-
struct comp_buffer *buffer = comp_buffer_get_from_sink(sink);
113+
struct comp_buffer *buffer = container_of(audio_buffer, struct comp_buffer, audio_buffer);
140114

141115
audio_stream_recalc_align(&buffer->stream);
142116
return 0;
143117
}
144118

145-
static int comp_buffer_sink_set_alignment_constants(struct sof_sink *sink,
146-
const uint32_t byte_align,
147-
const uint32_t frame_align_req)
119+
static int comp_buffer_set_alignment_constants(struct sof_audio_buffer *audio_buffer,
120+
const uint32_t byte_align,
121+
const uint32_t frame_align_req)
148122
{
149-
struct comp_buffer *buffer = comp_buffer_get_from_sink(sink);
123+
struct comp_buffer *buffer = container_of(audio_buffer, struct comp_buffer, audio_buffer);
150124

151125
audio_stream_set_align(byte_align, frame_align_req, &buffer->stream);
152126
return 0;
@@ -194,23 +168,20 @@ static struct source_ops comp_buffer_source_ops = {
194168
.get_data_available = comp_buffer_get_data_available,
195169
.get_data = comp_buffer_get_data,
196170
.release_data = comp_buffer_release_data,
197-
.audio_set_ipc_params = comp_buffer_set_ipc_params_source,
198-
.on_audio_format_set = comp_buffer_source_format_set,
199-
.set_alignment_constants = comp_buffer_source_set_alignment_constants
200171
};
201172

202173
static struct sink_ops comp_buffer_sink_ops = {
203174
.get_free_size = comp_buffer_get_free_size,
204175
.get_buffer = comp_buffer_get_buffer,
205176
.commit_buffer = comp_buffer_commit_buffer,
206-
.audio_set_ipc_params = comp_buffer_set_ipc_params_sink,
207-
.on_audio_format_set = comp_buffer_sink_format_set,
208-
.set_alignment_constants = comp_buffer_sink_set_alignment_constants
209177
};
210178

211179
static const struct audio_buffer_ops audio_buffer_ops = {
212180
.free = comp_buffer_free,
213181
.clean = comp_buffer_clean,
182+
.audio_set_ipc_params = comp_buffer_set_ipc_params,
183+
.on_audio_format_set = comp_buffer_format_set,
184+
.set_alignment_constants = comp_buffer_set_alignment_constants
214185
};
215186

216187
static struct comp_buffer *buffer_alloc_struct(void *stream_addr, size_t size, uint32_t caps,

src/audio/buffers/ring_buffer.c

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -242,60 +242,16 @@ static int ring_buffer_release_data(struct sof_source *source, size_t free_size)
242242
return 0;
243243
}
244244

245-
static int ring_buffer_set_ipc_params(struct ring_buffer *ring_buffer,
246-
struct sof_ipc_stream_params *params,
247-
bool force_update)
248-
{
249-
CORE_CHECK_STRUCT(&ring_buffer->audio_buffer);
250-
251-
if (audio_buffer_hw_params_configured(&ring_buffer->audio_buffer) && !force_update)
252-
return 0;
253-
254-
struct sof_audio_stream_params *audio_stream_params =
255-
audio_buffer_get_stream_params(&ring_buffer->audio_buffer);
256-
257-
audio_stream_params->frame_fmt = params->frame_fmt;
258-
audio_stream_params->rate = params->rate;
259-
audio_stream_params->channels = params->channels;
260-
audio_stream_params->buffer_fmt = params->buffer_fmt;
261-
262-
audio_buffer_set_hw_params_configured(&ring_buffer->audio_buffer);
263-
264-
return 0;
265-
}
266-
267-
static int ring_buffer_set_ipc_params_source(struct sof_source *source,
268-
struct sof_ipc_stream_params *params,
269-
bool force_update)
270-
{
271-
struct ring_buffer *ring_buffer = ring_buffer_from_source(source);
272-
273-
CORE_CHECK_STRUCT(&ring_buffer->audio_buffer);
274-
return ring_buffer_set_ipc_params(ring_buffer, params, force_update);
275-
}
276-
277-
static int ring_buffer_set_ipc_params_sink(struct sof_sink *sink,
278-
struct sof_ipc_stream_params *params,
279-
bool force_update)
280-
{
281-
struct ring_buffer *ring_buffer = ring_buffer_from_sink(sink);
282-
283-
CORE_CHECK_STRUCT(&ring_buffer->audio_buffer);
284-
return ring_buffer_set_ipc_params(ring_buffer, params, force_update);
285-
}
286-
287245
static struct source_ops ring_buffer_source_ops = {
288246
.get_data_available = ring_buffer_get_data_available,
289247
.get_data = ring_buffer_get_data,
290248
.release_data = ring_buffer_release_data,
291-
.audio_set_ipc_params = ring_buffer_set_ipc_params_source,
292249
};
293250

294251
static struct sink_ops ring_buffer_sink_ops = {
295252
.get_free_size = ring_buffer_get_free_size,
296253
.get_buffer = ring_buffer_get_buffer,
297254
.commit_buffer = ring_buffer_commit_buffer,
298-
.audio_set_ipc_params = ring_buffer_set_ipc_params_sink,
299255
};
300256

301257
static const struct audio_buffer_ops audio_buffer_ops = {

0 commit comments

Comments
 (0)