package com.PP.IntelliSeg.RepetionSegmenter.SMRSegmenter.base; import java.util.Set; import android.util.SparseIntArray; import com.PP.IntelliSeg.Abstract.Segment; import com.PP.LunarTabsAndroid.APIs.FileOpAPI; import com.PP.LunarTabsAndroid.APIs.TuxGuitarUtil; import com.PP.LunarTabsAndroid.UI.DataModel; public class SMRSegment extends Segment { /** * Start set for segment */ protected Set<Integer> startSet; /** * Computed total repeat count. */ protected int totalRepeatCount=0; /** * Instantiate * @param start * @param end */ public SMRSegment(int start, int end, Set<Integer> startSet) { super(start, end); this.startSet = startSet; } @Override public void play() { DataModel dataModel = DataModel.getInstance(); TuxGuitarUtil.playClip(dataModel.getSong(), FileOpAPI.SAVE_PATH, getStart(),getEnd(),dataModel.getTrackNum(), dataModel.getTempoScale()); } @Override public String getTitlePresentation() { /* StringBuffer rtn = new StringBuffer(); rtn.append("M ("); List<Integer> list = new ArrayList<Integer>(startSet); Collections.sort(list); for(int occ : list) { rtn.append(occ); rtn.append(","); } rtn.deleteCharAt(rtn.length()-1); rtn.append(")"); return rtn.toString(); */ return "(M" + (this.getStart()+1) + " x" + totalRepeatCount + ")"; } /** * Computes total repeat count based on both explicit and implicit repeats. * @param repeats */ public void computeTotalRepeatCount(SparseIntArray repeats) { totalRepeatCount = startSet.size(); for(int start : startSet) { totalRepeatCount = totalRepeatCount + repeats.get((start+1)); } } }