Changeset 4955:5a13f6cdde6e in roaraudio


Ignore:
Timestamp:
05/13/11 17:51:25 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

patch to add support to list drivers in diffrent formats

Location:
roard
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • roard/Makefile

    r4932 r4955  
    3434new: clean all 
    3535 
     36run: roard 
     37        ./roard $(ARGS) 
     38 
    3639roard: ${OBJ} ${SUBSYS} ${DRV} ${CF} ${EMUL} ${HWMIXER} 
    3740        ${CC} ${LDFLAGS} -o roard ${OBJ} ${SUBSYS} ${DRV} ${CF} ${EMUL} ${HWMIXER} ${LIBS} 
  • roard/driver.c

    r4815 r4955  
    113113                                }; 
    114114 
    115 void print_driverlist (void) { 
     115void print_driverlist (enum output_format format) { 
    116116 int i; 
    117117 char subsys[7] = "      "; 
    118118 char mode[5]   = "    "; 
    119119 
    120  printf("  Driver       Mode Flag Subsys - Description (devices)\n"); 
    121  printf("---------------------------------------------------------------\n"); 
     120 switch (format) { 
     121  case FORMAT_NATIVE: 
     122    printf("  Driver       Mode Flag Subsys - Description (devices)\n"); 
     123    printf("---------------------------------------------------------------\n"); 
     124   break; 
     125  case FORMAT_WIKI: 
     126    printf("||=Driver =||=Mode =||=Flag =||=Subsys =||=Description =||=Devices\n"); 
     127   break; 
     128  case FORMAT_CSV: 
     129    printf("Driver,Mode,Flag,Subsys,Description,Devices\n"); 
     130   break; 
     131  default: 
     132    roar_err_set(ROAR_ERROR_NOTSUP); 
     133    return; 
     134 } 
    122135 
    123136 for (i = 0; g_driver[i].name != NULL; i++) { 
     
    143156   subsys[5] = 'X'; 
    144157 
    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); 
     158  switch (format) { 
     159   case FORMAT_NATIVE: 
     160     if ( g_driver[i].devices != NULL ) { 
     161      printf("  %-12s %4s %c%c%c%c %6s - %s (devices: %s)\n", g_driver[i].name, 
     162                    mode, 
     163                    ' ', /* unused Flag */ 
     164                    g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? 's' : ' ', 
     165                    g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 
     166                    g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 
     167                    subsys, 
     168                    g_driver[i].desc, g_driver[i].devices); 
     169     } else { 
     170      printf("  %-12s %4s %c%c%c%c %6s - %s\n", g_driver[i].name, 
     171                    mode, 
     172                    ' ', /* unused Flag */ 
     173                    g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? 's' : ' ', 
     174                    g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 
     175                    g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 
     176                    subsys, 
     177                    g_driver[i].desc); 
     178     } 
     179    break; 
     180   case FORMAT_WIKI: 
     181     printf("||=%-12s =|| %s || %s%s%s ||%s ||%s ||%s ||\n", g_driver[i].name, mode[0] == ' ' ? mode+1 : mode, 
     182                    g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? "s" : " ", 
     183                    g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? "S" : " ", 
     184                    g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? "V" : " ", 
     185                    subsys, 
     186                    g_driver[i].desc, g_driver[i].devices == NULL ? "" : g_driver[i].devices); 
     187    break; 
     188   case FORMAT_CSV: 
     189     printf("%s,%s,%s%s%s,%s,%s,%s\n", g_driver[i].name, mode, 
     190                    g_driver[i].flags & DRV_FLAG_FHSEC                                                         ? "s" : " ", 
     191                    g_driver[i].open     != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? "S" : " ", 
     192                    g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? "V" : " ", 
     193                    subsys, 
     194                    g_driver[i].desc, g_driver[i].devices == NULL ? "" : g_driver[i].devices); 
     195    break; 
    163196  } 
    164197 } 
  • roard/include/driver.h

    r4815 r4955  
    173173}; 
    174174 
    175 void print_driverlist (void); 
     175void print_driverlist (enum output_format format); 
    176176 
    177177int driver_openvio(struct roar_vio_calls * calls, 
  • roard/include/roard.h

    r4932 r4955  
    9292 int    si; 
    9393}; 
     94 
     95enum output_format; 
    9496 
    9597// MFOI = Marked For Optional Include 
     
    215217 
    216218 
     219enum output_format { 
     220 FORMAT_NATIVE = 1, 
     221 FORMAT_WIKI, 
     222 FORMAT_CSV, 
     223 
     224 FORMAT_DEFAULT = FORMAT_NATIVE 
     225}; 
     226 
    217227#define counters_init() memset(&g_counters, 0, sizeof(g_counters)) 
    218228//#define counters_inc(c,i) do { signed long int __i = (i); if ( __i < 0 && __i > (g_counters.cur.c) ) { ROAR_WARN("counters_inc(c=%s, i=%li): Decrement request bigger than current counter value. Counter out of syn!", )  } while (0) 
  • roard/roard.c

    r4934 r4955  
    13321332 int i; 
    13331333 char * k; 
     1334 enum output_format print_format = FORMAT_NATIVE; 
    13341335#endif 
    13351336#if defined(ROAR_SUPPORT_LISTEN) && defined(ROAR_HAVE_GETUID) 
     
    15901591   ROAR_ERR("--daemon not supported"); 
    15911592#endif 
    1592   } else if ( strcmp(k, "--verbose") == 0 ) { 
     1593  } else if ( strcmp(k, "--print-format") == 0 ) { 
    15931594   g_verbose++; 
     1595   k = argv[++i]; 
     1596   if ( !strcasecmp(k, "native") ) { 
     1597    print_format = FORMAT_NATIVE; 
     1598   } else if ( !strcasecmp(k, "wiki") ) { 
     1599    print_format = FORMAT_WIKI; 
     1600   } else if ( !strcasecmp(k, "csv") ) { 
     1601    print_format = FORMAT_CSV; 
     1602   } else { 
     1603    ROAR_WARN("Unknown print format: %s", k); 
     1604   } 
     1605 
     1606  } else if ( strcmp(k, "--print-format") == 0 ) { 
     1607   _CKHAVEARGS(1); 
     1608 
    15941609  } else if ( strcmp(k, "--terminate") == 0 ) { 
    15951610   g_terminate = 1; 
     
    17401755 
    17411756  } else if ( strcmp(k, "--list-driver") == 0 ) { 
    1742    print_driverlist(); 
     1757   print_driverlist(print_format); 
    17431758   return 0; 
    17441759 
Note: See TracChangeset for help on using the changeset viewer.