Changeset 1df3018a in mainline for uspace/srv/audio/hound/audio_sink.c
- Timestamp:
- 2012-07-13T03:24:17Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d93a5a6f
- Parents:
- d01e635
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/audio/hound/audio_sink.c
rd01e635 r1df3018a 43 43 #include "log.h" 44 44 45 #if 046 static int loop(void* arg)47 {48 audio_sink_t *sink = arg;49 assert(sink);50 while (sink->device) {51 while (sink->running) {52 //wait for usable buffer53 audio_sink_mix_inputs(sink,54 sink->device->buffer.available_base,55 sink->device->buffer.available_size);56 }57 //remove ready58 sleep(1);59 }60 return 0;61 }62 #endif63 45 64 65 int audio_sink_init(audio_sink_t *sink, const char* name) 46 int audio_sink_init(audio_sink_t *sink, const char *name, 47 void *private_data,int (*connection_change)(audio_sink_t *sink), 48 const audio_format_t *f) 66 49 { 67 50 assert(sink); … … 73 56 list_initialize(&sink->sources); 74 57 sink->name = str_dup(name); 75 sink-> format = AUDIO_FORMAT_ANY;76 log_verbose("Initialized sink (%p) '%s' with ANY audio format",77 58 sink->private_data = private_data; 59 sink->format = *f; 60 log_verbose("Initialized sink (%p) '%s'", sink, sink->name); 78 61 return EOK; 79 62 } 63 64 void audio_sink_fini(audio_sink_t *sink) 65 { 66 assert(sink); 67 assert(!sink->private_data); 68 free(sink->name); 69 sink->name = NULL; 70 } 71 80 72 81 73 int audio_sink_add_source(audio_sink_t *sink, audio_source_t *source) … … 111 103 } 112 104 113 if (sink->connected_change.hook) { 114 const int ret = 115 sink->connected_change.hook(sink->connected_change.arg); 105 if (sink->connection_change) { 106 const int ret = sink->connection_change(sink); 116 107 if (ret != EOK) { 117 log_debug("Connect edhook failed.");108 log_debug("Connection hook failed."); 118 109 list_remove(&source->link); 119 110 sink->format = old_format; … … 131 122 assert(list_member(&source->link, &sink->sources)); 132 123 list_remove(&source->link); 133 if (sink->connected_change.hook) { 134 const int ret = 135 sink->connected_change.hook(sink->connected_change.arg); 124 if (sink->connection_change) { 125 const int ret = sink->connection_change(sink); 136 126 if (ret != EOK) { 137 127 log_debug("Connected hook failed."); 128 list_append(&source->link, &sink->sources); 129 return ret; 138 130 } 139 131 }
Note:
See TracChangeset
for help on using the changeset viewer.