Changeset 912:e0480ffcba74 in roaraudio for roard/driver.c


Ignore:
Timestamp:
12/06/08 22:36:19 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

got esd driver working via vio, changed driver interface a bit to get a memory leak away

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver.c

    r911 r912  
    2828 { "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, NULL}, 
     30 { "esd", "EsounD audio driver", "localhost, remote.host.dom", NULL, driver_esd_close, driver_esd_pause, NULL, NULL, driver_esd_flush, driver_esd_open_vio}, 
    3131#endif 
    3232 { "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}, 
     
    6262     return -1; 
    6363 
     64    memset(*inst, 0, sizeof(struct roar_vio_calls)); 
     65 
    6466    if ( (i = g_driver[i].vio_init(*inst, device, info)) == -1 ) { 
    6567     free(*inst); 
     
    6870    return i; 
    6971   } 
     72 
     73   ROAR_WARN("driver_open(*): driver uses old non-vio interface!"); 
    7074 
    7175   if ( g_driver[i].open ) 
     
    7983 
    8084int driver_close(DRIVER_USERDATA_T   inst, int driver) { 
     85 int ret = 0; 
    8186 ROAR_DBG("driver_close(inst=%p, driver=%i) = ?", inst, driver); 
    8287 
     
    8590 
    8691 if ( g_driver[driver].close ) 
    87   return g_driver[driver].close(inst); 
     92  ret = g_driver[driver].close(inst); 
    8893 
    89  return 0; 
     94 if ( g_driver[driver].vio_init != NULL ) 
     95  free(inst); 
     96 
     97 return ret; 
    9098} 
    9199 
Note: See TracChangeset for help on using the changeset viewer.