]> code.delx.au - pulseaudio/blobdiff - src/modules/module-sine.c
Merge HUGE set of changes temporarily into a branch, to allow me to move them from...
[pulseaudio] / src / modules / module-sine.c
index 661455b3a9220d1fb5d1827c3368334bf688cb66..baf37346b83b4dbcc70cbce027c7a63cce12f47d 100644 (file)
@@ -65,7 +65,7 @@ static int sink_input_peek(pa_sink_input *i, pa_memchunk *chunk) {
 
     chunk->memblock = pa_memblock_ref(u->memblock);
     chunk->index = u->peek_index;
-    chunk->length = u->memblock->length - u->peek_index;
+    chunk->length = pa_memblock_get_length(u->memblock) - u->peek_index;
     return 0;
 }
 
@@ -74,11 +74,12 @@ static void sink_input_drop(pa_sink_input *i, const pa_memchunk *chunk, size_t l
     assert(i && chunk && length && i->userdata);
     u = i->userdata;
 
-    assert(chunk->memblock == u->memblock && length <= u->memblock->length-u->peek_index);
+    assert(chunk->memblock == u->memblock);
+    assert(length <= pa_memblock_get_length(u->memblock)-u->peek_index);
 
     u->peek_index += length;
 
-    if (u->peek_index >= u->memblock->length)
+    if (u->peek_index >= pa_memblock_get_length(u->memblock))
         u->peek_index = 0;
 }
 
@@ -111,6 +112,7 @@ int pa__init(pa_core *c, pa_module*m) {
     pa_sample_spec ss;
     uint32_t frequency;
     char t[256];
+    void *p;
     pa_sink_input_new_data data;
 
     if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
@@ -142,7 +144,9 @@ int pa__init(pa_core *c, pa_module*m) {
     }
 
     u->memblock = pa_memblock_new(c->mempool, pa_bytes_per_second(&ss));
-    calc_sine(u->memblock->data, u->memblock->length, frequency);
+    p = pa_memblock_acquire(u->memblock);
+    calc_sine(p, pa_memblock_get_length(u->memblock), frequency);
+    pa_memblock_release(u->memblock);
 
     snprintf(t, sizeof(t), "Sine Generator at %u Hz", frequency);