An example of OO-like C code inspired by the book "モダンC言語プログラミング"
chapter 4 (State pattern example of CD player)