Changeset b266f9e in mainline
- Timestamp:
- 2013-04-04T11:15:41Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bf13c9a4
- Parents:
- 6133470
- Location:
- uspace/srv/audio/hound
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/audio/hound/hound_ctx.c
r6133470 rb266f9e 38 38 39 39 #include "hound_ctx.h" 40 #include "log.h" 40 41 41 42 hound_ctx_t *hound_record_ctx_get(const char *name) … … 49 50 if (ctx) { 50 51 link_initialize(&ctx->link); 52 list_initialize(&ctx->streams); 51 53 ctx->sink = NULL; 52 54 ctx->source = malloc(sizeof(audio_source_t)); … … 74 76 if (ctx->sink) 75 77 audio_sink_fini(ctx->sink); 78 //TODO remove streams 76 79 free(ctx->source); 77 80 free(ctx->sink); … … 88 91 { 89 92 assert(ctx); 90 //TODO fix this 91 return false; 93 return ctx->source == NULL; 94 } 95 96 hound_ctx_stream_t *hound_ctx_create_stream(hound_ctx_t *ctx, int flags, 97 pcm_format_t format, size_t buffer_size) 98 { 99 assert(ctx); 100 hound_ctx_stream_t *stream = malloc(sizeof(hound_ctx_stream_t)); 101 if (stream) { 102 link_initialize(&stream->link); 103 stream->ctx = ctx; 104 stream->flags = flags; 105 stream->format = format; 106 stream->allowed_size = buffer_size; 107 list_append(&stream->link, &ctx->streams); 108 log_verbose("CTX: %p added stream; flags:%#x ch: %u r:%u f:%s", 109 ctx, flags, format.channels, format.sampling_rate, 110 pcm_sample_format_str(format.sample_format)); 111 } 112 return stream; 113 } 114 115 void hound_ctx_destroy_stream(hound_ctx_stream_t *stream) 116 { 117 if (stream) { 118 list_remove(&stream->link); 119 //TODO free used buffer space 120 log_verbose("CTX: %p remove stream; flags:%#x ch: %u r:%u f:%s", 121 stream->ctx, stream->flags, stream->format.channels, 122 stream->format.sampling_rate, 123 pcm_sample_format_str(stream->format.sample_format)); 124 free(stream); 125 } 92 126 } 93 127 -
uspace/srv/audio/hound/hound_ctx.h
r6133470 rb266f9e 54 54 } 55 55 56 typedef struct { 57 link_t link; 58 hound_ctx_t *ctx; 59 pcm_format_t format; 60 int flags; 61 size_t allowed_size; 62 } hound_ctx_stream_t; 63 64 static inline hound_ctx_stream_t *hound_ctx_stream_from_link(link_t *l) 65 { 66 return l ? list_get_instance(l, hound_ctx_stream_t, link) : NULL; 67 } 68 69 56 70 hound_ctx_t *hound_record_ctx_get(const char *name); 57 71 hound_ctx_t *hound_playback_ctx_get(const char *name); … … 61 75 bool hound_ctx_is_record(hound_ctx_t *ctx); 62 76 77 hound_ctx_stream_t *hound_ctx_create_stream(hound_ctx_t *ctx, int flags, 78 pcm_format_t format, size_t buffer_size); 79 void hound_ctx_destroy_stream(hound_ctx_stream_t *stream); 80 63 81 #endif 64 82 -
uspace/srv/audio/hound/iface.c
r6133470 rb266f9e 112 112 pcm_format_t format, size_t size, void **data) 113 113 { 114 log_info("%s: %p, %d %x ch:%u r:%u f:%s", __FUNCTION__, server, id, 114 assert(data); 115 assert(server); 116 117 log_verbose("%s: %p, %d %x ch:%u r:%u f:%s", __FUNCTION__, server, id, 115 118 flags, format.channels, format.sampling_rate, 116 119 pcm_sample_format_str(format.sample_format)); 117 *data = (void*)"TEST_STREAM"; 118 return ENOTSUP; 120 hound_ctx_t *ctx = hound_get_ctx_by_id(server, id); 121 if (!ctx) 122 return ENOENT; 123 hound_ctx_stream_t *stream = 124 hound_ctx_create_stream(ctx, flags, format, size); 125 if (!stream) 126 return ENOMEM; 127 *data = stream; 128 return EOK; 119 129 } 120 130 121 131 static int iface_rem_stream(void *server, void *stream) 122 132 { 123 log_info("%s: %p, %s", __FUNCTION__, server, (char *)stream); 124 return ENOTSUP; 133 log_verbose("%s: %p, %s", __FUNCTION__, server, (char *)stream); 134 hound_ctx_destroy_stream(stream); 135 return EOK; 125 136 } 126 137 127 138 static int iface_stream_data_read(void *stream, void *buffer, size_t size) 128 139 { 129 log_ info("%s: %s, %zu", __FUNCTION__, (char *)stream, size);140 log_verbose("%p:, %zu", stream, size); 130 141 return ENOTSUP; 131 142 } … … 133 144 static int iface_stream_data_write(void *stream, const void *buffer, size_t size) 134 145 { 135 log_ info("%s: %s, %zu", __FUNCTION__, (char *)stream, size);146 log_verbose("%p: %zu", stream, size); 136 147 return ENOTSUP; 137 148 }
Note:
See TracChangeset
for help on using the changeset viewer.