Changeset 5029c788 in mainline for uspace/srv/audio/hound/connection.c


Ignore:
Timestamp:
2013-04-04T16:21:41Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9e40d443
Parents:
5a6f362
Message:

hound: add connection fifo, implement stream mixing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/audio/hound/connection.c

    r5a6f362 r5029c788  
    4646        connection_t *conn = malloc(sizeof(connection_t));
    4747        if (conn) {
     48                list_initialize(&conn->fifo);
    4849                link_initialize(&conn->source_link);
    4950                link_initialize(&conn->sink_link);
     
    7374        if (connection->source && connection->source->connection_change)
    7475                connection->source->connection_change(connection->source, false);
     76        while (!list_empty(&connection->fifo)) {
     77                link_t *l = list_first(&connection->fifo);
     78                audio_data_link_t *data = audio_data_link_list_instance(l);
     79                list_remove(&data->link);
     80                audio_data_link_destroy(data);
     81        }
    7582        log_debug("DISCONNECTED: %s -> %s",
    7683            connection->source->name, connection->sink->name);
     
    8794}
    8895
    89 int connection_new_data(connection_t *connection, const void *data, size_t size)
     96int connection_push_data(connection_t *connection, audio_data_t *adata)
    9097{
    9198        assert(connection);
    92         return ENOTSUP;
     99        assert(adata);
     100        audio_data_link_t *alink = audio_data_link_create(adata);
     101        if (!alink) {
     102                log_warning("Failed to buffer %zu bytes of data.", adata->size);
     103                return ENOMEM;
     104        }
     105        log_fatal("Pushed new data to connection fifo");
     106        list_append(&alink->link, &connection->fifo);
     107        return EOK;
    93108}
    94109
Note: See TracChangeset for help on using the changeset viewer.