| 684 | } |
| 685 | |
| 686 | void PatchCableSource::RemovePatchCable(PatchCable* cable, bool fromUserAction) |
| 687 | { |
| 688 | mOwner->PreRepatch(this); |
| 689 | bool hadAudioReceiver = (mAudioReceiver != nullptr); |
| 690 | mAudioReceiver = nullptr; |
| 691 | if (cable != nullptr) |
| 692 | { |
| 693 | RemoveFromVector(dynamic_cast<INoteReceiver*>(cable->GetTarget()), mNoteReceivers); |
| 694 | RemoveFromVector(dynamic_cast<IPulseReceiver*>(cable->GetTarget()), mPulseReceivers); |
| 695 | } |
| 696 | RemoveFromVector(cable, mPatchCables); |
| 697 | mOwner->PostRepatch(this, fromUserAction); |
| 698 | delete cable; |
| 699 | |
| 700 | if (hadAudioReceiver) |
| 701 | TheSynth->ArrangeAudioSourceDependencies(); |
| 702 | } |
| 703 | |
| 704 | void PatchCableSource::ClearPatchCables() |
| 705 | { |
no test coverage detected