Skip to content

Commit

Permalink
TTAudioEngine / TTAudioGraph: more work toward making it work in with…
Browse files Browse the repository at this point in the history
… the engine being an extension.
  • Loading branch information
+1m place committed Jul 11, 2013
1 parent 395be2b commit bcaa2cb
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 27 deletions.
2 changes: 1 addition & 1 deletion AudioGraph/library/includes/TTAudioGraphOutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class TTAUDIOGRAPH_EXPORT TTAudioGraphOutput : public TTAudioObjectBase
TTCLASS_SETUP(TTAudioGraphOutput)

public:
TTObjectBasePtr audioEngine; ///< The audio engine that signals are output to.
TTObjectBasePtr mAudioEngine; ///< The audio engine that signals are output to.
TTAudioSignalPtr placeHolder; ///< An unused audio signal that we pass
TTAudioGraphObjectPtr owner; ///< The owning AudioGraph instance
TTValuePtr me;
Expand Down
8 changes: 6 additions & 2 deletions AudioGraph/library/source/TTAudioGraphInput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ TT_AUDIO_CONSTRUCTOR
d.getValue(engine);

mAudioEngine = (TTAudioObjectBase*)engine;
mBuffer = (TTAudioEnginePtr(mAudioEngine))->TTAudioEngineGetInputSignalReference();

TTValue dummy;
TTValue buffer;
mAudioEngine->sendMessage("getInputSignalReference", dummy, buffer);
mBuffer = (TTAudioSignalPtr)TTPtr(buffer);

addAttributeWithGetterAndSetter(SampleRate, kTypeUInt32);
addAttributeWithGetterAndSetter(VectorSize, kTypeUInt16);
Expand All @@ -54,7 +58,7 @@ TT_AUDIO_CONSTRUCTOR

TTAudioGraphInput::~TTAudioGraphInput()
{
TTAudioEngine::destroy();
//TTAudioEngine::destroy();
TTObjectBaseRelease(&mBuffer);
}

Expand Down
46 changes: 29 additions & 17 deletions AudioGraph/library/source/TTAudioGraphOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "TTAudioGraphObject.h"
#include "TTAudioGraphInlet.h" // required for windows build
#include "TTAudioGraphOutput.h"
#include "TTAudioEngine.h"
//#include "TTAudioEngine.h"

#define thisTTClass TTAudioGraphOutput
#define thisTTClassName "dac"
Expand All @@ -32,7 +32,11 @@ TT_AUDIO_CONSTRUCTOR,
mSampleStamp(0)
{
TTObjectBaseInstantiate(kTTSym_audiosignal, &placeHolder, 1);
audioEngine = TTAudioEngine::create();
// audioEngine = TTAudioEngine::create();
TTDictionary d("j@m0m@_audioengine");
TTPtr engine = NULL;
d.getValue(engine);
mAudioEngine = (TTAudioObjectBase*)engine;

addAttributeWithGetterAndSetter(SampleRate, kTypeUInt32);
addAttributeWithGetterAndSetter(VectorSize, kTypeUInt16);
Expand All @@ -53,15 +57,15 @@ TT_AUDIO_CONSTRUCTOR,

me = new TTValue;
(*me) = (TTObjectBasePtr)this;
audioEngine->sendMessage(TT("addCallbackObserver"), *me, kTTValNONE);
mAudioEngine->sendMessage(TT("addCallbackObserver"), *me, kTTValNONE);
}


TTAudioGraphOutput::~TTAudioGraphOutput()
{
audioEngine->sendMessage(TT("removeCallbackObserver"), *me, kTTValNONE);
mAudioEngine->sendMessage(TT("removeCallbackObserver"), *me, kTTValNONE);
delete me;
TTAudioEngine::destroy();
//TTAudioEngine::destroy();
TTObjectBaseRelease(&placeHolder);
}

Expand All @@ -73,14 +77,14 @@ TTErr TTAudioGraphOutput::start()
getVectorSize(v);
mInitData.vectorSize = v;

audioEngine->sendMessage(TT("start"));
mAudioEngine->sendMessage(TT("start"));
return kTTErrNone;
}


TTErr TTAudioGraphOutput::stop()
{
audioEngine->sendMessage(TT("stop"));
mAudioEngine->sendMessage(TT("stop"));
return kTTErrNone;
}

Expand All @@ -107,55 +111,63 @@ TTErr TTAudioGraphOutput::setOwner(TTValue& newOwner, TTValue&)

TTErr TTAudioGraphOutput::getAvailableDeviceNames(const TTValue&, TTValue& returnedDeviceNames)
{
return audioEngine->sendMessage(TT("getAvailableOutputDeviceNames"), kTTValNONE, returnedDeviceNames);
return mAudioEngine->sendMessage(TT("getAvailableOutputDeviceNames"), kTTValNONE, returnedDeviceNames);
}


TTErr TTAudioGraphOutput::getCpuLoad(const TTValue&, TTValue& returnedValue)
{
return audioEngine->sendMessage(TT("getCpuLoad"), kTTValNONE, returnedValue);
return mAudioEngine->sendMessage(TT("getCpuLoad"), kTTValNONE, returnedValue);
}


TTErr TTAudioGraphOutput::setSampleRate(const TTValue& newValue)
{
return audioEngine->setAttributeValue(kTTSym_sampleRate, const_cast<TTValue&>(newValue));
return mAudioEngine->setAttributeValue(kTTSym_sampleRate, const_cast<TTValue&>(newValue));
}

TTErr TTAudioGraphOutput::getSampleRate(TTValue& returnedValue)
{
return audioEngine->getAttributeValue(kTTSym_sampleRate, returnedValue);
return mAudioEngine->getAttributeValue(kTTSym_sampleRate, returnedValue);
}


TTErr TTAudioGraphOutput::setVectorSize(const TTValue& newValue)
{
return audioEngine->setAttributeValue(kTTSym_vectorSize, const_cast<TTValue&>(newValue));
return mAudioEngine->setAttributeValue(kTTSym_vectorSize, const_cast<TTValue&>(newValue));
}

TTErr TTAudioGraphOutput::getVectorSize(TTValue& returnedValue)
{
return audioEngine->getAttributeValue(kTTSym_vectorSize, returnedValue);
return mAudioEngine->getAttributeValue(kTTSym_vectorSize, returnedValue);
}


TTErr TTAudioGraphOutput::setDevice(const TTValue& newValue)
{
return audioEngine->setAttributeValue(TT("outputDevice"), const_cast<TTValue&>(newValue));
return mAudioEngine->setAttributeValue(TT("outputDevice"), const_cast<TTValue&>(newValue));
}

TTErr TTAudioGraphOutput::getDevice(TTValue& returnedValue)
{
return audioEngine->getAttributeValue(TT("outputDevice"), returnedValue);
return mAudioEngine->getAttributeValue(TT("outputDevice"), returnedValue);
}


TTErr TTAudioGraphOutput::processAudio(TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs)
{
if(inputs->numAudioSignals){
TTAudioSignal& in = inputs->getSignal(0);

(*((TTAudioEnginePtr)audioEngine)->mOutputBuffer) += in;
TTAudioSignal* out = NULL;

TTValue dummy;
TTValue buffer;
mAudioEngine->sendMessage("getOutputSignalReference", dummy, buffer);
out = (TTAudioSignalPtr)TTPtr(buffer);

//(*((TTAudioEnginePtr)mAudioEngine)->mOutputBuffer) += in;
(*out) += in;

return kTTErrNone;
}
else
Expand Down
13 changes: 9 additions & 4 deletions DSP/extensions/AudioEngine/TTAudioEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ TT_BASE_OBJECT_CONSTRUCTOR,
addMessageProperty(addCallbackObserver, hidden, YES);
addMessageWithArguments(removeCallbackObserver);
addMessageProperty(removeCallbackObserver, hidden, YES);

addMessageWithArguments(getInputSignalReference);
addMessageWithArguments(getOutputSignalReference);

// Set defaults -- there are no devices actually named 'default', so we set the values directly
mInputDevice = "default";
Expand Down Expand Up @@ -381,15 +384,17 @@ TTInt32 TTAudioEngine::callback(const TTFloat32* input,
}


TTAudioSignalPtr TTAudioEngine::TTAudioEngineGetInputSignalReference()
TTErr TTAudioEngine::getInputSignalReference(TTValue& anUnusedInput, TTValue& aReturnedAudioSignalPtr)
{
return (TTAudioSignalPtr)TTObjectBaseReference(mInputBuffer);
aReturnedAudioSignalPtr = (TTPtr)TTObjectBaseReference(mInputBuffer);
return kTTErrNone;
}


TTAudioSignalPtr TTAudioEngine::TTAudioEngineGetOutputSignalReference()
TTErr TTAudioEngine::getOutputSignalReference(TTValue& anUnusedInput, TTValue& aReturnedAudioSignalPtr)
{
return (TTAudioSignalPtr)TTObjectBaseReference(mOutputBuffer);
aReturnedAudioSignalPtr = (TTPtr)TTObjectBaseReference(mOutputBuffer);
return kTTErrNone;
}


Expand Down
6 changes: 3 additions & 3 deletions DSP/extensions/AudioEngine/TTAudioEngine.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,13 @@ class TTDSP_EXPORT TTAudioEngine : public TTObjectBase {
/** Get the reference pointer for the input signal.
@return The reference pointer for the input signal.
*/
TTAudioSignalPtr TTAudioEngineGetInputSignalReference();

TTErr getInputSignalReference(TTValue& anUnusedInput, TTValue& aReturnedAudioSignalPtr)


/** Get the reference pointer for the output signal.
@return The reference pointer for the output signal.
*/
TTAudioSignalPtr TTAudioEngineGetOutputSignalReference();
TTErr getOutputSignalReference(TTValue& anUnusedInput, TTValue& aReturnedAudioSignalPtr)

///// Attribute Accessors /////

Expand Down

0 comments on commit bcaa2cb

Please sign in to comment.