1*ec779b8eSAndroid Build Coastguard Workerdigraph paused { 2*ec779b8eSAndroid Build Coastguard Workerinitial [label="INITIAL\n\ 3*ec779b8eSAndroid Build Coastguard WorkermIgnoreNextPausedInt = false\n\ 4*ec779b8eSAndroid Build Coastguard WorkermPaused = false\n\ 5*ec779b8eSAndroid Build Coastguard WorkermPausedInt = false"]; 6*ec779b8eSAndroid Build Coastguard Worker 7*ec779b8eSAndroid Build Coastguard Workerresume_body [label="mIgnoreNextPausedInt = true\nif (mPaused || mPausedInt)"]; 8*ec779b8eSAndroid Build Coastguard Workerresume_paused [label="mPaused = false\nmPausedInt = false\nsignal()"]; 9*ec779b8eSAndroid Build Coastguard Workerresume_paused -> resume_merged; 10*ec779b8eSAndroid Build Coastguard Workerresume_merged [label="return"]; 11*ec779b8eSAndroid Build Coastguard Worker 12*ec779b8eSAndroid Build Coastguard WorkerApplication -> ATstop; 13*ec779b8eSAndroid Build Coastguard WorkerATstop [label="AudioTrack::stop()"]; 14*ec779b8eSAndroid Build Coastguard WorkerATstop -> pause; 15*ec779b8eSAndroid Build Coastguard WorkerApplication -> ATpause; 16*ec779b8eSAndroid Build Coastguard WorkerATpause [label="AudioTrack::pause()"]; 17*ec779b8eSAndroid Build Coastguard WorkerATpause -> pause; 18*ec779b8eSAndroid Build Coastguard WorkerATstart -> resume; 19*ec779b8eSAndroid Build Coastguard WorkerATstart [label="AudioTrack::start()"]; 20*ec779b8eSAndroid Build Coastguard Workerdestructor [label="~AudioTrack()"]; 21*ec779b8eSAndroid Build Coastguard Workerdestructor -> requestExit; 22*ec779b8eSAndroid Build Coastguard WorkerrequestExit [label="AudioTrackThread::requestExit()"]; 23*ec779b8eSAndroid Build Coastguard WorkerrequestExit -> resume; 24*ec779b8eSAndroid Build Coastguard WorkerApplication -> ATsetMarkerPosition 25*ec779b8eSAndroid Build Coastguard WorkerATsetMarkerPosition [label="AudioTrack::setMarkerPosition()\n[sets marker variables]"]; 26*ec779b8eSAndroid Build Coastguard WorkerATsetMarkerPosition -> ATTwake 27*ec779b8eSAndroid Build Coastguard WorkerApplication -> ATsetPositionUpdatePeriod 28*ec779b8eSAndroid Build Coastguard WorkerATsetPositionUpdatePeriod [label="AudioTrack::setPositionUpdatePeriod()\n[sets update period variables]"]; 29*ec779b8eSAndroid Build Coastguard WorkerATsetPositionUpdatePeriod -> ATTwake 30*ec779b8eSAndroid Build Coastguard WorkerApplication -> ATstart; 31*ec779b8eSAndroid Build Coastguard Worker 32*ec779b8eSAndroid Build Coastguard Workerresume [label="AudioTrackThread::resume()"]; 33*ec779b8eSAndroid Build Coastguard Workerresume -> resume_body; 34*ec779b8eSAndroid Build Coastguard Worker 35*ec779b8eSAndroid Build Coastguard Workerresume_body -> resume_paused [label="true"]; 36*ec779b8eSAndroid Build Coastguard Workerresume_body -> resume_merged [label="false"]; 37*ec779b8eSAndroid Build Coastguard Worker 38*ec779b8eSAndroid Build Coastguard WorkerATTwake [label="AudioTrackThread::wake()\nif (!mPaused && mPausedInt && mPausedNs > 0)"]; 39*ec779b8eSAndroid Build Coastguard WorkerATTwake-> ATTWake_wakeable [label="true"]; 40*ec779b8eSAndroid Build Coastguard WorkerATTWake_wakeable [label="mIgnoreNextPausedInt = true\nmPausedInt = false\nsignal()"]; 41*ec779b8eSAndroid Build Coastguard WorkerATTwake-> ATTWake_cannotwake [label="false"] 42*ec779b8eSAndroid Build Coastguard WorkerATTWake_cannotwake [label="ignore"]; 43*ec779b8eSAndroid Build Coastguard Worker 44*ec779b8eSAndroid Build Coastguard Workerpause [label="mPaused = true"]; 45*ec779b8eSAndroid Build Coastguard Workerpause -> return; 46*ec779b8eSAndroid Build Coastguard Worker 47*ec779b8eSAndroid Build Coastguard WorkerthreadLoop [label="AudioTrackThread::threadLoop()\nENTRY"]; 48*ec779b8eSAndroid Build Coastguard WorkerthreadLoop -> threadLoop_1; 49*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_1 [label="if (mPaused)"]; 50*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_1 -> threadLoop_1_true [label="true"]; 51*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_1 -> threadLoop_2 [label="false"]; 52*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_1_true [label="wait()\nreturn true"]; 53*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_2 [label="if (mIgnoreNextPausedInt)"]; 54*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_2 -> threadLoop_2_true [label="true"]; 55*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_2 -> threadLoop_3 [label="false"]; 56*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_2_true [label="mIgnoreNextPausedInt = false\nmPausedInt = false"]; 57*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_2_true -> threadLoop_3; 58*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_3 [label="if (mPausedInt)"]; 59*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_3 -> threadLoop_3_true [label="true"]; 60*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_3 -> threadLoop_4 [label="false"]; 61*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_3_true [label="wait()\nmPausedInt = false\nreturn true"]; 62*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_4 [label="if (exitPending)"]; 63*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_4 -> threadLoop_4_true [label="true"]; 64*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_4 -> threadLoop_5 [label="false"]; 65*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_4_true [label="return false"]; 66*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_5 [label="ns = processAudioBuffer()"]; 67*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_5 -> threadLoop_6; 68*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 [label="case ns"]; 69*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 -> threadLoop_6_0 [label="0"]; 70*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 -> threadLoop_6_NS_INACTIVE [label="NS_INACTIVE"]; 71*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 -> threadLoop_6_NS_NEVER [label="NS_NEVER"]; 72*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 -> threadLoop_6_NS_WHENEVER [label="NS_WHENEVER"]; 73*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6 -> threadLoop_6_default [label="default"]; 74*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_default [label="if (ns < 0)"]; 75*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_default -> threadLoop_6_default_true [label="true"]; 76*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_default -> threadLoop_6_default_false [label="false"]; 77*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_default_true [label="FATAL"]; 78*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_default_false [label="pauseInternal(ns) [wake()-able]\nmPausedInternal = true\nmPausedNs = ns\nreturn true"]; 79*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_0 [label="return true"]; 80*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_NS_INACTIVE [label="pauseInternal()\nmPausedInternal = true\nmPausedNs = 0\nreturn true"]; 81*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_NS_NEVER [label="return false"]; 82*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_NS_WHENEVER [label="ns = 1s"]; 83*ec779b8eSAndroid Build Coastguard WorkerthreadLoop_6_NS_WHENEVER -> threadLoop_6_default_false; 84*ec779b8eSAndroid Build Coastguard Worker 85*ec779b8eSAndroid Build Coastguard Worker} 86