Jamoma API  0.6.0.a19
TTAudioGraphDescription.h
Go to the documentation of this file.
1 /** @file
2  *
3  * @ingroup audioGraphLibrary
4  *
5  * @brief Describes a node in an audio processing graph
6  *
7  * @details
8  *
9  * @authors Timothy Place, Trond Lossius
10  *
11  * @copyright Copyright © 2010, Timothy Place @n
12  * This code is licensed under the terms of the "New BSD License" @n
13  * http://creativecommons.org/licenses/BSD/
14  */
15 
16 
17 #ifndef __TTAUDIOGRAPH_DESCRIPTION_H__
18 #define __TTAUDIOGRAPH_DESCRIPTION_H__
19 
20 #include "TTAudioGraph.h"
21 #include "TTGraphDescription.h"
22 
23 /******************************************************************************************/
24 
26 typedef std::vector<TTAudioGraphDescription> TTAudioGraphDescriptionVector;
27 typedef TTAudioGraphDescriptionVector::iterator TTAudioGraphDescriptionIter;
28 
29 /** \ingroup typedefs
30  Here I'm documenting TTAudioGraphDescriptionVectors
31  */
32 typedef std::vector<TTAudioGraphDescriptionVector> TTAudioGraphDescriptionVectors;
33 
34 /** \ingroup typedefs
35  Here I'm documenting TTAudioGraphDescriptionVectorsIter
36  */
37 typedef TTAudioGraphDescriptionVectors::iterator TTAudioGraphDescriptionVectorsIter;
38 
39 
40 typedef std::vector<TTString> TTStringVector;
41 //typedef TTStringVector::iterator TTStringVectorIter;
42 
43 
44 /** This object provides a description of a TTAudioGraphObject
45  and its sources.
46 */
47 class TTAUDIOGRAPH_EXPORT TTAudioGraphDescription : public TTGraphDescription {
48 public:
49  // A bunch of arrays (one for each inlet), each with an array of descriptions for nodes connected to that inlet
50  TTAudioGraphDescriptionVectors mAudioDescriptionsForInlets;
51 
52  // AudioGraph objects are also Graph objects, so this contains the description in a Graph
53  TTGraphDescription mControlDescription;
54  TTUInt32 mOutletNumber; // instantaneous outlet number for a connection
55  TTUInt32 mNumInlets;
56  TTUInt32 mNumOutlets;
57 
59  mOutletNumber(0)
60  {
61  ;
62  }
63 
64 
65  TTAudioGraphDescription& operator = (const TTAudioGraphDescription &newValue)
66  {
67  // inherited
68  mClassName = newValue.mClassName;
69  mInputDescriptions = newValue.mInputDescriptions;
70  mObjectInstance = newValue.mObjectInstance;
71  mID = newValue.mID;
72  mUserData = newValue.mUserData;
73 
74  // audio specific
75  mAudioDescriptionsForInlets = newValue.mAudioDescriptionsForInlets;
76  mControlDescription = newValue.mControlDescription;
77  mOutletNumber = newValue.mOutletNumber;
78  mNumInlets = newValue.mNumInlets;
79  mNumOutlets = newValue.mNumOutlets;
80 
81  return *this;
82  }
83 
84 
85 
86  void exportRuby(const TTString& fullpathToFile);
87  int exportRubyNode(TTString& rubyContent, int& index, TTStringVector& nodeNames);
88 
89 
90  void exportCpp(const TTString& fullpathToFile);
91  int exportCppNode(TTString& content, int& index, TTStringVector& nodeNames);
92 
93 
94  void exportMax(const TTString& fullpathToFile);
95  int exportMaxNode(TTString& content, int& index, TTStringVector& nodeNames);
96 };
97 
99 
100 
101 #endif // __TTAUDIOGRAPH_DESCRIPTION_H__
TTPtr mUserData
A place for a descriptions' user to store custom information, per node.
This object provides a description of a TTAudioGraphObject and its sources.
Registers classes for the primary AudioGraph library.
std::vector< TTAudioGraphDescriptionVector > TTAudioGraphDescriptionVectors
Here I'm documenting TTAudioGraphDescriptionVectors.
TTAudioGraphDescriptionVectors::iterator TTAudioGraphDescriptionVectorsIter
Here I'm documenting TTAudioGraphDescriptionVectorsIter.
TTInt32 mID
An index number that uniquely identifies this instance.
std::uint32_t TTUInt32
32 bit unsigned integer
Definition: TTBase.h:178
The TTString class is used to represent a string.
Definition: TTString.h:34
This object represents a single 'outlet' from a TTGraphObjectBase.
Jamoma Asynchronous Object Graph Layer.