xref: /aosp_15_r20/frameworks/av/media/libmedia/docs/paused.dot (revision ec779b8e0859a360c3d303172224686826e6e0e1)
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