blob: c88521e316ab12f28e96d388a2a98664b1e6544d [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// To render: "dot -Tpng state.gv -o state.png"
digraph effect_state_machine {
node[shape = point style = filled fillcolor = black width = 0.5] I;
node[shape = doublecircle] F;
node[shape = oval width = 1];
node[fillcolor = lightgreen] INIT;
node[fillcolor = lightblue] IDLE;
node[fillcolor = lightyellow] PROCESSING;
I -> INIT[label = "IFactory.createEffect" labelfontcolor = "navy"];
INIT -> F[label = "IFactory.destroyEffect"];
INIT -> IDLE[label = "open()" labelfontcolor = "lime"];
IDLE -> PROCESSING[label = "command(START"];
PROCESSING -> IDLE[label = "command(STOP)\ncommand(RESET)"];
IDLE -> INIT[label = "close()"];
INIT -> INIT[label = "getState\ngetDescriptor"];
IDLE -> IDLE[label = "getXXX\nsetParameter\ncommand(RESET)"];
PROCESSING -> PROCESSING[label = "getXXX\nsetParameter"];
}