Changeset 947:edb7ba2fe666 in roaraudio for roard/driver_raw.c
- Timestamp:
- 12/07/08 23:28:12 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.