ERIS CORE

◆ connect()

void AudioConnection::connect ( void  )

Definition at line 206 of file AudioStream.cpp.

207 {
209 
210  if (isConnected) return;
211  if (dest_index > pDst->num_inputs) return;
212  //__disable_irq();
214  if (p == NULL) {
215  pSrc->destination_list = this;
216  } else {
217  while (p->next_dest) {
218  if (p->pSrc == this->pSrc && p->pDst == this->pDst
219  && p->src_index == this->src_index && p->dest_index == this->dest_index) {
220  //Source and destination already connected through another connection, abort
221  __enable_irq();
222  return;
223  }
224  p = p->next_dest;
225  }
226  p->next_dest = this;
227  }
228  this->next_dest = NULL;
229  pSrc->numConnections++;
230  pSrc->active = true;
231 
232  pDst->numConnections++;
233  pDst->active = true;
234 
235  isConnected = true;
236 
237  __enable_irq();
238 }
const char PROGMEM p[][16]
Definition: Eris.h:247
AudioStream * pDst
Definition: AudioStream.h:119
AudioStream * pSrc
Definition: AudioStream.h:116
unsigned char dest_index
Definition: AudioStream.h:121
AudioConnection * next_dest
Definition: AudioStream.h:122
AudioConnection * destination_list
Definition: AudioStream.h:205
uint8_t numConnections
Definition: AudioStream.h:203
unsigned char num_inputs
Definition: AudioStream.h:192

References AudioStream::active, dest_index, AudioStream::destination_list, isConnected, next_dest, AudioStream::num_inputs, AudioStream::numConnections, p, pDst, and pSrc.