Jamoma API  0.6.0.a19
TTFoundationAPI.h
1 /*
2  * Jamoma Foundation API
3  * Copyright © 2008, Timothy Place
4  *
5  * License: This code is licensed under the terms of the "New BSD License"
6  * http://creativecommons.org/licenses/BSD/
7  */
8 
9 #ifndef __TT_FOUNDATION_API_H__
10 #define __TT_FOUNDATION_API_H__
11 
12 // CORE
13 #include "TTFoundation.h"
14 #include "TTDataObjectBase.h"
15 #include "TTDictionary.h"
16 #include "TTEnvironment.h"
17 #include "TTHash.h"
18 #include "TTInterpolate.h"
19 #include "TTLimits.h"
20 #include "TTList.h"
21 #include "TTMatrixBase.h"
22 #include "TTMatrixArray.h"
23 #include "TTMutex.h"
24 #include "TTObjectBase.h"
25 #include "TTQueue.h"
26 #include "TTSymbol.h"
27 #include "TTSymbolTable.h"
28 #include "TTSymbolCache.h"
29 
30 #include "TTRegex.h"
31 
32 #include "TTAddress.h"
33 #include "TTAddressTable.h"
34 #include "TTAddressCache.h"
35 #include "TTAddressItem.h"
36 #include "TTNode.h"
37 #include "TTNodeDirectory.h"
38 
39 #include "TTUnitTest.h"
40 #include "TTValue.h"
41 #include "TTObject.h"
42 #include "TTObjectTemplates.h"
43 #include "TTMatrix.h"
44 #include "TTMatrixObject.h"
45 
46 #ifdef TT_PLATFORM_WIN
47 #define TT_EXTENSION_EXPORT __declspec(dllexport)
48 #else
49 #define TT_EXTENSION_EXPORT __attribute__((visibility("default")))
50 #endif
51 
52 
53 /** A macro for setting up the class binding to the library in extension classes.
54  @param strname A C-string that names the object as it should be listed in the environment. */
55 #define TT_CLASS_SETUP(strname, tags, className)\
56  \
57  extern "C" TT_EXTENSION_EXPORT TTObject* instantiate ## className (TTSymbol, TTValue& arguments); \
58  \
59  TTObject* instantiate ## className (TTSymbol, TTValue& arguments) \
60  {\
61  return new className (arguments);\
62  }\
63  \
64  extern "C" TT_EXTENSION_EXPORT TTErr loadTTExtension(void);\
65  TTErr loadTTExtension(void)\
66  {\
67  TTFoundationInit();\
68  TTClassRegister(strname, tags, & instantiate ## className);\
69  return kTTErrNone;\
70  }
71 
72 #endif // __TT_FOUNDATION_API_H__
2-dimensional matrix of compound values with N elements each.
The Jamoma Object Base Class.
Limiting and Constraining Utilities.
Create Jamoma object instances.
Implementation of template code exported by TTObject.
TTDataObjectBase is the base class for all data generating and processing objects.
Foundation Dictionary Class.
TTMatrixObject is a TTObject specialized for processing matrices
TTMatrix wraps a TTMatrixBase for use.
TTEnvironment is a global object providing information on the environemt.
References an object using a name, an instance and any contextual environnement information.
Provides a common way of representing composite values.
Interpolation Utilities.