annotate swig/xtract.i @ 144:7fbca00c2c05

removed floatArray and intArray from Java SWIG bindings
author Jamie Bullock <jamie@jamiebullock.com>
date Tue, 08 Jan 2013 14:32:45 +0000
parents cfb8a5f6ea06
children 826eb46b2f91
rev   line source
jamie@87 1 %module xtract
jamie@133 2 %include typemaps.i
jamie@144 3 #ifndef SWIGJAVA
jamie@144 4 %include carrays.i
jamie@144 5 #endif
jamie@87 6
jamie@87 7 %{
jamie@87 8 #include "xtract/xtract_scalar.h"
jamie@103 9 #include "xtract/xtract_vector.h"
jamie@107 10 #include "xtract/xtract_helper.h"
jamie@110 11 #include "xtract/xtract_macros.h"
jamie@110 12 #include "xtract/xtract_delta.h"
jamie@103 13 #include "xtract/libxtract.h"
jamie@87 14 %}
jamie@87 15
jamie@134 16 /*
jamie@133 17 %typemap(javabase) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [],
jamie@133 18 SWIGTYPE (CLASS::*) "SWIG"
jamie@133 19
jamie@133 20 %typemap(javacode) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [],
jamie@133 21 SWIGTYPE (CLASS::*) %{
jamie@133 22 protected long getPointer() {
jamie@133 23 return swigCPtr;
jamie@133 24 }
jamie@133 25 %}
jamie@134 26 */
jamie@110 27 /* Helper functions */
jamie@110 28 %inline %{
jamie@110 29
jamie@133 30 void *floata_to_voidp(float f[])
jamie@133 31 {
jamie@133 32 return (void *)f;
jamie@133 33 }
jamie@133 34
jamie@110 35 xtract_function_descriptor_t
jamie@110 36 *get_descriptor(xtract_function_descriptor_t *fd, int i){
jamie@110 37
jamie@110 38 return &fd[i];
jamie@110 39 }
jamie@110 40
jamie@110 41 /* Return a pointer to memory allocated for a mel filterbank */
jamie@110 42 xtract_mel_filter *create_filterbank(int n_filters, int blocksize){
jamie@110 43
jamie@110 44 float **filters;
jamie@110 45 xtract_mel_filter *mf;
jamie@110 46 int n, N;
jamie@110 47
jamie@110 48 N = blocksize;
jamie@110 49
jamie@110 50 mf = malloc(sizeof(xtract_mel_filter));
jamie@110 51 mf->n_filters = n_filters;
jamie@110 52
jamie@110 53 filters = (float **)malloc(n_filters * sizeof(float *));
jamie@110 54
jamie@110 55 for(n = 0; n < n_filters; n++)
jamie@110 56 filters[n] = (float *)malloc(N * sizeof(float));
jamie@110 57
jamie@110 58 mf->filters = filters;
jamie@110 59
jamie@110 60 return mf;
jamie@110 61
jamie@110 62 }
jamie@110 63
jamie@110 64 /* Free a mel filterbank */
jamie@110 65 void destroy_filterbank(xtract_mel_filter *filterbank){
jamie@110 66
jamie@110 67 int i = filterbank->n_filters;
jamie@110 68 float **filters;
jamie@110 69
jamie@110 70 filters = filterbank->filters;
jamie@110 71
jamie@110 72 while(i--)
jamie@110 73 free(filters[i]);
jamie@110 74
jamie@110 75 free(filters);
jamie@110 76
jamie@110 77 free(filterbank);
jamie@110 78
jamie@110 79 }
jamie@110 80
jamie@110 81 /* Eventually this should be deprecated */
jamie@110 82 /* void destroy_filterbank_explicit(float **filterbank, int n_filters){
jamie@110 83
jamie@110 84 int i = n_filters;
jamie@110 85
jamie@110 86 while(i--)
jamie@110 87 free(filterbank[i]);
jamie@110 88
jamie@110 89 free(filterbank);
jamie@110 90 }
jamie@110 91 */
jamie@110 92
jamie@110 93
jamie@110 94
jamie@110 95 %}
jamie@110 96
jamie@144 97 #ifndef SWIGJAVA
jamie@88 98 %array_class(float, floatArray);
jamie@110 99 %array_class(int, intArray);
jamie@144 100 #endif
jamie@87 101 %apply float *OUTPUT { float *result };
jamie@134 102
jamie@134 103 /* %apply float[] {const float *data}; */
jamie@133 104
jamie@87 105
jamie@103 106 %ignore xtract;
jamie@103 107
jamie@87 108 %include "xtract/xtract_scalar.h"
jamie@103 109
jamie@110 110 /* We have to put xtract_delta declarations inline because it contains a mixture of vector and scalar functions */
jamie@110 111 %inline %{
jamie@110 112
jamie@110 113 int xtract_flux(const float *data, const int N, const void *argv , float *result);
jamie@110 114 int xtract_lnorm(const float *data, const int N, const void *argv , float *result);
jamie@110 115
jamie@110 116 %}
jamie@110 117
jamie@103 118 %clear float *result;
jamie@103 119
jamie@110 120 %inline %{
jamie@110 121
jamie@110 122 int xtract_difference_vector(const float *data, const int N, const void *argv, float *result);
jamie@110 123
jamie@110 124 %}
jamie@110 125
jamie@103 126 %include "xtract/xtract_vector.h"
jamie@107 127 %include "xtract/xtract_helper.h"
jamie@110 128 %include "xtract/xtract_macros.h"
jamie@103 129 %include "xtract/libxtract.h"
jamie@110 130
jamie@110 131