File: pvoc.c

package info (click to toggle)
csound 1%3A6.18.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 63,220 kB
  • sloc: ansic: 192,643; cpp: 14,149; javascript: 9,654; objc: 9,181; python: 3,376; java: 3,337; sh: 1,840; yacc: 1,255; xml: 985; perl: 635; lisp: 411; tcl: 341; lex: 217; makefile: 128
file content (88 lines) | stat: -rw-r--r-- 3,854 bytes parent folder | download | duplicates (5)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
    pvoc.c:

    Copyright (c) 2006 Istvan Varga

    This file is part of Csound.

    The Csound Library is free software; you can redistribute it
    and/or modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    Csound is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with Csound; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA
*/

#include "pvoc.h"

int32_t     pvset(CSOUND *, void *), pvset_S(CSOUND *, void *);
int32_t     pvoc(CSOUND *, void *);
int32_t     pvaddset(CSOUND *, void *), pvadd(CSOUND *, void *);
int32_t     pvaddset_S(CSOUND *, void *);
int32_t     tblesegset(CSOUND *, void *), ktableseg(CSOUND *, void *);
int32_t     ktablexseg(CSOUND *, void *);
int32_t     vpvset(CSOUND *, void *), vpvset_S(CSOUND *, void *),
        vpvoc(CSOUND *, void *);
int32_t     pvreadset(CSOUND *, void *), pvread(CSOUND *, void *);
int32_t     pvcrossset(CSOUND *, void *), pvcross(CSOUND *, void *);
int32_t     pvbufreadset(CSOUND *, void *), pvbufread(CSOUND *, void *);
int32_t     pvinterpset(CSOUND *, void *), pvinterp(CSOUND *, void *);

int32_t     pvreadset_S(CSOUND *, void *);
int32_t     pvcrossset_S(CSOUND *, void *);
int32_t     pvbufreadset_S(CSOUND *, void *);
int32_t     pvinterpset_S(CSOUND *, void *);

#define S(x)    sizeof(x)

static OENTRY pvoc_localops[] =
  {
   { "pvoc",      S(PVOC),      0, 3, "a",  "kkSoooo", pvset_S, pvoc        },
   { "pvoc.i",      S(PVOC),      0, 3, "a",  "kkioooo", pvset, pvoc        },
{ "tableseg",  S(TABLESEG),  TR, 3, "",   "iim",     tblesegset, ktableseg, NULL  },
{ "ktableseg", S(TABLESEG),  _QQ|TR, 3, "",   "iim",  tblesegset, ktableseg, NULL },
{ "tablexseg", S(TABLESEG),  TW, 3, "",   "iin",     tblesegset, ktablexseg, NULL },
   { "vpvoc",     S(VPVOC),     TR, 3, "a",  "kkSoo",   vpvset_S, vpvoc        },
   { "vpvoc.i",     S(VPVOC),     TR, 3, "a",  "kkioo",   vpvset, vpvoc        },
{ "pvread",    S(PVREAD),  0,  3, "kk", "kSi",     pvreadset_S, pvread, NULL      },
{ "pvread.i",    S(PVREAD),  0,  3, "kk", "kii",     pvreadset, pvread, NULL      },
   { "pvcross",   S(PVCROSS), 0,  3, "a",  "kkSkko",  pvcrossset_S, pvcross    },
{ "pvbufread", S(PVBUFREAD),0, 3, "",   "kS",      pvbufreadset_S, pvbufread, NULL},
   { "pvinterp",  S(PVINTERP), 0, 3, "a",  "kkSkkkkkk", pvinterpset_S, pvinterp},
   { "pvcross.i",   S(PVCROSS), 0,  3, "a",  "kkikko",  pvcrossset, pvcross    },
{ "pvbufread.i", S(PVBUFREAD),0, 3, "",   "ki",      pvbufreadset, pvbufread, NULL},
   { "pvinterp.i",  S(PVINTERP), 0, 3, "a",  "kkikkkkkk", pvinterpset, pvinterp},
   { "pvadd",     S(PVADD),   0,  3, "a",  "kkSiiopooo", pvaddset_S, pvadd     },
   { "pvadd.i",     S(PVADD),   0,  3, "a",  "kkiiiopooo", pvaddset, pvadd     }
};

PVOC_GLOBALS *PVOC_AllocGlobals(CSOUND *csound)
{
    PVOC_GLOBALS  *p;
#ifdef BETA
    csound->Message(csound, "calling alloc globals");
#endif
    if (UNLIKELY(csound->CreateGlobalVariable(csound, "pvocGlobals",
                                              sizeof(PVOC_GLOBALS)) != 0)){
      csound->ErrorMsg(csound, Str("Error allocating PVOC globals"));
      return NULL;
    }
    p = (PVOC_GLOBALS*) csound->QueryGlobalVariable(csound, "pvocGlobals");
    p->csound = csound;
    p->dsputil_sncTab = (MYFLT*) NULL;
    p->pvbufreadaddr = (PVBUFREAD*) NULL;
    p->tbladr = (TABLESEG*) NULL;

    return p;
}

LINKAGE_BUILTIN(pvoc_localops)