move loop when deleting in sample editor
This commit is contained in:
parent
c7b24f706f
commit
3b688774fe
|
@ -584,7 +584,34 @@ bool DivSample::strip(unsigned int begin, unsigned int end) {
|
||||||
if (begin>samples) begin=samples;
|
if (begin>samples) begin=samples;
|
||||||
if (end>samples) end=samples;
|
if (end>samples) end=samples;
|
||||||
int count=samples-(end-begin);
|
int count=samples-(end-begin);
|
||||||
if (count<=0) return resize(0);
|
if (count<=0) {
|
||||||
|
loopStart=-1;
|
||||||
|
loopEnd=-1;
|
||||||
|
loop=false;
|
||||||
|
return resize(0);
|
||||||
|
}
|
||||||
|
if (loopStart>(int)begin && loopEnd<(int)end) {
|
||||||
|
loopStart=-1;
|
||||||
|
loopEnd=-1;
|
||||||
|
loop=false;
|
||||||
|
} else {
|
||||||
|
if (loopStart<(int)end && loopStart>(int)begin) {
|
||||||
|
loopStart=end;
|
||||||
|
}
|
||||||
|
if (loopStart>(int)begin && loopEnd>(int)begin) {
|
||||||
|
loopStart-=end-begin;
|
||||||
|
loopEnd-=end-begin;
|
||||||
|
if (loopEnd<0) loopEnd=0;
|
||||||
|
if (loopStart<0) loopStart=0;
|
||||||
|
} else if (loopEnd>(int)begin) {
|
||||||
|
loopEnd=begin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (loopStart>loopEnd) {
|
||||||
|
loopStart=-1;
|
||||||
|
loopEnd=-1;
|
||||||
|
loop=false;
|
||||||
|
}
|
||||||
if (depth==DIV_SAMPLE_DEPTH_8BIT) {
|
if (depth==DIV_SAMPLE_DEPTH_8BIT) {
|
||||||
if (data8!=NULL) {
|
if (data8!=NULL) {
|
||||||
signed char* oldData8=data8;
|
signed char* oldData8=data8;
|
||||||
|
|
|
@ -215,7 +215,7 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
}
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
bool doLoop=(sample->isLoopable());
|
bool doLoop=(sample->loop);
|
||||||
if (ImGui::Checkbox("Loop",&doLoop)) { MARK_MODIFIED
|
if (ImGui::Checkbox("Loop",&doLoop)) { MARK_MODIFIED
|
||||||
if (doLoop) {
|
if (doLoop) {
|
||||||
sample->loop=true;
|
sample->loop=true;
|
||||||
|
|
Loading…
Reference in a new issue