413 |
eVCFResonanceController.signal_changed().connect( |
eVCFResonanceController.signal_changed().connect( |
414 |
sigc::mem_fun(*this, &DimRegionEdit::VCFResonanceController_changed) ); |
sigc::mem_fun(*this, &DimRegionEdit::VCFResonanceController_changed) ); |
415 |
|
|
416 |
eCrossfade_in_start.signal_value_changed().connect( |
eCrossfade_in_start.signal_changed_by_user().connect( |
417 |
sigc::mem_fun(*this, &DimRegionEdit::crossfade1_changed)); |
sigc::mem_fun(*this, &DimRegionEdit::crossfade1_changed)); |
418 |
eCrossfade_in_end.signal_value_changed().connect( |
eCrossfade_in_end.signal_changed_by_user().connect( |
419 |
sigc::mem_fun(*this, &DimRegionEdit::crossfade2_changed)); |
sigc::mem_fun(*this, &DimRegionEdit::crossfade2_changed)); |
420 |
eCrossfade_out_start.signal_value_changed().connect( |
eCrossfade_out_start.signal_changed_by_user().connect( |
421 |
sigc::mem_fun(*this, &DimRegionEdit::crossfade3_changed)); |
sigc::mem_fun(*this, &DimRegionEdit::crossfade3_changed)); |
422 |
eCrossfade_out_end.signal_value_changed().connect( |
eCrossfade_out_end.signal_changed_by_user().connect( |
423 |
sigc::mem_fun(*this, &DimRegionEdit::crossfade4_changed)); |
sigc::mem_fun(*this, &DimRegionEdit::crossfade4_changed)); |
424 |
|
|
425 |
eSampleLoopEnabled.signal_toggled().connect( |
eSampleLoopEnabled.signal_toggled().connect( |
426 |
sigc::mem_fun(*this, &DimRegionEdit::loop_enabled_toggled)); |
sigc::mem_fun(*this, &DimRegionEdit::loop_enabled_toggled)); |
427 |
eSampleLoopStart.signal_value_changed().connect( |
eSampleLoopStart.signal_changed_by_user().connect( |
428 |
sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements)); |
sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements)); |
429 |
eSampleLoopLength.signal_value_changed().connect( |
eSampleLoopLength.signal_changed_by_user().connect( |
430 |
sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements)); |
sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements)); |
431 |
eSampleLoopInfinite.signal_toggled().connect( |
eSampleLoopInfinite.signal_toggled().connect( |
432 |
sigc::mem_fun(*this, &DimRegionEdit::loop_infinite_toggled)); |
sigc::mem_fun(*this, &DimRegionEdit::loop_infinite_toggled)); |
499 |
table[pageno]->attach(boolentry.widget, 1, 3, rowno, rowno + 1, |
table[pageno]->attach(boolentry.widget, 1, 3, rowno, rowno + 1, |
500 |
Gtk::FILL, Gtk::SHRINK); |
Gtk::FILL, Gtk::SHRINK); |
501 |
rowno++; |
rowno++; |
502 |
|
boolentry.signal_changed_by_user().connect(dimreg_changed_signal.make_slot()); |
503 |
} |
} |
504 |
|
|
505 |
void DimRegionEdit::addProp(LabelWidget& prop) |
void DimRegionEdit::addProp(LabelWidget& prop) |
509 |
table[pageno]->attach(prop.widget, 2, 3, rowno, rowno + 1, |
table[pageno]->attach(prop.widget, 2, 3, rowno, rowno + 1, |
510 |
Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); |
Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); |
511 |
rowno++; |
rowno++; |
512 |
|
prop.signal_changed_by_user().connect(dimreg_changed_signal.make_slot()); |
513 |
} |
} |
514 |
|
|
515 |
|
|
520 |
set_sensitive(d); |
set_sensitive(d); |
521 |
if (!d) return; |
if (!d) return; |
522 |
|
|
|
update_gui = false; |
|
523 |
wSample->set_text(d->pSample ? d->pSample->pInfo->Name.c_str() : "NULL"); |
wSample->set_text(d->pSample ? d->pSample->pInfo->Name.c_str() : "NULL"); |
524 |
eEG1PreAttack.set_ptr(&d->EG1PreAttack); |
eEG1PreAttack.set_ptr(&d->EG1PreAttack); |
525 |
eEG1Attack.set_ptr(&d->EG1Attack); |
eEG1Attack.set_ptr(&d->EG1Attack); |
584 |
eReleaseVelocityResponseCurve.set_ptr(&d->ReleaseVelocityResponseCurve); |
eReleaseVelocityResponseCurve.set_ptr(&d->ReleaseVelocityResponseCurve); |
585 |
eReleaseVelocityResponseDepth.set_ptr(&d->ReleaseVelocityResponseDepth); |
eReleaseVelocityResponseDepth.set_ptr(&d->ReleaseVelocityResponseDepth); |
586 |
eReleaseTriggerDecay.set_ptr(&d->ReleaseTriggerDecay); |
eReleaseTriggerDecay.set_ptr(&d->ReleaseTriggerDecay); |
587 |
|
|
588 |
|
eCrossfade_in_start.set_ptr(0); |
589 |
|
eCrossfade_in_end.set_ptr(0); |
590 |
|
eCrossfade_out_start.set_ptr(0); |
591 |
|
eCrossfade_out_end.set_ptr(0); |
592 |
eCrossfade_in_start.set_ptr(&d->Crossfade.in_start); |
eCrossfade_in_start.set_ptr(&d->Crossfade.in_start); |
593 |
eCrossfade_in_end.set_ptr(&d->Crossfade.in_end); |
eCrossfade_in_end.set_ptr(&d->Crossfade.in_end); |
594 |
eCrossfade_out_start.set_ptr(&d->Crossfade.out_start); |
eCrossfade_out_start.set_ptr(&d->Crossfade.out_start); |
595 |
eCrossfade_out_end.set_ptr(&d->Crossfade.out_end); |
eCrossfade_out_end.set_ptr(&d->Crossfade.out_end); |
596 |
|
|
597 |
ePitchTrack.set_ptr(&d->PitchTrack); |
ePitchTrack.set_ptr(&d->PitchTrack); |
598 |
eDimensionBypass.set_ptr(&d->DimensionBypass); |
eDimensionBypass.set_ptr(&d->DimensionBypass); |
599 |
ePan.set_ptr(&d->Pan); |
ePan.set_ptr(&d->Pan); |
614 |
updateLoopElements(); |
updateLoopElements(); |
615 |
|
|
616 |
VCFEnabled_toggled(); |
VCFEnabled_toggled(); |
|
|
|
|
update_gui = true; |
|
617 |
} |
} |
618 |
|
|
619 |
void DimRegionEdit::VCFEnabled_toggled() |
void DimRegionEdit::VCFEnabled_toggled() |
784 |
loop.LoopLength = |
loop.LoopLength = |
785 |
(dimregion->pSample) ? dimregion->pSample->GetSize() : 0; |
(dimregion->pSample) ? dimregion->pSample->GetSize() : 0; |
786 |
dimregion->AddSampleLoop(&loop); |
dimregion->AddSampleLoop(&loop); |
787 |
|
dimreg_changed_signal(); |
788 |
} |
} |
789 |
} else { |
} else { |
790 |
// delete ALL existing sample loops |
if (dimregion->SampleLoops) { |
791 |
while (dimregion->SampleLoops) |
// delete ALL existing sample loops |
792 |
dimregion->DeleteSampleLoop(&dimregion->pSampleLoops[0]); |
while (dimregion->SampleLoops) { |
793 |
|
dimregion->DeleteSampleLoop(&dimregion->pSampleLoops[0]); |
794 |
|
} |
795 |
|
dimreg_changed_signal(); |
796 |
|
} |
797 |
} |
} |
798 |
updateLoopElements(); |
updateLoopElements(); |
799 |
} |
} |
805 |
eSampleLoopLength.set_sensitive(active); |
eSampleLoopLength.set_sensitive(active); |
806 |
eSampleLoopType.set_sensitive(active); |
eSampleLoopType.set_sensitive(active); |
807 |
eSampleLoopInfinite.set_sensitive(active); |
eSampleLoopInfinite.set_sensitive(active); |
808 |
|
eSampleLoopStart.set_ptr(0); |
809 |
|
eSampleLoopLength.set_ptr(0); |
810 |
|
eSampleLoopPlayCount.set_ptr(0); |
811 |
|
|
812 |
if (dimregion && dimregion->SampleLoops) { |
if (dimregion && dimregion->SampleLoops) { |
813 |
eSampleLoopStart.set_ptr(&dimregion->pSampleLoops[0].LoopStart); |
eSampleLoopStart.set_ptr(&dimregion->pSampleLoops[0].LoopStart); |
814 |
eSampleLoopLength.set_ptr(&dimregion->pSampleLoops[0].LoopLength); |
eSampleLoopLength.set_ptr(&dimregion->pSampleLoops[0].LoopLength); |
815 |
eSampleLoopType.set_ptr(&dimregion->pSampleLoops[0].LoopType); |
eSampleLoopType.set_ptr(&dimregion->pSampleLoops[0].LoopType); |
|
eSampleLoopPlayCount.set_ptr( |
|
|
(dimregion->pSample) ? &dimregion->pSample->LoopPlayCount : NULL |
|
|
); |
|
816 |
eSampleLoopInfinite.set_active( |
eSampleLoopInfinite.set_active( |
817 |
dimregion->pSample && !dimregion->pSample->LoopPlayCount |
dimregion->pSample && !dimregion->pSample->LoopPlayCount |
818 |
); |
); |
819 |
|
// updated enabled state of loop play count widget |
820 |
|
loop_infinite_toggled(); |
821 |
|
|
822 |
|
eSampleLoopPlayCount.set_ptr( |
823 |
|
(dimregion->pSample) ? &dimregion->pSample->LoopPlayCount : 0 |
824 |
|
); |
825 |
|
|
826 |
// sample loop shall never be longer than the actual sample size |
// sample loop shall never be longer than the actual sample size |
827 |
eSampleLoopStart.set_upper( |
eSampleLoopStart.set_upper( |
828 |
(dimregion->pSample) |
(dimregion->pSample) |
837 |
: 0 |
: 0 |
838 |
); |
); |
839 |
} else { // no sample loop(s) |
} else { // no sample loop(s) |
840 |
eSampleLoopStart.set_ptr(NULL); |
eSampleLoopType.set_ptr(0); |
841 |
eSampleLoopLength.set_ptr(NULL); |
// updated enabled state of loop play count widget |
842 |
eSampleLoopType.set_ptr(NULL); |
loop_infinite_toggled(); |
|
eSampleLoopPlayCount.set_ptr(NULL); |
|
843 |
} |
} |
|
// updated enabled state of loop play count widget |
|
|
loop_infinite_toggled(); |
|
844 |
} |
} |
845 |
|
|
846 |
void DimRegionEdit::loop_infinite_toggled() { |
void DimRegionEdit::loop_infinite_toggled() { |