Changeset 4812:01f1c4b328b6 in roaraudio


Ignore:
Timestamp:
03/27/11 13:50:45 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

improved driver listing

Location:
roard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roard/driver.c

    r4811 r4812  
    2727 
    2828struct roar_driver g_driver[] = { 
    29  { "null", "null audio driver", "/dev/null", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     29 { "null", "null audio driver", NULL, STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    3030   NULL, NULL, NULL}, 
    3131#ifdef ROAR_HAVE_ESD 
    32  { "esd", "EsounD audio driver", "localhost, remote.host.dom", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     32 { "esd", "EsounD audio driver", "localhost, remote.host.dom", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    3333   NULL, NULL, driver_esd_open_vio}, 
    3434#endif 
    35  { "roar", "RoarAudio driver", "localhost, remote.host.dom", DRV_FLAG_NONE, 
     35 { "roar", "RoarAudio driver", "localhost, remote.host.dom", STREAM_DIR_OUT, DRV_FLAG_NONE, 
    3636   ROAR_SUBSYS_WAVEFORM|ROAR_SUBSYS_MIDI|ROAR_SUBSYS_LIGHT|ROAR_SUBSYS_COMPLEX, 
    3737   NULL, NULL, driver_roar_open_vio}, 
    3838#ifdef ROAR_HAVE_IO_POSIX 
    39  { "raw",  "RAW driver", "/some/file", DRV_FLAG_FHSEC, 
     39 { "raw",  "RAW driver", "/some/file", STREAM_DIR_OUT, DRV_FLAG_FHSEC, 
    4040   ROAR_SUBSYS_WAVEFORM|ROAR_SUBSYS_MIDI|ROAR_SUBSYS_LIGHT|ROAR_SUBSYS_RAW|ROAR_SUBSYS_COMPLEX, 
    4141   NULL, NULL, driver_raw_open_vio}, 
    4242#endif 
    4343#ifndef ROAR_WITHOUT_VIO_DSTR 
    44  { "dstr", "VIO DSTR driver", "/some/file", DRV_FLAG_FHSEC, 
     44 { "dstr", "VIO DSTR driver", "/some/file", STREAM_DIR_OUT, DRV_FLAG_FHSEC, 
    4545   ROAR_SUBSYS_WAVEFORM|ROAR_SUBSYS_MIDI|ROAR_SUBSYS_LIGHT|ROAR_SUBSYS_RAW|ROAR_SUBSYS_COMPLEX, 
    4646   NULL, NULL, driver_dstr_open_vio}, 
     
    5050#define ROAR_DEFAULT_OSS_DEV "no default device" 
    5151#endif 
    52  { "oss", "Open Sound System", ROAR_DEFAULT_OSS_DEV, DRV_FLAG_FHSEC, ROAR_SUBSYS_WAVEFORM, 
     52 { "oss", "Open Sound System", ROAR_DEFAULT_OSS_DEV, STREAM_DIR_OUT, DRV_FLAG_FHSEC, ROAR_SUBSYS_WAVEFORM, 
    5353   NULL, NULL, driver_oss_open}, 
    5454#endif 
    5555#ifdef ROAR_HAVE_LIBAO 
    56  { "ao", "libao audio driver", "DRIVER", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     56 { "ao", "libao audio driver", "DRIVER", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    5757   NULL, NULL, driver_ao_open_vio}, 
    5858#endif 
    5959#ifdef ROAR_HAVE_LIBSHOUT 
    60  {"shout", "libshout streaming", "http://user:pw@host:port/mount.ogg", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     60 {"shout", "libshout streaming", "http://user:pw@host:port/mount.ogg", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    6161  NULL, NULL, driver_shout_open_vio}, 
    6262#endif 
    6363#ifdef ROAR_HAVE_LIBSNDIO 
    64  {"sndio", "OpenBSD sndio", "/dev/audio, /tmp/aucat-<uid>/default", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM|ROAR_SUBSYS_MIDI, 
     64 {"sndio", "OpenBSD sndio", "/dev/audio, /tmp/aucat-<uid>/default", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM|ROAR_SUBSYS_MIDI, 
    6565  NULL, NULL, driver_sndio_open}, 
    6666#endif 
    6767#ifdef ROAR_HAVE_LIBRSOUND 
    68  {"rsound", "RSound", "servername", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     68 {"rsound", "RSound", "servername", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    6969  NULL, NULL, driver_rsound_open}, 
    7070#endif 
    7171#ifdef _DRIVER_PORTAUDIO_CAN_OPERATE 
    72  {"portaudio", "PortAudio", "(none)", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     72 {"portaudio", "PortAudio", NULL, STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    7373  NULL, NULL, driver_portaudio_open}, 
    7474#endif 
    7575#ifdef ROAR_HAVE_LIBASOUND 
    76  {"alsa", "ALSA", "???", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, NULL, NULL, driver_alsa_open_vio}, 
     76 {"alsa", "ALSA", "???", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, NULL, NULL, driver_alsa_open_vio}, 
    7777#endif 
    7878#ifdef ROAR_HAVE_LIBWINMM 
    79  {"wmm", "Win32 MM", "???", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, NULL, NULL, driver_wmm_open_vio}, 
     79 {"wmm", "Win32 MM", "???", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, NULL, NULL, driver_wmm_open_vio}, 
    8080#endif 
    8181#ifndef ROAR_WITHOUT_DCOMP_DMX 
    82  {"dmx", "DMX512 driver", "/dev/dmx", DRV_FLAG_FHSEC, ROAR_SUBSYS_LIGHT, 
     82 {"dmx", "DMX512 driver", "/dev/dmx", STREAM_DIR_OUT, DRV_FLAG_FHSEC, ROAR_SUBSYS_LIGHT, 
    8383  NULL, NULL, driver_dmx_open_vio}, 
    8484#endif 
    8585#if !defined(ROAR_WITHOUT_DCOMP_PWMLED) && !defined(ROAR_WITHOUT_VIO_DSTR) 
    86  {"pwmled", "PWM LED driver", "/dev/ttyS0", DRV_FLAG_FHSEC, ROAR_SUBSYS_LIGHT, 
     86 {"pwmled", "PWM LED driver", "/dev/ttyS0", STREAM_DIR_OUT, DRV_FLAG_FHSEC, ROAR_SUBSYS_LIGHT, 
    8787  NULL, NULL, driver_pwmled_open_vio}, 
    8888#endif 
    8989#ifdef ROAR_HAVE_DRIVER_SYSCLOCK 
    90  {"sysclock", "System Clock Clock Source", "(none)", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     90 {"sysclock", "System Clock Clock Source", NULL, STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    9191  NULL, NULL, driver_sysclock_open_vio}, 
    9292#endif 
    9393#ifndef ROAR_WITHOUT_DCOMP_CDRIVER 
    94  {"cdriver", "RoarAudio Client driver", "driver#device", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     94 {"cdriver", "RoarAudio Client driver", "driver#device", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    9595  NULL, NULL, driver_cdriver_open}, 
    9696#endif 
    9797#ifdef ROAR_HAVE_LIBPULSE 
    98  {"pulsesimple", "PulseAudio Simple", "server", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     98 {"pulsesimple", "PulseAudio Simple", "server", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    9999  NULL, NULL, driver_pulsesimple_open}, 
    100100#endif 
     
    102102#if 0 
    103103 // this is currently just a driver stub. 
    104  {"jack", "JACK", "???", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     104 {"jack", "JACK", "???", STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    105105  NULL, NULL, driver_jack_open_vio}, 
    106106#endif 
    107107#endif 
    108108#ifdef ROAR_HAVE_LIBARTSC 
    109  {"artsc", "aRts plain C API", "(none)", DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
     109 {"artsc", "aRts plain C API", NULL, STREAM_DIR_OUT, DRV_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, 
    110110  NULL, NULL, driver_artsc_open_vio}, 
    111111#endif 
    112  {NULL, NULL, NULL, DRV_FLAG_NONE, 0, NULL, NULL, NULL} // end of list 
     112 {NULL, NULL, NULL, STREAM_DIR_NONE, DRV_FLAG_NONE, 0, NULL, NULL, NULL} // end of list 
    113113                                }; 
    114114 
     
    116116 int i; 
    117117 char subsys[7] = "      "; 
    118  
    119  printf("  Driver      Flag Subsys - Description (devices)\n"); 
    120  printf("---------------------------------------------------------\n"); 
     118 char mode[5]   = "    "; 
     119 
     120 printf("  Driver       Mode Flag Subsys - Description (devices)\n"); 
     121 printf("---------------------------------------------------------------\n"); 
    121122 
    122123 for (i = 0; g_driver[i].name != NULL; i++) { 
    123124  strncpy(subsys, "      ", 6); 
     125  strncpy(mode,   "    ",   4); 
     126 
     127  if ( g_driver[i].mode & STREAM_DIR_IN ) 
     128   mode[0] = 'r'; 
     129  if ( g_driver[i].mode & STREAM_DIR_OUT ) 
     130   mode[1] = 'w'; 
    124131 
    125132  if ( g_driver[i].subsystems & ROAR_SUBSYS_WAVEFORM ) 
     
    136143   subsys[5] = 'X'; 
    137144 
    138   printf("  %-12s %c%c%c %6s - %s (devices: %s)\n", g_driver[i].name, 
    139                 g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? 's' : ' ', 
    140                 g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 
    141                 g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 
    142                 subsys, 
    143                 g_driver[i].desc, g_driver[i].devices); 
     145  if ( g_driver[i].devices != NULL ) { 
     146   printf("  %-12s %4s %c%c%c%c %6s - %s (devices: %s)\n", g_driver[i].name, 
     147                 mode, 
     148                 ' ', /* unused Flag */ 
     149                 g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? 's' : ' ', 
     150                 g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 
     151                 g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 
     152                 subsys, 
     153                 g_driver[i].desc, g_driver[i].devices); 
     154  } else { 
     155   printf("  %-12s %4s %c%c%c%c %6s - %s\n", g_driver[i].name, 
     156                 mode, 
     157                 ' ', /* unused Flag */ 
     158                 g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? 's' : ' ', 
     159                 g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 
     160                 g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 
     161                 subsys, 
     162                 g_driver[i].desc); 
     163  } 
    144164 } 
    145165} 
  • roard/include/driver.h

    r4811 r4812  
    151151 char * desc; 
    152152 char * devices; 
     153 unsigned int mode; 
    153154 unsigned int flags; 
    154155 unsigned int subsystems; 
Note: See TracChangeset for help on using the changeset viewer.