Changeset 5388:e5cc8e03a3e1 in roaraudio for libroar
- Timestamp:
- 01/17/12 11:27:07 (12 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libroar
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio.c
r5381 r5388 53 53 memset((void*)calls, 0, sizeof(struct roar_vio_calls)); 54 54 calls->flags = ROAR_VIO_FLAGS_NONE; 55 calls->refc = 0;55 calls->refc = 1; 56 56 57 57 return 0; … … 202 202 } 203 203 204 int roar_vio_close (struct roar_vio_calls * vio) { 204 205 int roar_vio_ref (struct roar_vio_calls * vio) { 206 if ( vio == NULL ) { 207 roar_err_set(ROAR_ERROR_FAULT); 208 return -1; 209 } 210 211 vio->refc++; 212 213 return 0; 214 } 215 216 int roar_vio_unref (struct roar_vio_calls * vio) { 205 217 int ret; 206 218 207 ROAR_DBG("roar_vio_ close(vio=%p) = ?", vio);208 209 if ( vio == NULL ) { 210 roar_err_set(ROAR_ERROR_FAULT); 211 return -1; 212 } 213 214 if ( vio-> close == NULL ) {219 ROAR_DBG("roar_vio_unref(vio=%p) = ?", vio); 220 221 if ( vio == NULL ) { 222 roar_err_set(ROAR_ERROR_FAULT); 223 return -1; 224 } 225 226 if ( vio->refc == 1 && vio->close == NULL ) { 215 227 roar_err_set(ROAR_ERROR_NOSYS); 216 228 return -1; 217 229 } 230 231 vio->refc--; 232 233 if ( vio->refc ) 234 return 0; 218 235 219 236 roar_err_clear_all(); … … 221 238 roar_err_update(); 222 239 240 if ( vio->flags & ROAR_VIO_FLAGS_FREESELF ) 241 roar_mm_free(vio); 242 223 243 return ret; 224 244 } … … 257 277 258 278 memset((void*)calls, 0, sizeof(struct roar_vio_calls)); 279 calls->flags = ROAR_VIO_FLAGS_NONE; 280 calls->refc = 1; 259 281 260 282 calls->read = roar_vio_basic_read; … … 642 664 643 665 memset((void*)calls, 0, sizeof(struct roar_vio_calls)); 666 calls->flags = ROAR_VIO_FLAGS_NONE; 667 calls->refc = 1; 644 668 645 669 calls->read = roar_vio_pass_read; -
libroar/vio_bio.c
r5381 r5388 42 42 43 43 memset(calls, 0, sizeof(struct roar_vio_calls)); 44 calls->flags = ROAR_VIO_FLAGS_NONE; 45 calls->refc = 1; 44 46 45 47 calls->read = roar_vio_bio_read; -
libroar/vio_buffer.c
r5381 r5388 59 59 60 60 memset(calls, 0, sizeof(struct roar_vio_calls)); 61 calls->flags = ROAR_VIO_FLAGS_NONE; 62 calls->refc = 1; 61 63 62 64 calls->inst = self; -
libroar/vio_buffer_store.c
r5381 r5388 50 50 51 51 memset(calls, 0, sizeof(struct roar_vio_calls)); 52 calls->flags = ROAR_VIO_FLAGS_NONE; 53 calls->refc = 1; 52 54 53 55 if ( inst != NULL ) -
libroar/vio_cmd.c
r5381 r5388 54 54 // clear all 55 55 memset(calls, 0, sizeof(struct roar_vio_calls)); 56 calls->flags = ROAR_VIO_FLAGS_NONE; 57 calls->refc = 1; 56 58 memset(state, 0, sizeof(struct roar_vio_cmd_state)); 57 59 … … 233 235 // clear all 234 236 memset(calls, 0, sizeof(struct roar_vio_calls)); 237 calls->flags = ROAR_VIO_FLAGS_NONE; 238 calls->refc = 1; 235 239 memset(state, 0, sizeof(struct roar_vio_2popen_state)); 236 240 -
libroar/vio_dstr.c
r5381 r5388 411 411 } 412 412 413 struct roar_vio_calls * roar_vio_open_dstr_simple_new(const char * dstr, int o_flags) { 414 struct roar_vio_calls * ret = roar_mm_malloc(sizeof(struct roar_vio_calls)); 415 int err; 416 417 if ( ret == NULL ) 418 return NULL; 419 420 if ( roar_vio_open_dstr_simple(ret, dstr, o_flags) == -1 ) { 421 err = roar_error; 422 roar_mm_free(ret); 423 roar_error = err; 424 return NULL; 425 } 426 427 ret->flags |= ROAR_VIO_FLAGS_FREESELF; 428 429 return ret; 430 } 431 413 432 int roar_vio_open_dstr (struct roar_vio_calls * calls, const char * dstr, struct roar_vio_defaults * def, int dnum) { 414 433 return roar_vio_open_dstr_vio(calls, dstr, def, dnum, NULL); -
libroar/vio_jumbo.c
r5381 r5388 53 53 54 54 memset(calls, 0, sizeof(struct roar_vio_calls)); 55 calls->flags = ROAR_VIO_FLAGS_NONE; 56 calls->refc = 1; 55 57 calls->inst = self; 56 58 calls->close = roar_vio_jumbo_close; -
libroar/vio_misc.c
r5381 r5388 106 106 107 107 memset(calls, 0, sizeof(struct roar_vio_calls)); 108 calls->flags = ROAR_VIO_FLAGS_NONE; 109 calls->refc = 1; 108 110 calls->read = roar_vio_misc_read; 109 111 calls->write = roar_vio_misc_write; -
libroar/vio_pipe.c
r5381 r5388 125 125 126 126 memset(s, 0, sizeof(struct roar_vio_calls)); 127 s->flags = ROAR_VIO_FLAGS_NONE; 128 s->refc = 1; 127 129 128 130 s->close = roar_vio_pipe_close; -
libroar/vio_rtp.c
r5381 r5388 110 110 111 111 memset(calls, 0, sizeof(struct roar_vio_calls)); 112 calls->flags = ROAR_VIO_FLAGS_NONE; 113 calls->refc = 1; 112 114 113 115 calls->inst = self; -
libroar/vio_stack.c
r5381 r5388 56 56 memset(self, 0, sizeof(struct roar_vio_stack)); 57 57 memset(calls, 0, sizeof(struct roar_vio_calls)); 58 calls->flags = ROAR_VIO_FLAGS_NONE; 59 calls->refc = 1; 58 60 59 61 self->free = func; -
libroar/vio_stdio.c
r5381 r5388 42 42 43 43 memset(calls, 0, sizeof(struct roar_vio_calls)); 44 calls->flags = ROAR_VIO_FLAGS_NONE; 45 calls->refc = 1; 44 46 45 47 calls->read = roar_vio_stdio_read; -
libroar/vio_tantalos.c
r5381 r5388 97 97 return 0; 98 98 99 memset(calls, 0, sizeof( *calls));99 memset(calls, 0, sizeof(struct roar_vio_calls)); 100 100 } 101 101 -
libroar/vio_zlib.c
r5381 r5388 538 538 539 539 memset(calls, 0, sizeof(struct roar_vio_calls)); 540 calls->flags = ROAR_VIO_FLAGS_NONE; 541 calls->refc = 1; 540 542 541 543 calls->inst = self;
Note: See TracChangeset
for help on using the changeset viewer.