in ProxyStatsGathering/src/main/scala/StreamComponents/MimeTypeWantProxyBranch.scala [20:79]
override def createLogic(inheritedAttributes: Attributes): GraphStageLogic =
new GraphStageLogic(shape) {
setHandler(in, new AbstractInHandler {
override def onPush(): Unit = {
val elem = grab(in)
if(elem.mimeType.major=="video"){
push(outVideo, ProxyVerifyResult(elem.id, ProxyType.VIDEO, esRecordSays=elem.proxied, wantProxy = true))
push(outAudio, ProxyVerifyResult(elem.id, ProxyType.AUDIO, esRecordSays=elem.proxied, wantProxy = false))
push(outThumb, ProxyVerifyResult(elem.id, ProxyType.THUMBNAIL, esRecordSays=elem.proxied, wantProxy = true))
} else if(elem.mimeType.major=="audio"){
push(outVideo, ProxyVerifyResult(elem.id, ProxyType.VIDEO, esRecordSays=elem.proxied, wantProxy = false))
push(outAudio, ProxyVerifyResult(elem.id, ProxyType.AUDIO, esRecordSays=elem.proxied, wantProxy = true))
push(outThumb, ProxyVerifyResult(elem.id, ProxyType.THUMBNAIL, esRecordSays=elem.proxied, wantProxy = true))
} else if(elem.mimeType.major=="image") {
push(outVideo, ProxyVerifyResult(elem.id, ProxyType.VIDEO, esRecordSays=elem.proxied, wantProxy = false))
push(outAudio, ProxyVerifyResult(elem.id, ProxyType.AUDIO, esRecordSays=elem.proxied, wantProxy = false))
push(outThumb, ProxyVerifyResult(elem.id, ProxyType.THUMBNAIL, esRecordSays=elem.proxied, wantProxy = true))
} else if(elem.mimeType.major=="model") {
if(elem.mimeType.minor=="vnd.mts"){ //MTS files (from older tapeless cams) get mis-identified as this
push(outVideo, ProxyVerifyResult(elem.id, ProxyType.VIDEO, esRecordSays=elem.proxied, wantProxy = true))
push(outAudio, ProxyVerifyResult(elem.id, ProxyType.AUDIO, esRecordSays=elem.proxied, wantProxy = false))
push(outThumb, ProxyVerifyResult(elem.id, ProxyType.THUMBNAIL, esRecordSays=elem.proxied, wantProxy = true))
} else {
push (outNo, ProxyVerifyResult(elem.id, ProxyType.UNKNOWN, esRecordSays=elem.proxied, wantProxy = false))
}
} else {
push (outNo, ProxyVerifyResult(elem.id, ProxyType.UNKNOWN,esRecordSays=elem.proxied, wantProxy = false))
}
}
})
setHandler(outNo, new AbstractOutHandler {
override def onPull(): Unit = {
//println("outThumb: pullFromDownstream")
if(!hasBeenPulled(in)) pull(in)
}
})
setHandler(outVideo, new AbstractOutHandler {
override def onPull(): Unit = {
//println("outThumb: pullFromDownstream")
if(!hasBeenPulled(in)) pull(in)
}
})
setHandler(outAudio, new AbstractOutHandler {
override def onPull(): Unit = {
//println("outThumb: pullFromDownstream")
if(!hasBeenPulled(in)) pull(in)
}
})
setHandler(outThumb, new AbstractOutHandler {
override def onPull(): Unit = {
//println("outThumb: pullFromDownstream")
if(!hasBeenPulled(in)) pull(in)
}
})
}