module CUnlatchLedNotificationVariables
    use CVoidEventHandlerCollection
    implicit none
    logical :: UnlatchLed = .false.
    
    public
    
    type(VoidEventHandlerCollection) :: OnUnlatchLedChange
        
    private :: UnlatchLed
    
    contains
    
    subroutine Set_UnlatchLed(v)
        use CDrillingConsoleVariables, only: UnlatchPipeLED
        !use CLatchLedNotification
        implicit none
        logical , intent(in) :: v
#ifdef ExcludeExtraChanges
        if(UnlatchLed == v) return
#endif
        UnlatchLed = v
        
        if(UnlatchLed) then
            UnlatchPipeLED = 1
            !call Set_LatchLed(.false.)
        else 
            UnlatchPipeLED = 0
        endif
        
        call OnUnlatchLedChange%RunAll()
    end subroutine
    
    logical function Get_UnlatchLed()
        implicit none
        Get_UnlatchLed = UnlatchLed
    end function
    
    
    
    
    
    
    subroutine Set_UnlatchLed_WN(v)
    !DEC$ ATTRIBUTES DLLEXPORT :: Set_UnlatchLed_WN
    !DEC$ ATTRIBUTES ALIAS: 'Set_UnlatchLed_WN' :: Set_UnlatchLed_WN
        implicit none
        logical , intent(in) :: v
        call Set_UnlatchLed(v)
    end subroutine
    
    logical function Get_UnlatchLed_WN()
    !DEC$ ATTRIBUTES DLLEXPORT :: Get_UnlatchLed_WN
    !DEC$ ATTRIBUTES ALIAS: 'Get_UnlatchLed_WN' :: Get_UnlatchLed_WN
        implicit none
        Get_UnlatchLed_WN = UnlatchLed
    end function
    
    
    
    
end module CUnlatchLedNotificationVariables