Home | History | Annotate | Download | only in subtitle

Lines Matching refs:cue

59     private final ArrayList<Cue> mActiveCues = new ArrayList<Cue>();
128 public abstract void updateView(ArrayList<Cue> activeCues);
137 for (Iterator<Pair<Long, Cue>> it =
139 Pair<Long, Cue> event = it.next();
140 Cue cue = event.second;
142 if (cue.mEndTimeMs == event.first) {
144 if (DEBUG) Log.v(TAG, "Removing " + cue);
145 mActiveCues.remove(cue);
146 if (cue.mRunID == 0) {
149 } else if (cue.mStartTimeMs == event.first) {
152 if (DEBUG) Log.v(TAG, "Adding " + cue);
153 if (cue.mInnerTimesMs != null) {
154 cue.onTime(timeMs);
156 mActiveCues.add(cue);
157 } else if (cue.mInnerTimesMs != null) {
158 // cue is modified
159 cue.onTime(timeMs);
173 Cue cue = run.mFirstCue;
174 while (cue != null) {
175 mCues.remove(cue);
176 Cue nextCue = cue.mNextInRun;
177 cue.mNextInRun = null;
178 cue = nextCue;
294 protected synchronized boolean addCue(Cue cue) {
295 mCues.add(cue);
297 if (cue.mRunID != 0) {
298 Run run = mRunsByID.get(cue.mRunID);
301 mRunsByID.put(cue.mRunID, run);
302 run.mEndTimeMs = cue.mEndTimeMs;
303 } else if (run.mEndTimeMs < cue.mEndTimeMs) {
304 run.mEndTimeMs = cue.mEndTimeMs;
308 cue.mNextInRun = run.mFirstCue;
309 run.mFirstCue = cue;
312 // if a cue is added that should be visible, need to refresh view
325 + cue.mStartTimeMs + " <= " + nowMs + ", "
326 + cue.mEndTimeMs + " >= " + mLastTimeMs);
329 if (mVisible && cue.mStartTimeMs <= nowMs
330 // we don't trust nowMs, so check any cue since last callback
331 && cue.mEndTimeMs >= mLastTimeMs) {
350 // delay update so we don't update view on every cue. TODO why 10?
359 if (mVisible && cue.mEndTimeMs >= mLastTimeMs
360 && (cue.mStartTimeMs < mNextScheduledTimeMs || mNextScheduledTimeMs < 0)) {
387 private SortedMap<Long, ArrayList<Cue>> mCues;
390 private boolean addEvent(Cue cue, long timeMs) {
391 ArrayList<Cue> cues = mCues.get(timeMs);
393 cues = new ArrayList<Cue>(2);
395 } else if (cues.contains(cue)) {
400 cues.add(cue);
404 private void removeEvent(Cue cue, long timeMs) {
405 ArrayList<Cue> cues = mCues.get(timeMs);
407 cues.remove(cue);
414 public void add(Cue cue) {
416 if (cue.mStartTimeMs >= cue.mEndTimeMs) return;
418 if (!addEvent(cue, cue.mStartTimeMs)) {
422 long lastTimeMs = cue.mStartTimeMs;
423 if (cue.mInnerTimesMs != null) {
424 for (long timeMs: cue.mInnerTimesMs) {
425 if (timeMs > lastTimeMs && timeMs < cue.mEndTimeMs) {
426 addEvent(cue, timeMs);
432 addEvent(cue, cue.mEndTimeMs);
435 public void remove(Cue cue) {
436 removeEvent(cue, cue.mStartTimeMs);
437 if (cue.mInnerTimesMs != null) {
438 for (long timeMs: cue.mInnerTimesMs) {
439 removeEvent(cue, timeMs);
442 removeEvent(cue, cue.mEndTimeMs);
445 public Iterable<Pair<Long, Cue>> entriesBetween(
447 return new Iterable<Pair<Long, Cue>>() {
449 public Iterator<Pair<Long, Cue>> iterator() {
462 SortedMap<Long, ArrayList<Cue>> tail = null;
477 class EntryIterator implements Iterator<Pair<Long, Cue>> {
484 public Pair<Long, Cue> next() {
488 mLastEntry = new Pair<Long, Cue>(
505 // remove end-cue
513 Cue cue = mLastEntry.second;
514 removeEvent(cue, cue.mStartTimeMs);
515 if (cue.mInnerTimesMs != null) {
516 for (long timeMs: cue.mInnerTimesMs) {
517 removeEvent(cue, timeMs);
522 EntryIterator(SortedMap<Long, ArrayList<Cue>> cues) {
555 private Iterator<Cue> mListIterator;
557 private SortedMap<Long, ArrayList<Cue>> mRemainingCues;
558 private Iterator<Cue> mLastListIterator;
559 private Pair<Long, Cue> mLastEntry;
563 mCues = new TreeMap<Long, ArrayList<Cue>>();
567 static class Cue {
573 public Cue mNextInRun;
576 * Called to inform current timeMs to the cue
611 public Cue mFirstCue;