Changeset 912:e0480ffcba74 in roaraudio for roard/driver_esd.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_esd.c

    r668 r912  
    3232*/ 
    3333 
    34 int driver_esd_open(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info) { 
     34int driver_esd_open_sysio(DRIVER_USERDATA_T * inst, char * device, struct roar_audio_info * info) { 
    3535 esd_format_t format = ESD_STREAM | ESD_PLAY; 
    3636 char name[80] = "roard"; 
     
    6060} 
    6161 
     62int 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 
    6268int 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; 
    6474 
    6575 free((void*)inst); 
     
    7282} 
    7383 
    74 int driver_esd_write(DRIVER_USERDATA_T   inst, char * buf, int len) { 
    75  int * di = (int*)inst; 
     84int driver_esd_write(struct roar_vio_calls * inst, void * buf, size_t len) { 
     85 int * di = (int*)((struct roar_vio_calls *)inst)->inst; 
    7686 
    7787 if ( di[1] ) 
     
    8191} 
    8292 
    83 int driver_esd_read(DRIVER_USERDATA_T   inst, char * buf, int len) { 
    84  return read(*(int*)inst, buf, len); 
     93int 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); 
    8595} 
    8696 
Note: See TracChangeset for help on using the changeset viewer.