Changeset 912:e0480ffcba74 in roaraudio for roard
- Timestamp:
- 12/06/08 22:36:19 (16 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver.c
r911 r912 28 28 { "null", "null audio driver", "/dev/null", NULL, NULL, NULL, NULL, NULL, NULL, NULL}, 29 29 #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}, 31 31 #endif 32 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}, … … 62 62 return -1; 63 63 64 memset(*inst, 0, sizeof(struct roar_vio_calls)); 65 64 66 if ( (i = g_driver[i].vio_init(*inst, device, info)) == -1 ) { 65 67 free(*inst); … … 68 70 return i; 69 71 } 72 73 ROAR_WARN("driver_open(*): driver uses old non-vio interface!"); 70 74 71 75 if ( g_driver[i].open ) … … 79 83 80 84 int driver_close(DRIVER_USERDATA_T inst, int driver) { 85 int ret = 0; 81 86 ROAR_DBG("driver_close(inst=%p, driver=%i) = ?", inst, driver); 82 87 … … 85 90 86 91 if ( g_driver[driver].close ) 87 ret urng_driver[driver].close(inst);92 ret = g_driver[driver].close(inst); 88 93 89 return 0; 94 if ( g_driver[driver].vio_init != NULL ) 95 free(inst); 96 97 return ret; 90 98 } 91 99 -
roard/driver_esd.c
r668 r912 32 32 */ 33 33 34 int driver_esd_open (DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info) {34 int driver_esd_open_sysio(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info) { 35 35 esd_format_t format = ESD_STREAM | ESD_PLAY; 36 36 char name[80] = "roard"; … … 60 60 } 61 61 62 int driver_esd_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info) { 63 inst->read = driver_esd_read; 64 inst->write = driver_esd_write; 65 return driver_esd_open_sysio(&(inst->inst), device, info); 66 } 67 62 68 int driver_esd_close(DRIVER_USERDATA_T inst) { 63 int fh = *(int*)inst; 69 int fh; 70 71 inst = ((struct roar_vio_calls *)inst)->inst; 72 73 fh = *(int*)inst; 64 74 65 75 free((void*)inst); … … 72 82 } 73 83 74 int driver_esd_write( DRIVER_USERDATA_T inst, char * buf, int len) {75 int * di = (int*) inst;84 int driver_esd_write(struct roar_vio_calls * inst, void * buf, size_t len) { 85 int * di = (int*)((struct roar_vio_calls *)inst)->inst; 76 86 77 87 if ( di[1] ) … … 81 91 } 82 92 83 int driver_esd_read( DRIVER_USERDATA_T inst, char * buf, int len) {84 return read(*(int*) inst, buf, len);93 int driver_esd_read(struct roar_vio_calls * inst, void * buf, size_t len) { 94 return read(*(int*)((struct roar_vio_calls *)inst)->inst, buf, len); 85 95 } 86 96 -
roard/include/driver_esd.h
r668 r912 26 26 #define _DRIVER_ESD_H_ 27 27 28 int driver_esd_open(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info); 28 int driver_esd_open_sysio(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info); 29 int driver_esd_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info); 29 30 int driver_esd_close(DRIVER_USERDATA_T inst); 30 31 int driver_esd_pause(DRIVER_USERDATA_T inst, int newstate); 31 int driver_esd_write( DRIVER_USERDATA_T inst, char * buf, int len);32 int driver_esd_read( DRIVER_USERDATA_T inst, char * buf, int len);32 int driver_esd_write(struct roar_vio_calls * inst, void * buf, size_t len); 33 int driver_esd_read(struct roar_vio_calls * inst, void * buf, size_t len); 33 34 int driver_esd_flush(DRIVER_USERDATA_T inst); 34 35
Note: See TracChangeset
for help on using the changeset viewer.