2 SuperCollider real time audio synthesis system
3 Copyright (c) 2002 James McCartney. All rights reserved.
4 http://www.audiosynth.com
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 #include "SC_SynthDef.h"
26 #include "HashTable.h"
30 int32 mName
[kSCNameLen
];
35 typedef HashTable
<ParamSpec
, Malloc
> ParamSpecTable
;
42 uint32 mNumAudioControls
;
50 float32
*mInitialControlValues
;
53 struct UnitSpec
*mUnitSpecs
;
55 size_t mWiresAllocSize
, mUnitsAllocSize
, mCalcUnitsAllocSize
;
56 size_t mControlAllocSize
, mMapControlsAllocSize
, mMapControlRatesAllocSize
;
58 uint32 mNumParamSpecs
;
59 ParamSpec
*mParamSpecs
;
60 ParamSpecTable
*mParamSpecTable
;
63 struct GraphDef
* mNext
;
65 struct GraphDef
*mOriginal
;
68 struct GraphDef
* mVariants
;
70 typedef struct GraphDef GraphDef
;
72 GraphDef
* GraphDef_Recv(World
*inWorld
, char *buffer
, GraphDef
*inList
);
73 GraphDef
* GraphDef_Load(struct World
*inWorld
, const char *filename
, GraphDef
* inList
);
74 GraphDef
* GraphDef_LoadDir(struct World
*inWorld
, char *dirname
, GraphDef
* inList
);
75 GraphDef
* GraphDef_LoadGlob(World
*inWorld
, const char *pattern
, GraphDef
*inList
);
76 void GraphDef_Remove(World
*inWorld
, int32
*inName
);
77 void GraphDef_DeleteMsg(struct World
*inWorld
, GraphDef
*inDef
);
78 void GraphDef_Dump(GraphDef
*inGraphDef
);
79 int32
GetHash(ParamSpec
* inParamSpec
);
80 int32
* GetKey(ParamSpec
* inParamSpec
);