File: jack.dl.h

package info (click to toggle)
jack-tools 20101210-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 504 kB
  • sloc: ansic: 4,678; makefile: 122; lisp: 48; sh: 16
file content (35 lines) | stat: -rw-r--r-- 1,525 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdbool.h>
#include <jack/jack.h>

struct world {
  void* (**dsp_init)(struct world *, int);
  void (**dsp_step)(struct world *, int, void *, int);
  void **st;                    /* graph state */
  bool *ga;                     /* graph active */
  void **gh;                    /* graph shared library handle */
  jack_client_t *c;             /* client */
  jack_port_t **ip;             /* input ports */
  jack_port_t **op;             /* output ports */
  int nc;                       /* number of channels */
  int ng;                       /* number of graphs */
  int nk;                       /* number of controls */
  int nb;                       /* number of buffers */
  float sr;                     /* sample rate */
  float **in;                   /* input data */
  float **out;                  /* output data */
  float *ctl;                   /* shared control data */
  float **bd;                   /* buffer data */
  int *bl;                      /* buffer sizes */
  float **p_ctl;                /* private control data */
  bool ef;                      /* exit flag */
};

#define w_sr(w) (w)->sr
#define w_c_get1(w,i) (w)->ctl[(i)]
#define w_c_set1(w,i,n) (w)->ctl[(i)]=(n)
#define w_p_get1(w,g,i) (w)->p_ctl[(g)][(i)]
#define w_p_set1(w,g,i,n) (w)->p_ctl[(g)][(i)]=(n)
#define w_out1(w,i,n) (w)->out[0][(i)]+=(n)
#define w_out2(w,i,n1,n2) {(w)->out[0][(i)]+=(n1);(w)->out[1][(i)]+=(n2);}
#define w_b_read1(w,b,i) (w)->bd[(b)][(i)]
#define w_b_write1(w,b,i,n) (w)->bd[(b)][(i)]=(n)