Changeset c799138 in mainline for uspace/srv/audio/hound/audio_sink.c


Ignore:
Timestamp:
2013-04-11T01:34: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:
250828a
Parents:
f0a647c
Message:

hound: doxygen and cleanup

File:
1 edited

Legend:

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

    rf0a647c rc799138  
    4545
    4646
     47/**
     48 * Initialize audio sink structure.
     49 * @param sink The structure to initialize.
     50 * @param name string identifier
     51 * @param private_data backa
     52 */
    4753int audio_sink_init(audio_sink_t *sink, const char *name,
    4854    void *private_data, int (*connection_change)(audio_sink_t *, bool),
     
    5056{
    5157        assert(sink);
    52         if (!name) {
    53                 log_debug("Incorrect parameters.");
     58        if (!name)
    5459                return EINVAL;
    55         }
    5660        link_initialize(&sink->link);
    5761        list_initialize(&sink->connections);
    5862        sink->name = str_dup(name);
     63        if (!sink->name)
     64                return ENOMEM;
    5965        sink->private_data = private_data;
    6066        sink->format = *f;
     
    6571}
    6672
     73/**
     74 * Release resources claimed by initialization.
     75 * @param sink the structure to release.
     76 */
    6777void audio_sink_fini(audio_sink_t *sink)
    6878{
     
    7484}
    7585
    76 #if 0
    77 int audio_sink_add_source(audio_sink_t *sink, audio_source_t *source)
    78 {
    79         assert(sink);
    80         assert(source);
    81         assert_link_not_used(&source->link);
    82         list_append(&source->link, &sink->sources);
    83 
    84         const pcm_format_t old_format = sink->format;
    85 
    86         /* The first source for me */
    87         if (list_count(&sink->sources) == 1) {
    88                 /* Set audio format according to the first source */
    89                 if (pcm_format_is_any(&sink->format)) {
    90                         int ret = audio_sink_set_format(sink, &source->format);
    91                         if (ret != EOK)
    92                                 return ret;
    93                 }
    94         }
    95 
    96         audio_source_connected(source, sink);
    97         if (sink->connection_change) {
    98                 log_verbose("Calling connection change");
    99                 const int ret = sink->connection_change(sink, true);
    100                 if (ret != EOK) {
    101                         log_debug("Connection hook failed.");
    102         //              audio_source_connected(source, NULL);
    103         //              list_remove(&source->link);
    104 //                      sink->format = old_format;
    105                         return ret;
    106                 }
    107         }
    108         log_verbose("Connected source '%s' to sink '%s'",
    109             source->name, sink->name);
    110 
    111         return EOK;
    112 }
    113 #endif
    114 
     86/**
     87 * Set audio sink format and check with backend,
     88 * @param sink The target sink isntance.
     89 * @param format Th new format.
     90 * @return Error code.
     91 */
    11592int audio_sink_set_format(audio_sink_t *sink, const pcm_format_t *format)
    11693{
     
    143120}
    144121
    145 #if 0
    146 int audio_sink_remove_source(audio_sink_t *sink, audio_source_t *source)
    147 {
    148         assert(sink);
    149         assert(source);
    150         assert(list_member(&source->link, &sink->sources));
    151         list_remove(&source->link);
    152         if (sink->connection_change) {
    153                 const int ret = sink->connection_change(sink, false);
    154                 if (ret != EOK) {
    155                         log_debug("Connected hook failed.");
    156                         list_append(&source->link, &sink->sources);
    157                         return ret;
    158                 }
    159         }
    160         audio_source_connected(source, NULL);
    161         return EOK;
    162 }
    163 #endif
    164 
    165 
     122/**
     123 * Pull data from all connections and add the mix to the destination.
     124 * @param sink The sink to mix data.
     125 * @param dest Destination buffer.
     126 * @param size size of the @p dest buffer.
     127 * @return Error code.
     128 */
    166129void audio_sink_mix_inputs(audio_sink_t *sink, void* dest, size_t size)
    167130{
Note: See TracChangeset for help on using the changeset viewer.