1675 |
} |
} |
1676 |
|
|
1677 |
|
|
1678 |
void DimRegionEdit::set_UnityNote(gig::DimensionRegion* d, uint8_t value) |
void DimRegionEdit::set_UnityNote(gig::DimensionRegion& d, uint8_t value) |
1679 |
{ |
{ |
1680 |
d->UnityNote = value; |
d.UnityNote = value; |
1681 |
} |
} |
1682 |
|
|
1683 |
void DimRegionEdit::set_FineTune(gig::DimensionRegion* d, int16_t value) |
void DimRegionEdit::set_FineTune(gig::DimensionRegion& d, int16_t value) |
1684 |
{ |
{ |
1685 |
d->FineTune = value; |
d.FineTune = value; |
1686 |
} |
} |
1687 |
|
|
1688 |
void DimRegionEdit::set_Crossfade_in_start(gig::DimensionRegion* d, |
void DimRegionEdit::set_Crossfade_in_start(gig::DimensionRegion& d, |
1689 |
uint8_t value) |
uint8_t value) |
1690 |
{ |
{ |
1691 |
d->Crossfade.in_start = value; |
d.Crossfade.in_start = value; |
1692 |
if (d->Crossfade.in_end < value) set_Crossfade_in_end(d, value); |
if (d.Crossfade.in_end < value) set_Crossfade_in_end(d, value); |
1693 |
} |
} |
1694 |
|
|
1695 |
void DimRegionEdit::set_Crossfade_in_end(gig::DimensionRegion* d, |
void DimRegionEdit::set_Crossfade_in_end(gig::DimensionRegion& d, |
1696 |
uint8_t value) |
uint8_t value) |
1697 |
{ |
{ |
1698 |
d->Crossfade.in_end = value; |
d.Crossfade.in_end = value; |
1699 |
if (value < d->Crossfade.in_start) set_Crossfade_in_start(d, value); |
if (value < d.Crossfade.in_start) set_Crossfade_in_start(d, value); |
1700 |
if (value > d->Crossfade.out_start) set_Crossfade_out_start(d, value); |
if (value > d.Crossfade.out_start) set_Crossfade_out_start(d, value); |
1701 |
} |
} |
1702 |
|
|
1703 |
void DimRegionEdit::set_Crossfade_out_start(gig::DimensionRegion* d, |
void DimRegionEdit::set_Crossfade_out_start(gig::DimensionRegion& d, |
1704 |
uint8_t value) |
uint8_t value) |
1705 |
{ |
{ |
1706 |
d->Crossfade.out_start = value; |
d.Crossfade.out_start = value; |
1707 |
if (value < d->Crossfade.in_end) set_Crossfade_in_end(d, value); |
if (value < d.Crossfade.in_end) set_Crossfade_in_end(d, value); |
1708 |
if (value > d->Crossfade.out_end) set_Crossfade_out_end(d, value); |
if (value > d.Crossfade.out_end) set_Crossfade_out_end(d, value); |
1709 |
} |
} |
1710 |
|
|
1711 |
void DimRegionEdit::set_Crossfade_out_end(gig::DimensionRegion* d, |
void DimRegionEdit::set_Crossfade_out_end(gig::DimensionRegion& d, |
1712 |
uint8_t value) |
uint8_t value) |
1713 |
{ |
{ |
1714 |
d->Crossfade.out_end = value; |
d.Crossfade.out_end = value; |
1715 |
if (value < d->Crossfade.out_start) set_Crossfade_out_start(d, value); |
if (value < d.Crossfade.out_start) set_Crossfade_out_start(d, value); |
1716 |
} |
} |
1717 |
|
|
1718 |
void DimRegionEdit::set_Gain(gig::DimensionRegion* d, int32_t value) |
void DimRegionEdit::set_Gain(gig::DimensionRegion& d, int32_t value) |
1719 |
{ |
{ |
1720 |
d->SetGain(value); |
d.SetGain(value); |
1721 |
} |
} |
1722 |
|
|
1723 |
void DimRegionEdit::set_LoopEnabled(gig::DimensionRegion* d, bool value) |
void DimRegionEdit::set_LoopEnabled(gig::DimensionRegion& d, bool value) |
1724 |
{ |
{ |
1725 |
if (value) { |
if (value) { |
1726 |
// create a new sample loop in case there is none yet |
// create a new sample loop in case there is none yet |
1727 |
if (!d->SampleLoops) { |
if (!d.SampleLoops) { |
1728 |
DimRegionChangeGuard(this, d); |
DimRegionChangeGuard(this, &d); |
1729 |
|
|
1730 |
DLS::sample_loop_t loop; |
DLS::sample_loop_t loop; |
1731 |
loop.LoopType = gig::loop_type_normal; |
loop.LoopType = gig::loop_type_normal; |
1732 |
// loop the whole sample by default |
// loop the whole sample by default |
1733 |
loop.LoopStart = 0; |
loop.LoopStart = 0; |
1734 |
loop.LoopLength = |
loop.LoopLength = |
1735 |
(d->pSample) ? d->pSample->SamplesTotal : 0; |
(d.pSample) ? d.pSample->SamplesTotal : 0; |
1736 |
d->AddSampleLoop(&loop); |
d.AddSampleLoop(&loop); |
1737 |
} |
} |
1738 |
} else { |
} else { |
1739 |
if (d->SampleLoops) { |
if (d.SampleLoops) { |
1740 |
DimRegionChangeGuard(this, d); |
DimRegionChangeGuard(this, &d); |
1741 |
|
|
1742 |
// delete ALL existing sample loops |
// delete ALL existing sample loops |
1743 |
while (d->SampleLoops) { |
while (d.SampleLoops) { |
1744 |
d->DeleteSampleLoop(&d->pSampleLoops[0]); |
d.DeleteSampleLoop(&d.pSampleLoops[0]); |
1745 |
} |
} |
1746 |
} |
} |
1747 |
} |
} |
1748 |
} |
} |
1749 |
|
|
1750 |
void DimRegionEdit::set_LoopType(gig::DimensionRegion* d, uint32_t value) |
void DimRegionEdit::set_LoopType(gig::DimensionRegion& d, uint32_t value) |
1751 |
{ |
{ |
1752 |
if (d->SampleLoops) d->pSampleLoops[0].LoopType = value; |
if (d.SampleLoops) d.pSampleLoops[0].LoopType = value; |
1753 |
} |
} |
1754 |
|
|
1755 |
void DimRegionEdit::set_LoopStart(gig::DimensionRegion* d, uint32_t value) |
void DimRegionEdit::set_LoopStart(gig::DimensionRegion& d, uint32_t value) |
1756 |
{ |
{ |
1757 |
if (d->SampleLoops) { |
if (d.SampleLoops) { |
1758 |
d->pSampleLoops[0].LoopStart = |
d.pSampleLoops[0].LoopStart = |
1759 |
d->pSample ? |
d.pSample ? |
1760 |
std::min(value, uint32_t(d->pSample->SamplesTotal - |
std::min(value, uint32_t(d.pSample->SamplesTotal - |
1761 |
d->pSampleLoops[0].LoopLength)) : |
d.pSampleLoops[0].LoopLength)) : |
1762 |
0; |
0; |
1763 |
} |
} |
1764 |
} |
} |
1765 |
|
|
1766 |
void DimRegionEdit::set_LoopLength(gig::DimensionRegion* d, uint32_t value) |
void DimRegionEdit::set_LoopLength(gig::DimensionRegion& d, uint32_t value) |
1767 |
{ |
{ |
1768 |
if (d->SampleLoops) { |
if (d.SampleLoops) { |
1769 |
d->pSampleLoops[0].LoopLength = |
d.pSampleLoops[0].LoopLength = |
1770 |
d->pSample ? |
d.pSample ? |
1771 |
std::min(value, uint32_t(d->pSample->SamplesTotal - |
std::min(value, uint32_t(d.pSample->SamplesTotal - |
1772 |
d->pSampleLoops[0].LoopStart)) : |
d.pSampleLoops[0].LoopStart)) : |
1773 |
0; |
0; |
1774 |
} |
} |
1775 |
} |
} |
1776 |
|
|
1777 |
void DimRegionEdit::set_LoopInfinite(gig::DimensionRegion* d, bool value) |
void DimRegionEdit::set_LoopInfinite(gig::DimensionRegion& d, bool value) |
1778 |
{ |
{ |
1779 |
if (d->pSample) { |
if (d.pSample) { |
1780 |
if (value) d->pSample->LoopPlayCount = 0; |
if (value) d.pSample->LoopPlayCount = 0; |
1781 |
else if (d->pSample->LoopPlayCount == 0) d->pSample->LoopPlayCount = 1; |
else if (d.pSample->LoopPlayCount == 0) d.pSample->LoopPlayCount = 1; |
1782 |
} |
} |
1783 |
} |
} |
1784 |
|
|
1785 |
void DimRegionEdit::set_LoopPlayCount(gig::DimensionRegion* d, uint32_t value) |
void DimRegionEdit::set_LoopPlayCount(gig::DimensionRegion& d, uint32_t value) |
1786 |
{ |
{ |
1787 |
if (d->pSample) d->pSample->LoopPlayCount = value; |
if (d.pSample) d.pSample->LoopPlayCount = value; |
1788 |
} |
} |
1789 |
|
|
1790 |
void DimRegionEdit::nullOutSampleReference() { |
void DimRegionEdit::nullOutSampleReference() { |