Changeset 947:edb7ba2fe666 in roaraudio for roard
- Timestamp:
- 12/07/08 23:28:12 (16 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver.c
r944 r947 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}, 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},33 { "raw", "RAW PCM driver", "/some/file", NULL, driver_raw_close, driver_roar_pause, NULL, NULL, driver_raw_flush, driver_raw_open_vio}, 34 34 #if defined(ROAR_HAVE_OSS_BSD) || defined(ROAR_HAVE_OSS) 35 35 #ifndef ROAR_DEFAULT_OSS_DEV … … 48 48 49 49 for (i = 0; g_driver[i].name != NULL; i++) { 50 printf(" %-8s - %s (devices: %s)\n", g_driver[i].name, g_driver[i].desc, g_driver[i].devices); 50 printf(" %-8s %c%c - %s (devices: %s)\n", g_driver[i].name, 51 g_driver[i].open != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'S' : ' ', 52 g_driver[i].vio_init != NULL || (g_driver[i].open == NULL && g_driver[i].vio_init == NULL) ? 'V' : ' ', 53 g_driver[i].desc, g_driver[i].devices); 51 54 } 52 55 } -
roard/driver_raw.c
r668 r947 25 25 #include "roard.h" 26 26 27 int driver_raw_open(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info) { 28 int * di = malloc(sizeof(int)); 29 30 if ( di == NULL ) 31 return -1; 32 33 *inst = (DRIVER_USERDATA_T)di; 27 int driver_raw_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh) { 34 28 35 29 if ( device == NULL ) { 36 free(di);37 *inst = NULL;38 30 return -1; 39 31 } 40 32 41 *di = open(device, O_CREAT|O_TRUNC|O_WRONLY, 0644); 33 if ( fh == -1 ) { 34 if ( (fh = open(device, O_CREAT|O_TRUNC|O_WRONLY, 0644)) == -1 ) { 35 return -1; 36 } 37 } 42 38 43 if ( *di == -1 ) { 44 free(di); 45 *inst = NULL; 46 return -1; 47 } 39 roar_vio_set_fh(inst, fh); 48 40 49 41 return 0; … … 51 43 52 44 int driver_raw_close(DRIVER_USERDATA_T inst) { 53 int fh = *(int*)inst; 54 55 free((void*)inst); 56 57 return close(fh); 45 return close(roar_vio_get_fh((struct roar_vio_calls *)inst)); 58 46 } 59 47 60 48 int driver_raw_pause(DRIVER_USERDATA_T inst, int newstate) { 61 49 return -1; 62 }63 64 int driver_raw_write(DRIVER_USERDATA_T inst, char * buf, int len) {65 return write(*(int*)inst, buf, len);66 }67 68 int driver_raw_read(DRIVER_USERDATA_T inst, char * buf, int len) {69 return read(*(int*)inst, buf, len);70 50 } 71 51 -
roard/include/driver_raw.h
r668 r947 26 26 #define _DRIVER_RAW_H_ 27 27 28 int driver_raw_open (DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info);28 int driver_raw_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh); 29 29 int driver_raw_close(DRIVER_USERDATA_T inst); 30 30 int driver_raw_pause(DRIVER_USERDATA_T inst, int newstate); 31 int driver_raw_write(DRIVER_USERDATA_T inst, char * buf, int len);32 int driver_raw_read(DRIVER_USERDATA_T inst, char * buf, int len);33 31 int driver_raw_flush(DRIVER_USERDATA_T inst); 34 32
Note: See TracChangeset
for help on using the changeset viewer.