source: roaraudio/roarclients/roarcat.c @ 290:b7c1120f7946

Last change on this file since 290:b7c1120f7946 was 290:b7c1120f7946, checked in by phi, 16 years ago

... and updated help

File size: 1.7 KB
Line 
1//roarcat.c:
2
3#include <roaraudio.h>
4
5#define BUFSIZE 1024
6
7void usage (void) {
8 printf("roarcat [OPTIONS]... [FILE]\n");
9
10 printf("\nOptions:\n\n");
11
12 printf("  --server SERVER    - Set server hostname\n"
13        "  --rate   RATE      - Set sample rate\n"
14        "  --bits   BITS      - Set bits per sample\n"
15        "  --chans  CHANNELS  - Set number of channels\n"
16        "  --help             - Show this help\n"
17       );
18
19}
20
21int main (int argc, char * argv[]) {
22 int    rate     = 44100;
23 int    bits     = 16;
24 int    channels = 2;
25 int    codec    = ROAR_CODEC_DEFAULT;
26 char * server   = NULL;
27 char * k;
28 int    fh;
29 int    i;
30 int    in = -1;
31 char buf[BUFSIZE];
32
33 for (i = 1; i < argc; i++) {
34  k = argv[i];
35
36  if ( strcmp(k, "--server") == 0 ) {
37   server = argv[++i];
38  } else if ( strcmp(k, "--rate") == 0 ) {
39   rate = atoi(argv[++i]);
40  } else if ( strcmp(k, "--bits") == 0 ) {
41   bits = atoi(argv[++i]);
42  } else if ( strcmp(k, "--channels") == 0 || strcmp(k, "--chans") == 0 ) {
43   channels = atoi(argv[++i]);
44  } else if ( strcmp(k, "--help") == 0 ) {
45   usage();
46   return 0;
47  } else if ( in == -1 ) {
48   if ( (in = open(k, O_RDONLY, 0644)) == -1 ) {
49    fprintf(stderr, "Error: can not open file: %s: %s\n", k, strerror(errno));
50    return 1;
51   }
52  } else {
53   fprintf(stderr, "Error: unknown argument: %s\n", k);
54   usage();
55   return 1;
56  }
57 }
58
59 if ( (fh = roar_simple_play(rate, channels, bits, codec, server, "roarcat")) == -1 ) {
60  fprintf(stderr, "Error: can not start playback\n");
61  return 1;
62 }
63
64 if ( in == -1 )
65  in = ROAR_STDIN;
66
67 while((i = read(in, buf, BUFSIZE)))
68  if (write(fh, buf, i) != i)
69   break;
70
71 roar_simple_close(fh);
72
73 return 0;
74}
75
76//ll
Note: See TracBrowser for help on using the repository browser.