src/fmat.h: fmat_get_channel to write to an fvec_t
authorPaul Brossier <piem@piem.org>
Thu, 17 Oct 2013 11:09:20 +0000 (13:09 +0200)
committerPaul Brossier <piem@piem.org>
Thu, 17 Oct 2013 11:09:20 +0000 (13:09 +0200)
src/fmat.c
src/fmat.h
tests/src/test-fmat.c

index a92b8c6..a6d8931 100644 (file)
@@ -54,8 +54,10 @@ smpl_t fmat_read_sample(fmat_t *s, uint_t channel, uint_t position) {
 void fmat_put_channel(fmat_t *s, smpl_t * data, uint_t channel) {
   s->data[channel] = data;
 }
-smpl_t * fmat_get_channel(fmat_t *s, uint_t channel) {
-  return s->data[channel];
+void fmat_get_channel(fmat_t *s, uint_t channel, fvec_t *output) {
+  output->data = s->data[channel];
+  output->length = s->length;
+  return;
 }
 
 smpl_t ** fmat_get_data(fmat_t *s) {
index 4c52a84..9fbb198 100644 (file)
@@ -91,7 +91,7 @@ void  fmat_write_sample(fmat_t *s, smpl_t data, uint_t channel, uint_t position)
   \param channel channel to read from
 
 */
-smpl_t * fmat_get_channel(fmat_t *s, uint_t channel);
+void fmat_get_channel (fmat_t *s, uint_t channel, fvec_t *output);
 /** write channel vector into a buffer
 
   Note that this function is not used in the aubio library, since the same
index edb3fcf..3de0461 100644 (file)
@@ -17,6 +17,10 @@ int main ()
       mat->data[i][j] = i * 1. + j *.1;
     }
   }
+  fvec_t channel_onstack;
+  fvec_t *channel = &channel_onstack;
+  fmat_get_channel(mat, 1, channel);
+  fvec_print (channel);
   // print out matrix
   fmat_print(mat);
   // destroy it