tilde~
Puredata Qt-based GUI
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OOPDClassBase.h
Go to the documentation of this file.
1 // License: GPL3
2 //
3 // OOPDClassBase.h
4 //
5 //
6 // Created by Alex Nadzharov on 26/03/17.
7 //
8 //
9 
10 #ifndef OOPDCLASSBASE_h
11 #define OOPDCLASSBASE_h
12 
13 #include "m_pd.h"
14 
15 #include <map>
16 #include <vector>
17 
18 //todo
19 //#include "ceammc_atomlist.h"
20 
21 #include "../xpd-transition/xpd-headers.h"
22 
23 using namespace std;
24 using namespace xpd;
25 
26 namespace tilde {
27 
28 //class OPClass;
29 //class OPInstance;
30 class PatchWindow;
31 class PatchWindowController;
32 
36 class OPOutputs {
37 private:
38  vector<t_outlet*> _outlets;
39 
40 public:
41  void addOutlet(t_outlet* outlet)
42  {
43  _outlets.push_back(outlet);
44  }
45 
46  void freeOutlet(t_outlet* outlet)
47  {
48  _outlets.erase(remove(_outlets.begin(), _outlets.end(), outlet), _outlets.end());
49  }
50 
51  void clear()
52  {
53  _outlets.clear();
54  }
55 
56  void outBang()
57  {
58  for (vector<t_outlet*>::iterator it = _outlets.begin(); it != _outlets.end(); ++it) {
59  outlet_bang(*it);
60  }
61  }
62 
63  void outList(PdArguments list)
64  {
65  // XPD-TODO
66  /*
67  for (vector<t_outlet*>::iterator it = _outlets.begin(); it != _outlets.end(); ++it) {
68  list.output(*it);
69  }
70  */
71  }
72 };
73 
78 private:
79  map<string, string> _methodNames;
80  map<string, string> _propertyNames;
81  map<string, string> _signalNames;
82 
83 public:
84  //todo
85  string _className;
89 
90  void addMethod(string methodName, string referenceName)
91  {
92  _methodNames[methodName] = referenceName;
93  }
94 
95  void freeMethod(string methodName)
96  {
97  _methodNames.erase(methodName);
98  }
99 
100  void addProperty(string propertyName, string referenceName)
101  {
102  _propertyNames[propertyName] = referenceName;
103  }
104 
105  void freeProperty(string propertyName)
106  {
107  _propertyNames.erase(propertyName);
108  }
109 
110  void addSignal(string signalName, string referenceName)
111  {
112  _signalNames[signalName] = referenceName;
113  }
114 
115  void freeSignal(string signalName)
116  {
117  _signalNames.erase(signalName);
118  }
119 
120  // -------------------
121 
122  PdArguments getPropertyList()
123  {
124  PdArguments ret;
125 
126  // XPD-TODO
127  /*
128  for (map<string, string>::iterator it = _propertyNames.begin(); it != _propertyNames.end(); ++it) {
129  ret.append(Atom(gensym(it->first.c_str())));
130  }
131  */
132 
133  return ret;
134  }
135 
136  PdArguments getMethodList()
137  {
138  PdArguments ret;
139 
140  // XPD-TODO
141  /*
142  for (map<string, string>::iterator it = _methodNames.begin(); it != _methodNames.end(); ++it) {
143  ret.append(Atom(gensym(it->first.c_str())));
144  }
145  */
146 
147  return ret;
148  }
149 
150  PdArguments getSignalList()
151  {
152  PdArguments ret;
153 
154  /*
155  for (map<string, string>::iterator it = _signalNames.begin(); it != _signalNames.end(); ++it) {
156  ret.append(Atom(gensym(it->first.c_str())));
157  }
158  */
159 
160  return ret;
161  }
162 
163  // --------------------
164 
165  map<string, string> getMethodNames()
166  {
167  return _methodNames;
168  }
169  map<string, string> getPropertyNames()
170  {
171  return _propertyNames;
172  }
173 
174  // ---------------------
175  bool hasProperty(string propertyName)
176  {
177  return _propertyNames.find(propertyName) != _propertyNames.end();
178  }
179 
180  //temp
181  void setPropertyNames(map<string, string> pNames)
182  {
183  _propertyNames = pNames;
184  }
185 };
186 }
187 
188 #endif /* OOPD_h */
string _className
Definition: OOPDClassBase.h:85
void freeOutlet(t_outlet *outlet)
Definition: OOPDClassBase.h:46
void addProperty(string propertyName, string referenceName)
Definition: OOPDClassBase.h:100
EXTERN void outlet_bang(t_outlet *x)
void freeSignal(string signalName)
Definition: OOPDClassBase.h:115
void addSignal(string signalName, string referenceName)
Definition: OOPDClassBase.h:110
PdArguments getMethodList()
Definition: OOPDClassBase.h:136
stores pointers to t_outlets of pd objects
Definition: OOPDClassBase.h:36
#define t_canvas
Definition: m_pd.h:205
void addMethod(string methodName, string referenceName)
Definition: OOPDClassBase.h:90
void clear()
Definition: OOPDClassBase.h:51
void outList(PdArguments list)
Definition: OOPDClassBase.h:63
void addOutlet(t_outlet *outlet)
Definition: OOPDClassBase.h:41
map< string, string > getPropertyNames()
Definition: OOPDClassBase.h:169
bool hasProperty(string propertyName)
Definition: OOPDClassBase.h:175
PdArguments getPropertyList()
Definition: OOPDClassBase.h:122
The Patch window controller.
Definition: PatchWindowController.h:48
PatchWindowController * _patchWindow
Definition: OOPDClassBase.h:88
#define t_outlet
Definition: m_pd.h:189
void freeProperty(string propertyName)
Definition: OOPDClassBase.h:105
base data structure for class and instance: name, canvas, symbol
Definition: OOPDClassBase.h:77
void freeMethod(string methodName)
Definition: OOPDClassBase.h:95
Definition: m_pd.h:110
void setPropertyNames(map< string, string > pNames)
Definition: OOPDClassBase.h:181
map< string, string > getMethodNames()
Definition: OOPDClassBase.h:165
void outBang()
Definition: OOPDClassBase.h:56
PdArguments getSignalList()
Definition: OOPDClassBase.h:150
t_canvas * _canvas
Definition: OOPDClassBase.h:86
t_symbol * _symbol
Definition: OOPDClassBase.h:87