Changeset 3274:5cc3c2eedc26 in roaraudio
- Timestamp:
- 02/01/10 11:08:58 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio_rtp.c
r3272 r3274 36 36 37 37 int roar_vio_open_rtp (struct roar_vio_calls * calls, struct roar_vio_calls * dst, 38 char * dstr, struct roar_vio_defaults * odef); 38 char * dstr, struct roar_vio_defaults * odef) { 39 struct roar_rtp_inst * self = NULL; 40 41 if ( calls == NULL || dst == NULL ) 42 return -1; 43 44 if ( (self = roar_mm_malloc(sizeof(struct roar_rtp_inst))) == NULL ) 45 return -1; 46 47 memset(self, 0, sizeof(struct roar_rtp_inst)); 48 49 self->vio = dst; 50 51 self->header.version = 2; 52 self->header.payload_type = ROAR_RTP_PT_UNKNOWN; 53 54 memset(calls, 0, sizeof(struct roar_vio_calls)); 55 56 calls->inst = self; 57 // calls->read = roar_vio_rtp_read; 58 // calls->write = roar_vio_rtp_write; 59 // calls->lseek = roar_vio_rtp_lseek; 60 calls->nonblock = roar_vio_rtp_nonblock; 61 calls->sync = roar_vio_rtp_sync; 62 calls->ctl = roar_vio_rtp_ctl; 63 calls->close = roar_vio_rtp_close; 64 65 return 0; 66 } 39 67 40 68 ssize_t roar_vio_rtp_read (struct roar_vio_calls * vio, void *buf, size_t count); 41 69 ssize_t roar_vio_rtp_write (struct roar_vio_calls * vio, void *buf, size_t count); 42 70 off_t roar_vio_rtp_lseek (struct roar_vio_calls * vio, off_t offset, int whence); 43 int roar_vio_rtp_nonblock(struct roar_vio_calls * vio, int state); 44 int roar_vio_rtp_sync (struct roar_vio_calls * vio); 45 int roar_vio_rtp_ctl (struct roar_vio_calls * vio, int cmd, void * data); 46 int roar_vio_rtp_close (struct roar_vio_calls * vio); 71 72 int roar_vio_rtp_nonblock(struct roar_vio_calls * vio, int state) { 73 struct roar_rtp_inst * self = vio->inst; 74 75 return roar_vio_nonblock(self->vio, state); 76 } 77 78 int roar_vio_rtp_sync (struct roar_vio_calls * vio) { 79 struct roar_rtp_inst * self = vio->inst; 80 81 return roar_vio_sync(self->vio); 82 } 83 84 int roar_vio_rtp_ctl (struct roar_vio_calls * vio, int cmd, void * data) { 85 struct roar_rtp_inst * self = vio->inst; 86 87 if (vio == NULL || cmd == -1) 88 return -1; 89 90 switch (cmd) { 91 case ROAR_VIO_CTL_GET_NEXT: 92 *(struct roar_vio_calls **)data = self->vio; 93 return 0; 94 break; 95 case ROAR_VIO_CTL_SET_NEXT: 96 self->vio = *(struct roar_vio_calls **)data; 97 return 0; 98 break; 99 } 100 101 return roar_vio_ctl(self->vio, cmd, data); 102 } 103 104 int roar_vio_rtp_close (struct roar_vio_calls * vio) { 105 struct roar_rtp_inst * self = vio->inst; 106 int ret; 107 108 ret = roar_vio_close(self->vio); 109 110 roar_mm_free(self); 111 112 return ret; 113 } 47 114 48 115 //ll
Note: See TracChangeset
for help on using the changeset viewer.