Changeset 2644:f7c9a860b404 in roaraudio
- Timestamp:
- 09/12/09 02:40:20 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/vio_transcode.c
r2642 r2644 100 100 101 101 int 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 130 ssize_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 141 ssize_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 105 152 off_t roar_vio_bixcode_lseek (struct roar_vio_calls * vio, off_t offset, int whence); 106 153 int roar_vio_bixcode_nonblock(struct roar_vio_calls * vio, int state); 107 154 int roar_vio_bixcode_sync (struct roar_vio_calls * vio); 108 155 int 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 157 int 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 } 110 171 111 172 //ll
Note: See TracChangeset
for help on using the changeset viewer.