function udpcr_Initialize(msgPort as object, userVariables as object, bsp as object) udpcr = newudpcr(msgPort, userVariables, bsp) return udpcr end function function newudpcr(msgPort as object, userVariables as object, bsp as object) s = {} s.version = 0.1 s.msgPort = msgPort s.userVariables = userVariables s.bsp = bsp s.dlog = dlog s.isVideoPlaying = false s.ProcessEvent = udpcr_ProcessEvent s.timerPort = CreateObject("roMessagePort") s.timer = CreateObject("roTimer") s.timer.SetPort(msgPort) s.timer.SetElapsed(1, 0) s.timer.start() s.timeCount = CreateObject("roTimespan") s.objectName = "udpcr_object" s.debug = true return s end function function udpcr_ProcessEvent(event as object) as boolean 'm.dlog("An event has been triggered") if type(event) = "roVideoEvent" then 'm.dlog("Video event, code " + str(event.getInt())) '3 Playing '8 Ended streamInfoArr = m.bsp.getvideozone(0).videoplayer.GetStreamInfo() frameRate = str(cint(streamInfoArr.VideoFrameRate)).trim() 'sendUDP(frameRate,m,1) thetype = "Video event : " + str(event.getInt()) if event.getInt() = 8 then m.isVideoPlaying = false else if event.getInt() = 3 then ' create the timer ( or reinitalise ) 'm.timer.start() m.timeCount.mark() m.isVideoPlaying = true end if else if type(event) = "roTimerEvent" then if m.isVideoPlaying = true then projectName = m.userVariables.Lookup("projectName").GetCurrentValue() m.dlog(projectName+";"+ str(m.timeCount.TotalMilliseconds())) end if m.timer.start() else 'm.dlog(type(event)) end if return false end function Sub dlog (error as String) if type(m.bsp.udpsender) <> "roDatagramSender" then m.bsp.udpsender = createobject("roDatagramSender") m.bsp.udpSender.SetDestination(m.bsp.udpAddress$, m.bsp.udpSendPort) end if tolog = "ORPHEO DLOG - " + error m.bsp.logging.WriteDiagnosticLogEntry("99plgn", tolog) 'm.bsp.diagnostics.printdebug(error$) print tolog slog = createobject("roSystemLog") slog.sendline(tolog) m.bsp.udpSender.Send(error) End Sub