本文整理汇总了C++中AudioInput::setJackPort方法的典型用法代码示例。如果您正苦于以下问题:C++ AudioInput::setJackPort方法的具体用法?C++ AudioInput::setJackPort怎么用?C++ AudioInput::setJackPort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AudioInput
的用法示例。
在下文中一共展示了AudioInput::setJackPort方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clearDelete
void UndoList::clearDelete()
{
if (!empty())
{
for (iUndo iu = begin(); iu != end(); ++iu)
{
Undo& u = *iu;
for (riUndoOp i = u.rbegin(); i != u.rend(); ++i)
{
switch (i->type)
{
case UndoOp::DeleteTrack:
if (i->oTrack)
{
delete i->oTrack;
iUndo iu2 = iu;
++iu2;
for (; iu2 != end(); ++iu2)
{
Undo& u2 = *iu2;
for (riUndoOp i2 = u2.rbegin(); i2 != u2.rend(); ++i2)
{
if (i2->type == UndoOp::DeleteTrack)
{
if (i2->oTrack == i->oTrack)
i2->oTrack = 0;
}
}
}
}
break;
case UndoOp::ModifyTrack:
if (i->oTrack)
{
// Prevent delete i->oTrack from crashing.
switch (i->oTrack->type())
{
case Track::AUDIO_OUTPUT:
{
AudioOutput* ao = (AudioOutput*) i->oTrack;
for (int ch = 0; ch < ao->channels(); ++ch)
ao->setJackPort(ch, 0);
}
break;
case Track::AUDIO_INPUT:
{
AudioInput* ai = (AudioInput*) i->oTrack;
for (int ch = 0; ch < ai->channels(); ++ch)
ai->setJackPort(ch, 0);
}
break;
default:
break;
}
if (!i->oTrack->isMidiTrack())
((AudioTrack*) i->oTrack)->clearEfxList();
delete i->oTrack;
iUndo iu2 = iu;
++iu2;
for (; iu2 != end(); ++iu2)
{
Undo& u2 = *iu2;
for (riUndoOp i2 = u2.rbegin(); i2 != u2.rend(); ++i2)
{
if (i2->type == UndoOp::ModifyTrack)
{
if (i2->oTrack == i->oTrack)
i2->oTrack = 0;
}
}
}
}
break;
//case UndoOp::DeletePart:
//delete i->oPart;
// break;
//case UndoOp::DeleteTempo:
// break;
//case UndoOp::DeleteSig:
// break;
case UndoOp::ModifyMarker:
if (i->copyMarker)
delete i->copyMarker;
default:
break;
}
}
u.clear();
}
}
clear();
}
示例2: switch
void Song::doRedo2()
{
Undo& u = redoList->back();
for (iUndoOp i = u.begin(); i != u.end(); ++i)
{
switch (i->type)
{
case UndoOp::AddTrack:
insertTrack2(i->oTrack, i->trackno);
// Added by T356.
chainTrackParts(i->oTrack, true);
updateFlags |= SC_TRACK_INSERTED;
break;
case UndoOp::DeleteTrack:
removeTrack2(i->oTrack);
updateFlags |= SC_TRACK_REMOVED;
break;
case UndoOp::ModifyTrack:
{
// Unchain the track parts, but don't touch the ref counts.
unchainTrackParts(i->nTrack, false);
//Track* track = i->nTrack->clone();
Track* track = i->nTrack->clone(false);
*(i->nTrack) = *(i->oTrack);
// Prevent delete i->oTrack from crashing.
switch (i->oTrack->type())
{
case Track::AUDIO_OUTPUT:
{
AudioOutput* ao = (AudioOutput*) i->oTrack;
for (int ch = 0; ch < ao->channels(); ++ch)
ao->setJackPort(ch, 0);
}
break;
case Track::AUDIO_INPUT:
{
AudioInput* ai = (AudioInput*) i->oTrack;
for (int ch = 0; ch < ai->channels(); ++ch)
ai->setJackPort(ch, 0);
}
break;
default:
break;
}
if (!i->oTrack->isMidiTrack())
((AudioTrack*) i->oTrack)->clearEfxList();
delete i->oTrack;
i->oTrack = track;
// Chain the track parts, but don't touch the ref counts.
chainTrackParts(i->nTrack, false);
// Connect and register ports.
switch (i->nTrack->type())
{
case Track::AUDIO_OUTPUT:
{
AudioOutput* ao = (AudioOutput*) i->nTrack;
ao->setName(ao->name());
}
break;
case Track::AUDIO_INPUT:
{
AudioInput* ai = (AudioInput*) i->nTrack;
ai->setName(ai->name());
}
break;
default:
break;
}
// Update solo states, since the user may have changed soloing on other tracks.
updateSoloStates();
updateFlags |= SC_TRACK_MODIFIED;
}
break;
/*
// Prevent delete i->oTrack from crashing.
switch(i->oTrack->type())
{
case Track::AUDIO_OUTPUT:
{
AudioOutput* ao = (AudioOutput*)i->oTrack;
for(int ch = 0; ch < ao->channels(); ++ch)
ao->setJackPort(ch, 0);
}
break;
case Track::AUDIO_INPUT:
{
AudioInput* ai = (AudioInput*)i->oTrack;
for(int ch = 0; ch < ai->channels(); ++ch)
ai->setJackPort(ch, 0);
}
//.........这里部分代码省略.........