Jamoma API  0.6.0.a19
TTAudioSignalArray.cpp
Go to the documentation of this file.
1 /** @file
2  *
3  * @ingroup dspLibrary
4  *
5  * @brief Container for an array of #TTAudioSignal pointers.
6  *
7  * @details TODO: put more info here
8  *
9  * @see TTAudioSignal
10  *
11  * @authors Tim Place
12  *
13  * @copyright Copyright © 2008 by Timothy Place @n
14  * This code is licensed under the terms of the "New BSD License" @n
15  * http://creativecommons.org/licenses/BSD/
16  */
17 
18 #include "TTDSP.h"
19 
20 #define thisTTClass TTAudioSignalArray
21 #define thisTTClassName "audiosignalarray"
22 #define thisTTClassTags "dspLibrary, audio, processor, dynamics, envelope"
23 
24 
25 /****************************************************************************************************/
26 
28  mAudioSignals(NULL),
29  mAudioSignalMaxCount(0),
30  numAudioSignals(0)
31 {
32  TTChannelCount initialMaxNumAudioSignals = arguments;
33 
34  // TT_ASSERT(audio_signal_array_has_valid arg, initialMaxNumAudioSignals > 0);
35  // Can't assert because, for example, an audio graph can have objects with no inlets
36  // So we just enforce a lower-limit of 1:
37 
38  if (initialMaxNumAudioSignals < 1)
39  initialMaxNumAudioSignals = 1;
40  setMaxNumAudioSignals(initialMaxNumAudioSignals);
41  numAudioSignals = initialMaxNumAudioSignals;
42 }
43 
44 
45 TTAudioSignalArray::~TTAudioSignalArray()
46 {
47  chuck();
48 }
49 
50 
51 void TTAudioSignalArray::chuck()
52 {
53  for (TTChannelCount i=0; i<mAudioSignalMaxCount ;i++) {
54  if (mAudioSignals[i])
56  }
57  delete[] mAudioSignals;
58 }
59 
60 
61 void TTAudioSignalArray::init()
62 {
64  for (TTChannelCount i=0; i<mAudioSignalMaxCount ;i++)
65  mAudioSignals[i] = NULL;
66  numAudioSignals = 0;
67 }
68 
69 
70 void TTAudioSignalArray::releaseAll()
71 {
72  for (TTChannelCount i=0; i<mAudioSignalMaxCount; i++)
74 }
75 
76 void TTAudioSignalArray::allocAllWithVectorSize(TTUInt16 vs)
77 {
78  for (TTChannelCount i=0; i<mAudioSignalMaxCount; i++)
79  mAudioSignals[i]->allocWithVectorSize(vs);
80 }
81 
82 TTUInt16 TTAudioSignalArray::getVectorSize()
83 {
84  return mAudioSignals[0]->getVectorSizeAsInt();
85 }
86 
87 void TTAudioSignalArray::setAllMaxNumChannels(TTChannelCount newMaxNumChannels)
88 {
89  for (TTChannelCount i=0; i<mAudioSignalMaxCount; i++)
90  mAudioSignals[i]->setMaxNumChannels(newMaxNumChannels);
91 }
92 
93 void TTAudioSignalArray::setAllNumChannels(TTChannelCount newNumChannels)
94 {
95  for (TTChannelCount i=0; i<mAudioSignalMaxCount; i++)
96  mAudioSignals[i]->setNumChannels(newNumChannels);
97 }
98 
99 
100 TTErr TTAudioSignalArray::setSignal(TTChannelCount index, const TTAudioSignalPtr aSignal)
101 {
102  if (mAudioSignals[index] != aSignal) {
105  }
106  return kTTErrNone;
107 }
108 
std::uint16_t TTUInt16
16 bit unsigned integer
Definition: TTBase.h:176
TTErr TTObjectBaseRelease(TTObjectBasePtr *anObject)
DEPRECATED.
TTFOUNDATION_EXPORT TTEnvironment * ttEnvironment
The environment object has one instance, which is global in scope.
Base class for all first-class Jamoma objects.
Definition: TTObjectBase.h:109
TTChannelCount mAudioSignalMaxCount
The maximum number of audio signals that can be passed in this array.
Jamoma DSP Library.
TTErr releaseInstance(TTObjectBasePtr *anObject)
Release an instance of a TTObjectBase class.
The TTAudioSignal class represents N vectors of audio samples for M channels.
Definition: TTAudioSignal.h:57
TTUInt16 TTChannelCount
Data type used when counting the number of channels in multi-channel audio signals and processes...
Definition: TTAudioSignal.h:31
TTErr
Jamoma Error Codes Enumeration of error codes that might be returned by any of the TTBlue functions a...
Definition: TTBase.h:342
TTAudioSignalPtr * mAudioSignals
The actual array of audio signal pointers.
TTObjectBasePtr TTObjectBaseReference(TTObjectBasePtr anObject)
DEPRECATED.
No Error.
Definition: TTBase.h:343
TT_OBJECT_CONSTRUCTOR
Constructor macro.
TTChannelCount numAudioSignals
The number of audio signal pointers which are actually valid.