funcftion state_play(c){
switch(c){
case undefined: print("this is state_play"); return;
case 'stop_pressed': state = state_stopped; return false;
case 'pause_pressed': state = state_paused; return false;
default: return state_normal;
}
}
function state_paused(c){
switch(c){
case undefined: print("this is state_paused"); return;
case 'stop_pressed': state = state_stopped; return false;
case 'play_pressed': state = state_play; return false;
default: return state_normal;
}
}
function state_stopped(c){
switch(c){
case undefined: print("this is state_stopped"); return;
case 'play_pressed': state = state_play; return false;
default: return state_normal;
}
}
function state_normal(c){
switch(c){
case undefined: print("this is state_normal"); state_stopped();
case 'ff_pressed': state = state_forward; return false;
default: return false;
}
}
function state_forward(c){
switch(c){
case undefined: print("this is state_forward"); return;
case 'ff_released': state = state_play;return false;
default: return false;
}
}
function trans(c){
while(newstate = state(c)){
state = newstate;
}
state();
}
state = state_normal;
trans('play_pressed');
trans('ff_pressed');
trans('ff_released');
trans('stop_pressed');
trans('ff_pressed');
trans('ff_released');