diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-06-16 00:05:30 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-06-16 00:05:30 +0000 |
commit | 4b86ff0e6cfea2c34be71ebe1102eb307bd5dc0b (patch) | |
tree | 3f4e164f9b1c72464c647b9369fc98e127494514 /src/sample.c | |
parent | a8f788111cb0b18ca3517a51657881d5ffcfabae (diff) |
got mmap oss output working
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@20 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/sample.c')
-rw-r--r-- | src/sample.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/sample.c b/src/sample.c index 21c04628..81fe6991 100644 --- a/src/sample.c +++ b/src/sample.c @@ -9,10 +9,22 @@ struct sample_spec default_sample_spec = { .channels = 2 }; -struct memblock *silence(struct memblock* b, struct sample_spec *spec) { - char c = 0; - assert(b && spec); +struct memblock *silence_memblock(struct memblock* b, struct sample_spec *spec) { + assert(b && b->data && spec); memblock_assert_exclusive(b); + silence_memory(b->data, b->length, spec); + return b; +} + +void silence_memchunk(struct memchunk *c, struct sample_spec *spec) { + assert(c && c->memblock && c->memblock->data && spec && c->length); + memblock_assert_exclusive(c->memblock); + silence_memory(c->memblock->data+c->index, c->length, spec); +} + +void silence_memory(void *p, size_t length, struct sample_spec *spec) { + char c = 0; + assert(p && length && spec); switch (spec->format) { case SAMPLE_U8: @@ -29,8 +41,7 @@ struct memblock *silence(struct memblock* b, struct sample_spec *spec) { break; } - memset(b->data, c, b->length); - return b; + memset(p, c, length); } size_t sample_size(struct sample_spec *spec) { |