ERIS CORE

◆ reconnect()

bool AudioConnection::reconnect ( void  )

Definition at line 310 of file AudioStream.cpp.

310  {
311  //Serial.println(F("(eris)AudioConnection:reconnect() connecting by ptr"));
312  /*
313  Serial.print(F("\tsrc name:"));Serial.print(pSrc->shortName);
314  Serial.print(F("\tsrc index:"));Serial.print((uint32_t)src_index);
315  Serial.print(F("\tsrc instance:"));Serial.print((uint32_t)pSrc->instance);
316  Serial.print(F("\tsrc ptr:"));Serial.printf("0x%08x\t",(uint32_t)pSrc);
317 
318  Serial.print(F("\tdst name:"));Serial.print(pDst->shortName);
319  Serial.print(F("\tdst index:"));Serial.print((uint32_t)dest_index);
320  Serial.print(F("\tdst instance:"));Serial.print((uint32_t)pDst->instance);
321  Serial.print(F("\tdst ptr:"));Serial.printf("0x%08x",(uint32_t)pDst);
322  Serial.print(F("\tpSrc->destination_list ptr:"));Serial.printf("0x%08x\n",(uint32_t)pSrc->destination_list);
323  */
324  //Serial.flush();
326 
327  if (isConnected){
328  Serial.println(F("(eris)AudioConnection:reconnect() Warning: Already Connected"));
329  //Serial.flush();
330  return false;
331  }
332  if (dest_index > pDst->num_inputs){
333  Serial.println(F("(eris)AudioConnection:reconnect() Warning: Invalid destination port"));
334  //Serial.flush();
335  return false;
336  }
337  //__disable_irq();
339  if (p == NULL) {
340  //Serial.println("(eris)AudioConnection:reconnect() making first connection");
341  pSrc->destination_list = this;
342  } else {
343  while (p->next_dest) {
344  //Serial.println("(eris)AudioConnection:reconnect() adding a connection");
345  //Serial.flush();
346  if (p->pSrc == this->pSrc && p->pDst == this->pDst
347  && p->src_index == this->src_index && p->dest_index == this->dest_index) {
348  //Source and destination already connected through another connection, abort
349  Serial.println("(eris)AudioConnection:reconnect() Warning: connection already exists");
350  //Serial.flush();
351  return false;
352  }
353  p = p->next_dest;
354  }
355  p->next_dest = this;
356  }
357  this->next_dest = NULL;
358  pSrc->numConnections++;
359  pSrc->active = true;
360 
361  pDst->numConnections++;
362  pDst->active = true;
363 
364  isConnected = true;
365 
366  //__enable_irq();
367  //Serial.println(F("(eris)AudioConnection:reconnect() connection complete"));
368  //Serial.flush();
369  return true;
370 }
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.

Referenced by rewire().

+ Here is the caller graph for this function: