module CSwingLedNotificationVariables use CVoidEventHandlerCollection implicit none logical :: SwingLed = .false. public type(VoidEventHandlerCollection) :: OnSwingLedChange private :: SwingLed contains subroutine Set_SwingLed(v) use CDrillingConsoleVariables, only: SwingLedHw => SwingLed implicit none logical , intent(in) :: v #ifdef ExcludeExtraChanges if(SwingLed == v) return #endif SwingLed = v if(SwingLed) then SwingLedHw = 1 else SwingLedHw = 0 endif call OnSwingLedChange%RunAll() end subroutine logical function Get_SwingLed() implicit none Get_SwingLed = SwingLed end function subroutine Set_SwingLed_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingLed_WN !DEC$ ATTRIBUTES ALIAS: 'Set_SwingLed_WN' :: Set_SwingLed_WN implicit none logical , intent(in) :: v call Set_SwingLed(v) end subroutine logical function Get_SwingLed_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_SwingLed_WN !DEC$ ATTRIBUTES ALIAS: 'Get_SwingLed_WN' :: Get_SwingLed_WN implicit none Get_SwingLed_WN = SwingLed end function end module CSwingLedNotificationVariables