There are several classes of players which implement the same
TPlayerInterface.
- TSyncInPlayer : a synchronizable player, composed
with a tickplayer, a scheduler, a synchronizer
and a chaser. By changing the synchronizer component,
several different synchronizable players can be built.
- TSyncOutPlayer : a player decorator, using the Decorator
pattern. Decorates a TSyncInPlayer object and add
the ability to send synchronization messages : start,
stop, continue, songpos, and clock.
- TRunningPlayer : combines a player object and a global
state object.