home *** CD-ROM | disk | FTP | other *** search
/ ftp.4front-tech.com / ftp.4front-tech.com.tar / ftp.4front-tech.com / ossfree / snd-util-3.8.tar.gz / snd-util-3.8.tar / sndkit / v30 / music / setsync.c next >
C/C++ Source or Header  |  1997-02-25  |  2KB  |  76 lines

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <fcntl.h>
  4. #include <sys/soundcard.h>
  5.  
  6. SEQ_DEFINEBUF (1024);
  7. int             seqfd;
  8.  
  9. void
  10. seqbuf_dump ()
  11. {
  12.   if (_seqbufptr)
  13.     if (write (seqfd, _seqbuf, _seqbufptr) == -1)
  14.       {
  15.     perror ("write /dev/music");
  16.     exit (-1);
  17.       }
  18.   _seqbufptr = 0;
  19. }
  20.  
  21. int
  22. main (int argc, char *argv[])
  23. {
  24.   int             mode = 0;
  25.   int             i;
  26.  
  27.   if (argc > 1)
  28.     {
  29.       for (i = 1; i < argc; i++)
  30.     {
  31.       if (!strcmp (argv[i], "internal"))
  32.         mode |= TMR_INTERNAL;
  33.       else if (!strcmp (argv[i], "external"))
  34.         mode |= TMR_EXTERNAL;
  35.       else if (!strcmp (argv[i], "midi"))
  36.         mode |= TMR_MODE_MIDI;
  37.       else if (!strcmp (argv[i], "fsk"))
  38.         mode |= TMR_MODE_FSK;
  39.       else if (!strcmp (argv[i], "cls"))
  40.         mode |= TMR_MODE_CLS;
  41.       else if (!strcmp (argv[i], "smpte"))
  42.         mode |= TMR_MODE_SMPTE;
  43.       else
  44.         {
  45.           fprintf (stderr, "Invalid mode %s\n", argv[i]);
  46.           exit (-1);
  47.         }
  48.     }
  49.  
  50.       if (!(mode & (TMR_INTERNAL | TMR_EXTERNAL)))
  51.     mode |= TMR_INTERNAL;
  52.     }
  53.  
  54.   if ((seqfd = open ("/dev/music", O_RDWR, 0)) == -1)
  55.     {
  56.       perror ("/dev/music");
  57.       exit (-1);
  58.     }
  59.  
  60.   if (ioctl (seqfd, SNDCTL_TMR_SOURCE, &mode) == -1)
  61.     perror ("Set timer source");
  62.  
  63.   printf ("Timer source = %08x: ", mode);
  64.  
  65.   if (mode & TMR_INTERNAL) printf("internal ");
  66.   if (mode & TMR_EXTERNAL) printf("external ");
  67.  
  68.   if (mode & TMR_MODE_MIDI) printf("midi ");
  69.   if (mode & TMR_MODE_FSK) printf("fsk ");
  70.   if (mode & TMR_MODE_CLS) printf("cls ");
  71.   if (mode & TMR_MODE_SMPTE) printf("smpte ");
  72.   printf("\n");
  73.  
  74.   exit (0);
  75. }
  76.