private void HandleStateChange (State old_state, State new_state, State pending_state)
{
StopIterating ();
if (CurrentState != PlayerState.Loaded && old_state == State.Ready && new_state == State.Paused && pending_state == State.Playing) {
OnStateChanged (PlayerState.Loaded);
} else if (old_state == State.Paused && new_state == State.Playing && pending_state == State.VoidPending) {
if (CurrentState == PlayerState.Loaded) {
OnEventChanged (PlayerEvent.StartOfStream);
}
OnStateChanged (PlayerState.Playing);
StartIterating ();
} else if (CurrentState == PlayerState.Playing && old_state == State.Playing && new_state == State.Paused) {
OnStateChanged (PlayerState.Paused);
}
}