/**
 * @author Matt Dee (medee)
 * @author Alex Franchuk (afranchu)
 */
#include "Behaviors/StateMachine.h"

$nodeclass Parallel : StateNode {

    $setupmachine{
        action1: LedNode[getMC()->set(AdvanceLEDMask,0.0)]
        action2: LedNode[getMC()->set(PowerGreenLEDMask,0.0)]
        action3: LedNode[getMC()->set(PlayLEDMask,0.0)]
        rev_action1: LedNode[getMC()->set(PowerGreenLEDMask,0.0)]
        rev_action2: LedNode[getMC()->set(AdvanceLEDMask,0.0)]
        rev_action3: LedNode[getMC()->set(PlayLEDMask,0.0)]
        greenled: LedActivate($,PowerGreenLEDMask)
        ping: SoundNode("ping.wav")
        playled: LedActivate($,PlayLEDMask)
        bark: SoundNode("barkmed.wav")
        advled: LedActivate($,AdvanceLEDMask)
        camera: SoundNode("camera.wav")
        rev_greenled: LedActivate($,PowerGreenLEDMask)
        rev_ping: SoundNode("ping.wav")
        rev_playled: LedActivate($,PlayLEDMask)
        rev_bark: SoundNode("barkmed.wav")
        rev_advled: LedActivate($,AdvanceLEDMask)
        rev_camera: SoundNode("camera.wav")



        action1 =N=> {greenled, ping} =C=> action2 =N=> {playled, bark} =C=> action3 =N=> {advled, camera} =C=> action1
        {advled, camera} =B=> rev_action2
        action1 =B=> rev_action2 =B=> action1
        {playled, bark} =B=> rev_action1
        action2 =B=> rev_action1 =B=> action2
        {greenled, ping} =B=> rev_action3
        action3 =B=> rev_action3 =B=> action3
        
        rev_action1 =N=> {rev_advled, rev_camera} =C=> rev_action2 =N=> {rev_playled, rev_bark} =C=> rev_action3 =N=> {rev_greenled, rev_ping} =C=> rev_action1
        {rev_advled, rev_camera} =B=> action1
        {rev_playled, rev_bark} =B=> action3
        {rev_greenled, rev_ping} =B=> action2
    }

}

REGISTER_BEHAVIOR(Parallel);
