コード例 #1
1
ファイル: DecimatedTrail.java プロジェクト: Sciss/Meloncillo
  // @synchronization caller must have sync on fileSync !!!
  protected DecimatedStake allocAsync(Span span) throws IOException {
    if (!Thread.holdsLock(fileSync)) throw new IllegalMonitorStateException();

    final long floorStart = span.start & MAXMASK;
    final long ceilStop = (span.stop + MAXCEILADD) & MAXMASK;
    final Span extSpan =
        (floorStart == span.start) && (ceilStop == span.stop)
            ? span
            : new Span(floorStart, ceilStop);
    final Span[] fileSpans = new Span[SUBNUM];
    final Span[] biasedSpans = new Span[SUBNUM];
    long fileStart;
    long fileStop;

    if (tempFAsync == null) {
      // XXX THIS IS THE PLACE TO OPEN WAVEFORM CACHE FILE
      tempFAsync = createTempFiles();
    }
    synchronized (tempFAsync) {
      for (int i = 0; i < SUBNUM; i++) {
        fileStart = tempFAsync[i].getFrameNum();
        fileStop = fileStart + (extSpan.getLength() >> decimHelps[i].shift);
        tempFAsync[i].setFrameNum(fileStop);
        fileSpans[i] = new Span(fileStart, fileStop);
        biasedSpans[i] = extSpan;
      }
    }
    return new DecimatedStake(extSpan, tempFAsync, fileSpans, biasedSpans, decimHelps);
  }
コード例 #2
0
ファイル: DecimatedTrail.java プロジェクト: Sciss/Meloncillo
  protected void removeAllDep(Object source, List stakes, CompoundEdit ce, Span union) {
    if (DEBUG) System.err.println("removeAllDep " + union.toString());
    if (1 == 1) throw new IllegalArgumentException("n.y.i.");

    // // ____ dep ____
    // if( dependants != null ) {
    // 	synchronized( dependants ) {
    // 		for( int i = 0; i < dependants.size(); i++ ) {
    // 			((Trail) dependants.get( i )).removeAllDep( source, stakes, ce, union
    // 			);
    // 		}
    // 	}
    // }
  }