+-------------------------------------------------------------------------------+
|                                        SM                                     |
+-------------------------------------------------------------------------------+
|                                                                               |
|        +---------------------------+           +---------------------------+  |
|        |           BUSY            |       *-->|           IDLE            |  |
|        +---------------------------+           +---------------------------+  |
|        | entry/                    |           | entry/                    |  |
|        | exit/                     |           | exit/                     |  |
|        |        +------------+     |           |        +------------+     |  |
|        |    *-->|  PLAYING   |     |           |    *-->|  CLOSED    |     |  |
|        |        +------------+     |   STOP    |        +------------+     |  |
|        |        | entry/     |     |---------->|        | entry/     |     |  |
|        |        | exit/      |     |           |  PLAY  | exit/      |     |  |
|        |        |            |     |           |  +---->|            |     |  |
|        |        |         +--|     |           |  |     |            |     |  |
|        |        |         |  |     |           |  |     |            |     |  |
|        |        | timer/1s|  |     |           |  |     |            |     |  |
|        |        |         |  |     |           |  |     |            |     |  |
|        |        |         +->|     |           |  |     |            |     |  |
|        |        |            |     |           |  |     |            |     |  |
|        |     +--|            |<-+  |           |  |  +--|            |<-+  |  |
|        |     |  +------------+  |  |           |  |  |  +------------+  |  |  |
|        |     |                  |  |   PLAY    |  |  |                  |  |  |
|        |     |PAUSE             |  |<----------|  |  |EJECT             |  |  |
|        |     |                  |  |           |  |  |                  |  |  |
|        |     |             PAUSE|  |           |  |  |             EJECT|  |  |
|        |     |                  |  |           |  |  |                  |  |  |
|        |     |  +------------+  |  |           |  |  |  +------------+  |  |  |
|        |     |  |  PAUSED    |  |  |           |  |  |  |  OPEN      |  |  |  |
|        |     |  +------------+  |  |           |  |  |  +------------+  |  |  |
|        |     |  | entry/     |  |  |           |  |  |  | entry/     |  |  |  |
|        |     +->| exit/      |--+  |           |  |  +->| exit/      |--+  |  |
|        |        |            |     |           |  |     |            |     |  |
|        |        |            |     |           |  |     |         +--|     |  |
|        |        |            |     |           |  |     |         |  |     |  |
|        |        |            |     |           |  +-----|     LOAD|  |     |  |
|        |        |            |     |           |        |         |  |     |  |
|        |        |            |     |           |        |         +->|     |  |
|        |        |            |     |           |        |            |     |  |
|        |        +------------+     |           |        +------------+     |  |
|        |                           |           |                           |  |
|        +---------------------------+           +---------------------------+  |
|                                                                               |
+-------------------------------------------------------------------------------+

