public FrameAnalysisResult[] analyseAllFrames(){
  if (analysisResults == null) {
    ArrayList results=new ArrayList();
    FrameAnalysisResult oneResult;
    while ((oneResult=analyseNextFrame()) != null) {
      results.add(oneResult);
    }
    analysisResults=(FrameAnalysisResult[])results.toArray(new FrameAnalysisResult[0]);
  }
  return analysisResults;
}

public FrameAnalysisResult [ ] analyseAllFrames ( ) { if ( analysisResults == null ) { ArrayList results = new ArrayList ( ) ; FrameAnalysisResult oneResult ; while ( ( oneResult = analyseNextFrame ( ) ) != null ) { results . add ( oneResult ) ; } analysisResults = ( FrameAnalysisResult [ ] ) results . toArray ( new FrameAnalysisResult [ 0 ] ) ; } return analysisResults ; }
analyse the entire signal as frames . stop as soon as the first frame reaches or passes the end of the signal . repeated access to this method returns a stored version of the results .
