Changes in uspace/srv/audio/hound/hound_ctx.c [b7fd2a0:38d150e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/audio/hound/hound_ctx.c
rb7fd2a0 r38d150e 45 45 #include "log.h" 46 46 47 static errno_t update_data(audio_source_t *source, size_t size);48 static errno_t new_data(audio_sink_t *sink);47 static int update_data(audio_source_t *source, size_t size); 48 static int new_data(audio_sink_t *sink); 49 49 50 50 /** … … 68 68 return NULL; 69 69 } 70 const errno_t ret = audio_sink_init(ctx->sink, name, ctx, NULL,70 const int ret = audio_sink_init(ctx->sink, name, ctx, NULL, 71 71 NULL, new_data, &AUDIO_FORMAT_DEFAULT); 72 72 if (ret != EOK) { … … 99 99 return NULL; 100 100 } 101 const errno_t ret = audio_source_init(ctx->source, name, ctx, NULL,101 const int ret = audio_source_init(ctx->source, name, ctx, NULL, 102 102 update_data, &AUDIO_FORMAT_DEFAULT); 103 103 if (ret != EOK) { … … 199 199 * @return Error code. 200 200 */ 201 static errno_t stream_push_data(hound_ctx_stream_t *stream, audio_data_t *adata)201 static int stream_push_data(hound_ctx_stream_t *stream, audio_data_t *adata) 202 202 { 203 203 assert(stream); … … 216 216 } 217 217 218 const errno_t ret = audio_pipe_push(&stream->fifo, adata);218 const int ret = audio_pipe_push(&stream->fifo, adata); 219 219 fibril_mutex_unlock(&stream->guard); 220 220 if (ret == EOK) … … 297 297 * @return Error code. 298 298 */ 299 errno_t hound_ctx_stream_write(hound_ctx_stream_t *stream, const void *data,299 int hound_ctx_stream_write(hound_ctx_stream_t *stream, const void *data, 300 300 size_t size) 301 301 { … … 312 312 } 313 313 314 const errno_t ret =314 const int ret = 315 315 audio_pipe_push_data(&stream->fifo, data, size, stream->format); 316 316 fibril_mutex_unlock(&stream->guard); … … 327 327 * @return Error code. 328 328 */ 329 errno_t hound_ctx_stream_read(hound_ctx_stream_t *stream, void *data, size_t size)329 int hound_ctx_stream_read(hound_ctx_stream_t *stream, void *data, size_t size) 330 330 { 331 331 assert(stream); … … 340 340 341 341 pcm_format_silence(data, size, &stream->format); 342 const size_t ret =342 const int ret = 343 343 audio_pipe_mix_data(&stream->fifo, data, size, &stream->format); 344 344 fibril_mutex_unlock(&stream->guard); 345 if (ret > 0) {345 if (ret == EOK) 346 346 fibril_condvar_signal(&stream->change); 347 return EOK; 348 } 349 return EEMPTY; 347 return ret; 350 348 } 351 349 … … 356 354 * @param size Size of the @p data buffer. 357 355 * @param format Destination data format. 358 * @return Size of the destination buffer touch with stream's data. 359 */ 360 size_t hound_ctx_stream_add_self(hound_ctx_stream_t *stream, void *data, 356 * @return Size of the destination buffer touch with stream's data, 357 * error code on failure. 358 */ 359 ssize_t hound_ctx_stream_add_self(hound_ctx_stream_t *stream, void *data, 361 360 size_t size, const pcm_format_t *f) 362 361 { 363 362 assert(stream); 364 363 fibril_mutex_lock(&stream->guard); 365 const size_t ret = audio_pipe_mix_data(&stream->fifo, data, size, f);364 const int ret = audio_pipe_mix_data(&stream->fifo, data, size, f); 366 365 fibril_condvar_signal(&stream->change); 367 366 fibril_mutex_unlock(&stream->guard); … … 391 390 * Mixes data from all streams and pushes it to all connections. 392 391 */ 393 errno_t update_data(audio_source_t *source, size_t size)392 int update_data(audio_source_t *source, size_t size) 394 393 { 395 394 assert(source); … … 425 424 } 426 425 427 errno_t new_data(audio_sink_t *sink)426 int new_data(audio_sink_t *sink) 428 427 { 429 428 assert(sink); … … 458 457 list_foreach(sink->connections, source_link, connection_t, conn) { 459 458 /* This should not trigger data update on the source */ 460 con nection_add_source_data(459 const size_t copied = connection_add_source_data( 461 460 conn, buffer, bsize, sink->format); 461 if (copied != bsize) 462 log_error("Copied less than advertised data, " 463 "something is wrong"); 462 464 } 463 465 /* push to all streams */ 464 466 list_foreach(ctx->streams, link, hound_ctx_stream_t, stream) { 465 const errno_t ret = stream_push_data(stream, adata);467 const int ret = stream_push_data(stream, adata); 466 468 if (ret != EOK) 467 469 log_error("Failed to push data to stream: %s",
Note:
See TracChangeset
for help on using the changeset viewer.