summaryrefslogtreecommitdiff
path: root/examples/statemachine/videostate.pystate
blob: 874001cb8aceea7f81cf72872c3de027cc31fb4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#
# videostate.pystate
#
# Statemachine describing the playing of a video
#   [] = stop
#    > = play
#   || = pause
#   >> = fast forward
#   << = rewind

statemachine VideoState:
    # basic >, [], and || controls
    Stopped-(play)->Playing
    Playing-(pause)-> Paused
    Playing-(stop)-> Stopped
    Paused-(stop)-> Stopped
    Paused-(play)->Playing

    # add >> and << controls - different meanings if occur while playing or stopped
    Playing-(fast_forward)->FastForward
    FastForward-(play)->Playing
    FastForward-(pause)->Paused
    FastForward-(stop)->Stopped
    Stopped-(fast_forward)->Forwardwinding
    Forwardwinding-(stop)->Stopped

    Playing-(rewind)->ReversePlaying
    ReversePlaying-(play)->Playing
    ReversePlaying-(pause)->Paused
    ReversePlaying-(stop)->Stopped
    Stopped-(rewind)->Rewinding
    Rewinding-(stop)->Stopped