File: ao_test.ml

package info (click to toggle)
ocaml-ao 0.2.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 180 kB
  • sloc: ansic: 283; ml: 224; makefile: 3
file content (59 lines) | stat: -rw-r--r-- 1,964 bytes parent folder | download | duplicates (2)
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
(*
 Copyright (C) 2003-2006  Bardur Arantsson
 Copyright (C) 2006-2007  the Savonet Team

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*)

open Printf

let () =
  (* List all the drivers. *)
  List.iter
    (fun driver ->
      printf "\nid: %i\n" driver.Ao.id;
      printf "name: %s\n" driver.Ao.name;
      printf "short_name: %s\n" driver.Ao.short_name;
      printf "comment: %s\n" driver.Ao.comment;
      printf "author: %s\n" driver.Ao.author;
      printf "priority: %d\n" driver.Ao.priority;

      printf "pref. format: %s\n"
        (match driver.Ao.preferred_byte_format with
          | `NATIVE -> "native"
          | `BIG_ENDIAN -> "big endian"
          | `LITTLE_ENDIAN -> "little endian"
          | `UNKNOWN -> "(unknown)");

      printf "kind: %s\n"
        (match driver.Ao.kind with
          | `LIVE -> "Live"
          | `FILE -> "File"
          | `UNKNOWN -> "(unknown)");

      printf "options: [%s]\n" (String.concat "," driver.Ao.options))
    Ao.drivers;

  let device =
    Ao.open_live ~options:[("x", "y"); ("x1", "y1")]
      ~driver:(Ao.find_driver "null") ()
  in
  let buf = Bytes.create 41029 in
  (* Play garbage (literally!). *)
  Ao.play device (Bytes.to_string buf);
  (* Close device. *)
  Ao.close device;
  (* And we're done. *)
  printf "Goodbye!\n"