File: request.liq

package info (click to toggle)
liquidsoap 2.4.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,844 kB
  • sloc: ml: 74,136; javascript: 27,320; ansic: 505; sh: 139; xml: 114; lisp: 96; makefile: 26
file content (83 lines) | stat: -rw-r--r-- 1,844 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Basic request tests
settings.log.level.set(4)
test.check(
  fun () ->
    begin
      test.almost_equal(digits=1, request.duration("file1.mp3") ?? 0., 5.06)
      test.almost_equal(
        digits=1,
        request.duration("annotate:cue_out=1.1:file1.mp3") ?? 0.,
        1.1
      )
      test.almost_equal(
        digits=1,
        request.duration("annotate:cue_in=1.06:file1.mp3") ?? 0.,
        4.
      )
      test.almost_equal(
        digits=1,
        request.duration("annotate:cue_in=1.00,cue_out=3.1:file1.mp3") ?? 0.,
        2.1
      )

      r = request.dynamic(prefetch=1, fun () -> request.create("invalid"))
      if
        not r.add(request.create("file2.mp3"))
      then
        print(
          "Failed to add request"
        )
        test.fail()
      end

      r.set_queue([request.create("file2.mp3"), request.create("file3.mp3")])
      q = r.queue()
      if
        list.length(q) != 2
      then
        print(
          "Invalid request queue"
        )
        test.fail()
      end

      def next() =
        request.create("file1.mp3")
      end

      r = request.dynamic(prefetch=1, next)
      o = output.dummy(fallible=true, r)
      thread.run.recurrent(
        fun () ->
          if
            not r.is_ready()
          then
            0.1
          else
            c = r.current()
            if
              not null.defined(c)
            then
              print(
                "Invalid current track"
              )
              test.fail()
            end

            c = null.get(c)
            if
              request.filename(c) != "file1.mp3"
            then
              print(
                "Invalid filename"
              )
              test.fail()
            end

            o.stop()
            test.pass()
            (-1.)
          end
      )
    end
)