Changeset 3274:5cc3c2eedc26 in roaraudio


Ignore:
Timestamp:
02/01/10 11:08:58 (10 years ago)
Author:
phi
Branch:
default
Message:

start with non-IO ops

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio_rtp.c

    r3272 r3274  
    3636 
    3737int 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} 
    3967 
    4068ssize_t roar_vio_rtp_read    (struct roar_vio_calls * vio, void *buf, size_t count); 
    4169ssize_t roar_vio_rtp_write   (struct roar_vio_calls * vio, void *buf, size_t count); 
    4270off_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 
     72int     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 
     78int     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 
     84int     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 
     104int     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} 
    47114 
    48115//ll 
Note: See TracChangeset for help on using the changeset viewer.