Changeset 1505:06a3687a4ce8 in roaraudio for libroar/vio_pipe.c
- Timestamp:
- 04/01/09 17:55:36 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio_pipe.c
r1470 r1505 211 211 } 212 212 213 int roar_vio_pipe_ctl (struct roar_vio_calls * vio, int cmd, void * data) { 214 struct roar_vio_pipe * self; 215 216 if (vio == NULL || cmd == -1) 217 return -1; 218 219 if ( (self = (struct roar_vio_pipe *)vio->inst) == NULL ) 220 return -1; 221 222 switch (cmd) { 223 case ROAR_VIO_CTL_GET_FH: 224 if ( self->type == ROAR_VIO_PIPE_TYPE_SOCKET ) { 225 *(int*)data = self->b.p[ROAR_VIO_PIPE_S(self,vio)]; 226 return 0; 227 } else { 228 return -1; 229 } 230 break; 231 case ROAR_VIO_CTL_GET_READ_FH: 232 switch (self->type) { 233 case ROAR_VIO_PIPE_TYPE_SOCKET: 234 *(int*)data = self->b.p[ROAR_VIO_PIPE_S(self,vio)]; 235 return 0; 236 break; 237 case ROAR_VIO_PIPE_TYPE_PIPE: 238 *(int*)data = self->b.p[ROAR_VIO_PIPE_S(self,vio)*2]; 239 return 0; 240 break; 241 } 242 case ROAR_VIO_CTL_GET_WRITE_FH: 243 switch (self->type) { 244 case ROAR_VIO_PIPE_TYPE_SOCKET: 245 *(int*)data = self->b.p[ROAR_VIO_PIPE_S(self,vio)]; 246 return 0; 247 break; 248 case ROAR_VIO_PIPE_TYPE_PIPE: 249 *(int*)data = self->b.p[(ROAR_VIO_PIPE_SR(self,vio)*2)+1]; 250 return 0; 251 break; 252 } 253 break; 254 } 255 256 return -1; 257 } 258 259 213 260 ssize_t roar_vio_pipe_read (struct roar_vio_calls * vio, void *buf, size_t count) { 214 261 struct roar_vio_pipe * self;
Note: See TracChangeset
for help on using the changeset viewer.