MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / Process

Method Process

Source/InputChannel.cpp:54–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54void InputChannel::Process(double time)
55{
56 PROFILER(InputChannel);
57
58 if (!mEnabled)
59 return;
60
61 int channelSelectionIndex = mChannelSelectionIndex;
62
63 int numChannels = 1;
64 if (mChannelSelectionIndex >= mStereoSelectionOffset)
65 numChannels = 2;
66
67 SyncBuffers(numChannels);
68
69 IAudioReceiver* target = GetTarget();
70
71 if (mChannelSelectionIndex < mStereoSelectionOffset) //mono
72 {
73 float* buffer = gZeroBuffer;
74 int channel = mChannelSelectionIndex;
75 if (channel >= 0 && channel < TheSynth->GetNumInputChannels())
76 buffer = TheSynth->GetInputBuffer(channel);
77
78 if (target)
79 Add(target->GetBuffer()->GetChannel(0), buffer, gBufferSize);
80
81 GetVizBuffer()->WriteChunk(buffer, gBufferSize, 0);
82 }
83 else //stereo
84 {
85 float* buffer1 = gZeroBuffer;
86 float* buffer2 = gZeroBuffer;
87
88 int channel1 = channelSelectionIndex - mStereoSelectionOffset;
89 if (channel1 >= 0 && channel1 < TheSynth->GetNumInputChannels())
90 buffer1 = TheSynth->GetInputBuffer(channel1);
91 int channel2 = channel1 + 1;
92 if (channel2 >= 0 && channel2 < TheSynth->GetNumInputChannels())
93 buffer2 = TheSynth->GetInputBuffer(channel2);
94
95 if (target)
96 {
97 Add(target->GetBuffer()->GetChannel(0), buffer1, gBufferSize);
98 Add(target->GetBuffer()->GetChannel(1), buffer2, gBufferSize);
99 }
100
101 GetVizBuffer()->WriteChunk(buffer1, gBufferSize, 0);
102 GetVizBuffer()->WriteChunk(buffer2, gBufferSize, 1);
103 }
104}
105
106void InputChannel::DrawModule()
107{

Callers

nothing calls this directly

Calls 6

AddFunction · 0.85
GetNumInputChannelsMethod · 0.80
GetInputBufferMethod · 0.80
GetChannelMethod · 0.80
GetBufferMethod · 0.80
WriteChunkMethod · 0.80

Tested by

no test coverage detected