Jamoma API
0.6.0.a19
|
The global object maintains all global attributes/settings for the Jamoma environment. More...
#include <TTEnvironment.h>
Public Member Functions | |
TTEnvironment () | |
Constructor. | |
virtual | ~TTEnvironment () |
Destructor. | |
TTErr | getVersion (const TTValue &anInputValue, TTValue &anOutputValue) |
Retrieve the environment version number. More... | |
TTErr | registerClass (const TTSymbol className, const TTString &tagString, const TTObjectBaseInstantiationMethod anInstantiationMethod) |
Register the unit name, and associate it with the constructor to be called. More... | |
TTErr | getAllClassNames (const TTValue &anInputValue, TTValue &anOutputValue) |
Remove a class from the environment's registry. More... | |
TTErr | getClassNamesWithTags (TTValue &classNames, const TTValue &searchTags) |
Retreive the names of all registered TTObjectBase classes in the environment that are associated with the given tag(s). More... | |
TTErr | getClassNamesForTags (const TTValue &anInputValue, TTValue &anOutputValue) |
A message-bound version of getClassNamesWithTags() | |
TTErr | isClassRegistered (const TTSymbol &className) |
Check if a class is registered. More... | |
TTErr | createInstance (const TTSymbol className, TTObjectBasePtr *anObject, const TTValue &anArgument) |
Create a new instance of a registered TTObjectBase class. More... | |
TTObjectBasePtr | referenceInstance (TTObjectBasePtr anObject) |
Create a reference to an object. More... | |
TTErr | releaseInstance (TTObjectBasePtr *anObject) |
Release an instance of a TTObjectBase class. More... | |
Public Member Functions inherited from TTObjectBase | |
virtual | ~TTObjectBase () |
Destructor. | |
TTUInt16 | getReferenceCount () |
Query an object to get its current reference count. More... | |
TTUInt32 | getObserverCount () const |
Query an object to get the number of observers. More... | |
TTErr | registerAttribute (const TTSymbol name, const TTDataType type, void *address) |
Register an attribute. More... | |
TTErr | extendAttribute (const TTSymbol name, const TTObjectBasePtr extendedObject, const TTSymbol extendedName) |
Extend the attribute of an existing TTObjectBase to this TTObjectBase (using another attribute name) More... | |
TTErr | removeAttribute (const TTSymbol name) |
Remove an attribute. More... | |
TTErr | findAttribute (const TTSymbol name, TTAttribute **attr) |
Find an attribute. More... | |
TTErr | setAttributeValue (const TTSymbol name, TTValue &value) |
Set an attribute value for an object. More... | |
template<class T > | |
TTErr | set (const TTSymbol aName, T aValue) |
Set an attribute value for an object This is the same as calling setAttributeValue(). More... | |
TTErr | getAttributeValue (const TTSymbol name, TTValue &value) |
Get an attribute value for an object. More... | |
template<class T > | |
TTErr | get (const TTSymbol aName, T &aReturnedValue) |
Get an attribute value for an object This is the same as calling getAttributeValue(). More... | |
TTSymbol | getAttributeType (const TTSymbol name) |
Return the type of an attribute as a symbol. More... | |
TTErr | getAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Get the getterFlags of an attribute. More... | |
TTErr | setAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Set the getterFlags of an attribute. More... | |
TTErr | getAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Get the setterFlags of an attribute. More... | |
TTErr | setAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Set the setterFlags of an attribute. More... | |
TTErr | registerAttributeProperty (const TTSymbol attributeName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter) |
Register an attribute property. More... | |
TTErr | registerMessageProperty (const TTSymbol messageName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter) |
Register an message property. More... | |
TTErr | getAttribute (const TTSymbol name, TTAttributePtr *attributeObject) |
Search for and locate an attribute. More... | |
TTErr | getMessage (const TTSymbol name, TTMessagePtr *messageObject) |
Search for and locate a message. More... | |
void | getAttributeNames (TTValue &attributeNameList) |
Return a list of names of the available attributes. More... | |
void | getMessageNames (TTValue &messageNameList) |
Return a list of names of the available messages. More... | |
TTSymbol | getName () const |
Return the name of this class. More... | |
TTErr | registerMessage (const TTSymbol name, TTMethod method) |
Register a message with this object. More... | |
TTErr | findMessage (const TTSymbol name, TTMessage **message) |
Find a message registered with this object. More... | |
TTErr | removeMessage (const TTSymbol name) |
Remove a message. More... | |
TTErr | sendMessage (const TTSymbol name) |
TODO: Document this function. More... | |
TTErr | registerObserverForMessage (const TTObject &observingObject, const TTSymbol messageName) |
Register an observer for a message. More... | |
TTErr | registerObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName) |
Register an observer for an attribute. More... | |
TTErr | registerObserverForNotifications (const TTObject &observingObject) |
Register an observer. More... | |
TTErr | unregisterObserverForMessage (const TTObject &observingObject, const TTSymbol messageName) |
Unregister an observer for a message. More... | |
TTErr | unregisterObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName) |
Unregister an observer for an attribute. More... | |
TTErr | unregisterObserverForNotifications (const TTObject &observingObject) |
Unregister an observer for notifications. More... | |
TTErr | sendNotification (const TTSymbol name, const TTValue &arguments) |
Send a notification. More... | |
TTErr | logMessage (TTImmutableCString fmtstring,...) |
Log messages scoped to this object instance. More... | |
TTErr | logWarning (TTImmutableCString fmtstring,...) |
Log warnings scoped to this object instance. More... | |
TTErr | logError (TTImmutableCString fmtstring,...) |
Log errors scoped to this object instance. More... | |
TTErr | logDebug (TTImmutableCString fmtstring,...) |
Log messages (scoped to this object instance) to output only if the basic debugging flag is enabled in the environment. More... | |
TTErr | lock () |
Lock the object in order to ensure thread-safe processing. More... | |
TTErr | unlock () |
Unlock the object when thread-safe processing is no longer required. More... | |
TTBoolean | isLocked () |
Query if the object currently is locked for thread-safe processing. More... | |
TTBoolean | waitForLock () |
If the object is locked (e.g. More... | |
Public Attributes | |
TTBoolean | mDebugBasic |
Attribute: Basic debug functionality is enabled when true. | |
TTBoolean | mDebugMessaging |
Attribute: Should all message traffic be logged? | |
TTUInt32 | mSampleRate |
Current sample rate as understood by the environment as a whole. | |
TTBoolean | mBenchmarking |
Attribute: Enable benchmarking in TTAudioObject and TTDataObject ? | |
Public Attributes inherited from TTObjectBase | |
TTBoolean | valid |
If the object isn't completely built, or is in the process of freeing, this will be false. | |
TTBoolean | track |
enable the print of a log message to ease the track of reference counting mechanism on an instance More... | |
Additional Inherited Members | |
Protected Member Functions inherited from TTObjectBase | |
TTObjectBase (const TTValue arguments) | |
Constructor. More... | |
Protected Attributes inherited from TTObjectBase | |
TTList | observers |
List of all objects watching this object for life-cycle and other changes. | |
The global object maintains all global attributes/settings for the Jamoma environment.
All attribute members of the environment are made public, since essentially every class is a friend. They should, however, be treated as read-only.
Definition at line 47 of file TTEnvironment.h.
TTErr TTEnvironment::createInstance | ( | const TTSymbol | className, |
TTObjectBasePtr * | anObject, | ||
const TTValue & | anArgument | ||
) |
Create a new instance of a registered TTObjectBase class.
className | Pass in a TTSymbol with the name of the unit to load. |
anObject | Upon successful return, the value will be set to a TTObjectBase which is the new instance. If the pointer is passed in as non-NULL then createUnit() will try to free to the existing object to which it points prior to instantiating the new unit. |
anArgument | For most audio processing objects, this should be passed the maximum number of channels. For this reason, we overload this method with a TTUint16 argument as a convenience. |
Definition at line 219 of file TTEnvironment.cpp.
References TTClass::createInstance(), kTTErrGeneric, TTHash::lookup(), and releaseInstance().
Referenced by TTDataObjectBase::TTDataObjectBase(), TTObject::TTObject(), and TTObjectBaseInstantiate().
Remove a class from the environment's registry.
If the executable from which it is loaded is no longer referenced by other classes, then also unload the executable.
className | The name of the class to remove the registry. |
This probably means that the hash is going to need to map not to a function pointer, but rather to a struct or an object that keeps all of the class's information bundled together. TTErr refreshAllClasses();Retreive the names of all registered TTObjectBase classes in the environment.
anInputValue | This is not being used. |
anOutputValue | Pass a TTValue that will be filled with an array of TTSymbol pointers with the names of the classes. |
Definition at line 136 of file TTEnvironment.cpp.
References TTHash::getKeys().
Referenced by TTObject::GetRegisteredClassNames(), TTEnvironment(), and TTGetRegisteredClassNames().
Retreive the names of all registered TTObjectBase classes in the environment that are associated with the given tag(s).
classNames | An array of TTSymbols upon return. |
tags | An array of tags by which to search the environment's registry. |
Definition at line 157 of file TTEnvironment.cpp.
References TTValue::append(), TTValue::clear(), kTTErrGeneric, kTTErrNone, TTHash::lookup(), and TTValue::size().
Referenced by getClassNamesForTags(), TTObject::GetRegisteredClassNamesForTags(), and TTGetRegisteredClassNamesForTags().
Retrieve the environment version number.
anInputValue | This is ignored. |
anOutputValue | Returns the current version number of the environment. |
Definition at line 62 of file TTEnvironment.cpp.
References kTTErrNone.
Referenced by TTEnvironment().
Check if a class is registered.
className | the name of a class |
Definition at line 212 of file TTEnvironment.cpp.
References TTHash::lookup().
TTObjectBasePtr TTEnvironment::referenceInstance | ( | TTObjectBasePtr | anObject | ) |
Create a reference to an object.
Definition at line 260 of file TTEnvironment.cpp.
References TTObjectBase::track, TTLogMessage(), and TTObjectBase::valid.
Referenced by TTObject::operator=(), TTObject::TTObject(), and TTObjectBaseReference().
TTErr TTEnvironment::registerClass | ( | const TTSymbol | className, |
const TTString & | tagString, | ||
const TTObjectBaseInstantiationMethod | anInstantiationMethod | ||
) |
Register the unit name, and associate it with the constructor to be called.
className | The name of the class to register. |
tags | A comma-delimited list of tags in a string. |
anInstantiationMethod | A pointer to the C-function that is used to create a new instance of the class. |
Definition at line 69 of file TTEnvironment.cpp.
References TTHash::append(), TTSymbol::c_str(), kTTErrValueNotFound, TTHash::lookup(), TTValue::size(), TTValue::transformCSVStringToSymbolArray(), and TTLogDebug().
TTErr TTEnvironment::releaseInstance | ( | TTObjectBasePtr * | anObject | ) |
Release an instance of a TTObjectBase class.
At the moment this is simply freeing the class, but it may use reference counting in the future (e.g. for TTBuffer references).
There are a couple of reasons we want to have this wrapper around the delete operator.
unit | A pointer to the unit to free. |
Definition at line 281 of file TTEnvironment.cpp.
References kTTErrNone, TTLogMessage(), and TTObjectBase::waitForLock().
Referenced by createInstance(), TTObject::operator=(), TTObjectBaseRelease(), TTDataObjectBase::~TTDataObjectBase(), and TTObject::~TTObject().