Changeset 947:edb7ba2fe666 in roaraudio for roard/driver_raw.c


Ignore:
Timestamp:
12/07/08 23:28:12 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

changed raw driver to use vio interface and display sysio vs. vio in driver list

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver_raw.c

    r668 r947  
    2525#include "roard.h" 
    2626 
    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; 
     27int driver_raw_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh) { 
    3428 
    3529 if ( device == NULL ) { 
    36   free(di); 
    37   *inst = NULL; 
    3830  return -1; 
    3931 } 
    4032 
    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 } 
    4238 
    43  if ( *di == -1 ) { 
    44   free(di); 
    45   *inst = NULL; 
    46   return -1; 
    47  } 
     39 roar_vio_set_fh(inst, fh); 
    4840 
    4941 return 0; 
     
    5143 
    5244int 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)); 
    5846} 
    5947 
    6048int driver_raw_pause(DRIVER_USERDATA_T   inst, int newstate) { 
    6149 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); 
    7050} 
    7151 
Note: See TracChangeset for help on using the changeset viewer.