Changeset 2644:f7c9a860b404 in roaraudio


Ignore:
Timestamp:
09/12/09 02:40:20 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

wrote bixcoder code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/vio_transcode.c

    r2642 r2644  
    100100 
    101101int     roar_vio_open_bixcode    (struct roar_vio_calls * calls, struct roar_audio_info * info, 
    102                                   struct roar_vio_calls * dst); 
    103 ssize_t roar_vio_bixcode_read    (struct roar_vio_calls * vio, void *buf, size_t count); 
    104 ssize_t roar_vio_bixcode_write   (struct roar_vio_calls * vio, void *buf, size_t count); 
     102                                  struct roar_vio_calls * dst) { 
     103 struct roar_bixcoder * bixcoder = malloc(sizeof(struct roar_bixcoder)); 
     104 
     105 if ( bixcoder == NULL ) 
     106  return -1; 
     107 
     108 if ( calls == NULL || info == NULL || dst == NULL ) { 
     109  free(bixcoder); 
     110  return -1; 
     111 } 
     112 
     113 if ( roar_bixcoder_init(bixcoder, info, dst) == -1 ) { 
     114  free(bixcoder); 
     115  return -1; 
     116 } 
     117 
     118 memset(calls, 0, sizeof(struct roar_vio_calls)); 
     119 
     120 calls->inst   = (void*)bixcoder; 
     121 
     122 calls->close  = roar_vio_bixcode_close; 
     123 
     124 calls->read  = roar_vio_bixcode_read; 
     125 calls->write = roar_vio_bixcode_write; 
     126 
     127 return 0; 
     128} 
     129 
     130ssize_t roar_vio_bixcode_read    (struct roar_vio_calls * vio, void *buf, size_t count) { 
     131 
     132 if ( vio == NULL ) 
     133  return -1; 
     134 
     135 if ( buf == NULL && count != 0 ) 
     136  return -1; 
     137 
     138 return !roar_bixcoder_read(vio->inst, buf, count) ? count : -1; 
     139} 
     140 
     141ssize_t roar_vio_bixcode_write   (struct roar_vio_calls * vio, void *buf, size_t count) { 
     142 
     143 if ( vio == NULL ) 
     144  return -1; 
     145 
     146 if ( buf == NULL && count != 0 ) 
     147  return -1; 
     148 
     149 return !roar_bixcoder_write(vio->inst, buf, count) ? count : -1; 
     150} 
     151 
    105152off_t   roar_vio_bixcode_lseek   (struct roar_vio_calls * vio, off_t offset, int whence); 
    106153int     roar_vio_bixcode_nonblock(struct roar_vio_calls * vio, int state); 
    107154int     roar_vio_bixcode_sync    (struct roar_vio_calls * vio); 
    108155int     roar_vio_bixcode_ctl     (struct roar_vio_calls * vio, int cmd, void * data); 
    109 int     roar_vio_bixcode_close   (struct roar_vio_calls * vio); 
     156 
     157int     roar_vio_bixcode_close   (struct roar_vio_calls * vio) { 
     158 int ret = 0; 
     159 
     160 if ( vio == NULL ) 
     161  return -1; 
     162 
     163 if ( roar_bixcoder_close(vio->inst) == -1 ) 
     164  ret = -1; 
     165 
     166 if ( vio->inst != NULL ) 
     167  free(vio->inst); 
     168 
     169 return ret; 
     170} 
    110171 
    111172//ll 
Note: See TracChangeset for help on using the changeset viewer.