Changeset 911:9cb4e9e891ad in roaraudio for roard/driver.c


Ignore:
Timestamp:
12/06/08 21:07:20 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for vio drivers, juhu :)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver.c

    r668 r911  
    2626 
    2727struct roar_driver g_driver[] = { 
    28  { "null", "null audio driver", "/dev/null", NULL, NULL, NULL, NULL, NULL, NULL}, 
     28 { "null", "null audio driver", "/dev/null", NULL, NULL, NULL, NULL, NULL, NULL, NULL}, 
    2929#ifdef ROAR_HAVE_ESD 
    30  { "esd", "EsounD audio driver", "localhost, remote.host.dom", driver_esd_open, driver_esd_close, driver_esd_pause, driver_esd_write, driver_esd_read, driver_esd_flush}, 
     30 { "esd", "EsounD audio driver", "localhost, remote.host.dom", driver_esd_open, driver_esd_close, driver_esd_pause, driver_esd_write, driver_esd_read, driver_esd_flush, NULL}, 
    3131#endif 
    32  { "roar", "RoarAudio driver", "localhost, remote.host.dom", driver_roar_open, driver_roar_close, driver_roar_pause, driver_roar_write, driver_roar_read, driver_roar_flush}, 
    33  { "raw",  "RAW PCM driver", "/some/file", driver_raw_open, driver_raw_close, driver_roar_pause, driver_raw_write, driver_raw_read, driver_raw_flush}, 
     32 { "roar", "RoarAudio driver", "localhost, remote.host.dom", driver_roar_open, driver_roar_close, driver_roar_pause, driver_roar_write, driver_roar_read, driver_roar_flush, NULL}, 
     33 { "raw",  "RAW PCM driver", "/some/file", driver_raw_open, driver_raw_close, driver_roar_pause, driver_raw_write, driver_raw_read, driver_raw_flush, NULL}, 
    3434#ifdef ROAR_HAVE_LIBAO 
    35  { "ao", "libao audio driver", "DRIVER", driver_ao_open, driver_ao_close, driver_ao_pause, driver_ao_write, driver_ao_read, driver_ao_flush}, 
     35 { "ao", "libao audio driver", "DRIVER", driver_ao_open, driver_ao_close, driver_ao_pause, driver_ao_write, driver_ao_read, driver_ao_flush, NULL}, 
    3636#endif 
    37  {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL} // end of list 
     37 {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL} // end of list 
    3838                                }; 
    3939 
     
    5757 
    5858   *driver_id = i; 
     59 
     60   if ( g_driver[i].vio_init != NULL ) { 
     61    if ( (*inst = malloc(sizeof(struct roar_vio_calls))) == NULL ) 
     62     return -1; 
     63 
     64    if ( (i = g_driver[i].vio_init(*inst, device, info)) == -1 ) { 
     65     free(*inst); 
     66     return -1; 
     67    } 
     68    return i; 
     69   } 
    5970 
    6071   if ( g_driver[i].open ) 
     
    93104  return -1; 
    94105 
     106 if ( g_driver[driver].vio_init != NULL ) 
     107  return roar_vio_write((struct roar_vio_calls *) inst, buf, len); 
     108 
    95109 if ( g_driver[driver].write ) 
    96110  return g_driver[driver].write(inst, buf, len); 
     
    102116 if ( driver == -1 ) 
    103117  return -1; 
     118 
     119 if ( g_driver[driver].vio_init != NULL ) 
     120  return roar_vio_read((struct roar_vio_calls *) inst, buf, len); 
    104121 
    105122 if ( g_driver[driver].read ) 
Note: See TracChangeset for help on using the changeset viewer.