16 typedef struct PlugIn {
19 TTPtr audioGraphOutlet;
22 typedef PlugIn* PlugInPtr;
26 PlugInPtr PlugInNew(SymbolPtr msg, AtomCount argc, AtomPtr argv);
27 void PlugInFree(PlugInPtr
self);
28 void PlugInAssist(PlugInPtr
self,
void* b,
long msg,
long arg,
char* dst);
29 TTErr PlugInSetup(PlugInPtr
self);
30 MaxErr PlugInSetSidechain(PlugInPtr
self,
TTPtr attr, AtomCount ac, AtomPtr ap);
34 static ClassPtr sPlugInClass;
40 int TTCLASSWRAPPERMAX_EXPORT main(
void)
45 common_symbols_init();
47 c = class_new((
char*)
"j.plug.in=", (method)PlugInNew, (method)PlugInFree,
sizeof(PlugIn), (method)0L, A_GIMME, 0);
49 class_addmethod(c, (method)PlugInSetup,
"audio.setup", A_CANT, 0);
54 class_addmethod(c, (method)PlugInAssist,
"assist", A_CANT, 0);
55 class_addmethod(c, (method)object_obex_dumpout,
"dumpout", A_CANT, 0);
57 CLASS_ATTR_LONG(c,
"sidechain", 0, PlugIn, attrSidechain);
58 CLASS_ATTR_STYLE(c,
"sidechain", 0,
"onoff");
59 CLASS_ATTR_ACCESSORS(c,
"sidechain", NULL, PlugInSetSidechain);
61 class_register(_sym_box, c);
70 PlugInPtr PlugInNew(SymbolPtr msg, AtomCount argc, AtomPtr argv)
72 PlugInPtr
self = PlugInPtr(object_alloc(sPlugInClass));
78 v.
set(0,
TT(
"plugtastic.input"));
82 attr_args_process(
self, argc, argv);
83 object_obex_store((
void*)
self, _sym_dumpout, (
object*)outlet_new(
self, NULL));
84 self->audioGraphOutlet = outlet_new((t_pxobject*)
self,
"audio.connect");
90 void PlugInFree(PlugInPtr
self)
100 void PlugInAssist(PlugInPtr
self,
void* b,
long msg,
long arg,
char* dst)
103 strcpy(dst,
"multichannel audio connection and control messages");
106 strcpy(dst,
"multichannel audio connection");
108 strcpy(dst,
"dumpout");
113 TTErr PlugInSetup(PlugInPtr
self)
117 atom_setobj(a+0, ObjectPtr(self->audioGraphObject));
118 atom_setlong(a+1, 0);
119 outlet_anything(self->audioGraphOutlet, GENSYM(
"audio.connect"), 2, a);
124 MaxErr PlugInSetSidechain(PlugInPtr
self,
TTPtr attr, AtomCount ac, AtomPtr ap)
126 self->attrSidechain = atom_getlong(ap);
127 self->audioGraphObject->mKernel->setAttributeValue(
TT(
"sidechain"),
TTBoolean(self->attrSidechain));
bool TTBoolean
Boolean flag, same as Boolean on the Mac.
TTErr TTObjectBaseRelease(TTObjectBasePtr *anObject)
DEPRECATED.
Provides all necessary definitions for AudioGraph API.
TTErr MaxAudioGraphReset(t_object *x, long vectorSize)
Clear the list of source objects from which this object will try to pull audio.
Base class for all first-class Jamoma objects.
TTErr MaxAudioGraphConnect(t_object *x, TTAudioGraphObjectBasePtr audioSourceObject, TTUInt16 sourceOutletNumber)
Method called when an upstream node is connected to this node.
#define TT
This macro is defined as a shortcut for doing a lookup in the symbol table.
void * TTPtr
A generic pointer.
void setSize(const TTUInt16 arg)
DEPRECATED.
TTErr TTObjectBaseInstantiate(const TTSymbol className, TTObjectBasePtr *returnedObjectPtr, const TTValue arguments)
DEPRECATED.
A thin wrapper of Jamoma AudioGraph for use in the Cycling '74 Max/MSP environment.
TTErr MaxAudioGraphObject(t_object *x, TTAudioGraphObjectBasePtr *returnedAudioGraphObject)
Returns a pointer to the Jamoma Audio Graph object that is wrapped by this Max object.
void set(const TTUInt16 index, const T &anElementValue)
DEPRECATED.
TTErr
Jamoma Error Codes Enumeration of error codes that might be returned by any of the TTBlue functions a...
The TTAudioGraphObjectBase wraps a TTDSP object such that it is possible to build a dynamic graph of ...
std::uint32_t TTUInt32
32 bit unsigned integer
TTErr MaxAudioGraphDrop(t_object *x, long inletNumber, t_object *sourceMaxObject, long sourceOutletNumber)
Method called when a connection from an upstream node is dropped.
[doxygenAppendixC_copyExample]