Revision 24b1f190
Added by Leszek Koltunski over 3 years ago
src/main/java/org/distorted/library/type/Dynamic.java | ||
---|---|---|
56 | 56 |
// |
57 | 57 |
// and similarly Y(t) and Z(t). |
58 | 58 |
|
59 |
public abstract class Dynamic implements InternalMaster.Slave
|
|
59 |
public abstract class Dynamic |
|
60 | 60 |
{ |
61 | 61 |
/** |
62 | 62 |
* One revolution takes us from the first point to the last and back to first through the shortest path. |
... | ... | |
164 | 164 |
private long mCorrectedTime; |
165 | 165 |
private static long mPausedTime; |
166 | 166 |
|
167 |
private static final int JOB_RESET = 0; |
|
168 |
|
|
169 |
private static class Job |
|
170 |
{ |
|
171 |
int type; |
|
172 |
|
|
173 |
Job(int t) |
|
174 |
{ |
|
175 |
type = t; |
|
176 |
} |
|
177 |
} |
|
178 |
|
|
179 |
private ArrayList<Job> mJobs; |
|
180 |
|
|
181 | 167 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
182 | 168 |
// hide this from Javadoc |
183 | 169 |
|
... | ... | |
540 | 526 |
} |
541 | 527 |
} |
542 | 528 |
|
543 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
544 |
|
|
545 |
private void resetToBeginningNow() |
|
546 |
{ |
|
547 |
mStartTime = -1; |
|
548 |
} |
|
549 |
|
|
550 | 529 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
551 | 530 |
|
552 | 531 |
abstract void interpolate(float[] buffer, int offset, float time); |
... | ... | |
619 | 598 |
*/ |
620 | 599 |
public void resetToBeginning() |
621 | 600 |
{ |
622 |
if( mJobs==null ) mJobs = new ArrayList<>(); |
|
623 |
|
|
624 |
mJobs.add(new Job(JOB_RESET)); |
|
625 |
InternalMaster.newSlave(this); |
|
601 |
mStartTime = -1; |
|
626 | 602 |
} |
627 | 603 |
|
628 | 604 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
759 | 735 |
interpolate(buffer,offset, (float)(pos-(int)pos) ); |
760 | 736 |
return false; |
761 | 737 |
} |
762 |
|
|
763 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
764 |
|
|
765 |
public void doWork() |
|
766 |
{ |
|
767 |
int num = mJobs.size(); |
|
768 |
Job job; |
|
769 |
|
|
770 |
for(int i=0; i<num; i++) |
|
771 |
{ |
|
772 |
job = mJobs.remove(0); |
|
773 |
|
|
774 |
if (job.type == JOB_RESET ) |
|
775 |
{ |
|
776 |
resetToBeginningNow(); |
|
777 |
} |
|
778 |
} |
|
779 |
} |
|
780 |
|
|
781 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
782 | 738 |
} |
Also available in: Unified diff
RubikControl: fixes; progress.