Changeset 4955:5a13f6cdde6e in roaraudio for roard/driver.c


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

patch to add support to list drivers in diffrent formats

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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 } 
Note: See TracChangeset for help on using the changeset viewer.