"
Simple UDP replay from the state files
"

PackageLoader fileInPackage: #Sockets.

Object subclass: SDPUtils [
    "Look into using PetitParser."
    SDPUtils class >> findPort: aSDP [
        aSDP linesDo: [:line |
            (line startsWith: 'm=audio ') ifTrue: [
                | stream |
                stream := line readStream
                            skip: 'm=audio ' size;
                            yourself.
                ^ Number readFrom: stream.
            ]
        ].

        ^ self error: 'Not found'.
    ]

    SDPUtils class >> findHost: aSDP [
        aSDP linesDo: [:line |
            (line startsWith: 'c=IN IP4 ') ifTrue: [
                | stream |
                ^ stream := line readStream
                            skip: 'c=IN IP4 ' size;
                            upToEnd.
            ]
        ].

        ^ self error: 'Not found'.
    ]
]

Object subclass: RTPReplay [
    | filename socket |
    RTPReplay class >> on: aFile [
        ^ self new
            initialize;
            file: aFile; yourself
    ]

    initialize [
        socket := Sockets.DatagramSocket new.
    ]

    file: aFile [ 
        filename := aFile
    ]

    localPort [
        ^ socket port
    ]

    streamAudio: aHost port: aPort [
        | file last_time last_image udp_send dest |

        last_time := nil.
        last_image := nil.
        file := FileStream open: filename.

        "Send the payload"
        dest := Sockets.SocketAddress byName: aHost.
        udp_send := [:payload | | datagram |
            datagram := Sockets.Datagram data: payload contents address: dest port: aPort.
            socket nextPut: datagram
        ].

        [file atEnd] whileFalse: [
            | lineStream time data now_image |
            lineStream := file nextLine readStream.

            "Read the time, skip the blank, parse the data"
            time := Number readFrom: lineStream.
            lineStream skip: 1.

            data := WriteStream on: (ByteArray new: 30).
            [lineStream atEnd] whileFalse: [
                | hex |
                hex := lineStream next: 2.
                data nextPut: (Number readFrom: hex readStream radix: 16).
            ].

            last_time isNil
                ifTrue: [
                    "First time, send it right now"
                    last_time := time.
                    last_image := Time millisecondClockValue.
                    udp_send value: data.
                ]
                ifFalse: [
                    | wait_image new_image_time |

                    "How long to wait?"
                    wait_image := last_image + ((time - last_time) * 1000).
                    [ wait_image > Time millisecondClockValue ]
                        whileTrue: [Processor yield].

                    udp_send value: data.
                    last_time := time.
                    last_image := wait_image.
                ]
        ]
    ]
]

