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

$nodeclass Concurrent : StateNode {

    $setupmachine{
        start: StateNode
        greenled: LedActivate($,PowerGreenLEDMask)[getMC()->set(PowerRedLEDMask,0.0)]
        redled: LedActivate($,PowerRedLEDMask)[getMC()->set(PowerGreenLEDMask,0.0)]
        swap_greenled: LedActivate($,PowerGreenLEDMask)[getMC()->set(PowerRedLEDMask,0.0)]
        swap_redled: LedActivate($,PowerRedLEDMask)[getMC()->set(PowerGreenLEDMask,0.0)]
        barklow: SoundNode("barklow.wav")
        barkmed: SoundNode("barkmed.wav")
        barkhigh: SoundNode("barkhigh.wav")
        rev_barklow: SoundNode("barklow.wav")
        rev_barkmed: SoundNode("barkmed.wav")
        rev_barkhigh: SoundNode("barkhigh.wav")


        start =N=> {greenled, barklow}
        greenled =T(3000)=> redled =T(1000)=> greenled
        barklow =C=> barkmed =C=> barkhigh =C=> barklow

        greenled =B=> swap_redled   =B=> greenled
        redled   =B=> swap_greenled =B=> redled
        barklow  =B=> rev_barkhigh  =B=> barklow
        barkmed  =B=> rev_barkmed   =B=> barkmed
        barkhigh =B=> rev_barklow   =B=> barkhigh

        swap_greenled =T(1000)=> swap_redled =T(3000)=> swap_greenled
        rev_barkhigh =C=> rev_barkmed =C=> rev_barklow =C=> rev_barkhigh
    }

}

REGISTER_BEHAVIOR(Concurrent);
