35 lines
599 B
Go
35 lines
599 B
Go
package playout
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
)
|
|
|
|
type PlayoutType int
|
|
|
|
const (
|
|
rtmpPlayout PlayoutType = iota
|
|
icecastPlayout
|
|
)
|
|
|
|
type Job struct {
|
|
PlayoutType PlayoutType
|
|
StartAt time.Time
|
|
StopAt time.Time
|
|
Source string
|
|
Output string
|
|
ControlChannel chan string
|
|
}
|
|
|
|
func (p *Job) Playout() {
|
|
// TODO delete playout Job from store after finishing/aborting playout
|
|
log.Println(time.Until(p.StartAt))
|
|
select {
|
|
case ctrlMsg := <-p.ControlChannel:
|
|
fmt.Println(ctrlMsg)
|
|
return
|
|
case <-time.After(time.Until(p.StartAt)):
|
|
log.Println("Start Playout")
|
|
}
|
|
}
|