YES!!!!!
FIXED!!!!!!!!!!!! no more chewed off triangle! finally I can move on!
This commit is contained in:
parent
083dd4885b
commit
c4852a7104
|
@ -443,7 +443,7 @@ struct DivDispatchOscBuffer {
|
||||||
unsigned int needle;
|
unsigned int needle;
|
||||||
unsigned short readNeedle;
|
unsigned short readNeedle;
|
||||||
//unsigned short lastSample;
|
//unsigned short lastSample;
|
||||||
bool follow;
|
bool follow, mustNotKillNeedle;
|
||||||
short data[65536];
|
short data[65536];
|
||||||
|
|
||||||
inline void putSample(const size_t pos, const short val) {
|
inline void putSample(const size_t pos, const short val) {
|
||||||
|
@ -470,6 +470,11 @@ struct DivDispatchOscBuffer {
|
||||||
unsigned short start=needle>>16;
|
unsigned short start=needle>>16;
|
||||||
unsigned short end=(needle+calc)>>16;
|
unsigned short end=(needle+calc)>>16;
|
||||||
|
|
||||||
|
if (mustNotKillNeedle && start!=end) {
|
||||||
|
start++;
|
||||||
|
end++;
|
||||||
|
}
|
||||||
|
|
||||||
//logD("C %d %d %d",len,calc,rate);
|
//logD("C %d %d %d",len,calc,rate);
|
||||||
|
|
||||||
if (end<start) {
|
if (end<start) {
|
||||||
|
@ -485,12 +490,14 @@ struct DivDispatchOscBuffer {
|
||||||
inline void end(size_t len) {
|
inline void end(size_t len) {
|
||||||
size_t calc=len*rateMul;
|
size_t calc=len*rateMul;
|
||||||
needle+=calc;
|
needle+=calc;
|
||||||
|
mustNotKillNeedle=needle&0xffff;//(data[needle>>16]!=-1);
|
||||||
//data[needle>>16]=lastSample;
|
//data[needle>>16]=lastSample;
|
||||||
}
|
}
|
||||||
void reset() {
|
void reset() {
|
||||||
memset(data,-1,65536*sizeof(short));
|
memset(data,-1,65536*sizeof(short));
|
||||||
needle=0;
|
needle=0;
|
||||||
readNeedle=0;
|
readNeedle=0;
|
||||||
|
mustNotKillNeedle=false;
|
||||||
//lastSample=0;
|
//lastSample=0;
|
||||||
}
|
}
|
||||||
void setRate(unsigned int r) {
|
void setRate(unsigned int r) {
|
||||||
|
@ -505,7 +512,8 @@ struct DivDispatchOscBuffer {
|
||||||
needle(0),
|
needle(0),
|
||||||
readNeedle(0),
|
readNeedle(0),
|
||||||
//lastSample(0),
|
//lastSample(0),
|
||||||
follow(true) {
|
follow(true),
|
||||||
|
mustNotKillNeedle(false) {
|
||||||
memset(data,-1,65536*sizeof(short));
|
memset(data,-1,65536*sizeof(short));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue