Changeset 1151:699db521c74a in roaraudio
- Timestamp:
- 01/22/09 14:23:48 (15 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/vio.h
r1150 r1151 47 47 #define ROAR_VIO_CTL_GET_SSTREAM 0x00011002 48 48 49 #define ROAR_VIO_CTL_GET_DELAY 0x00010011 49 #define ROAR_VIO_CTL_GET_DELAY 0x00010011 /* return in bytes as the vio interface */ 50 /* does not know anything about streams */ 50 51 51 52 // sys io: -
roard/driver_oss.c
r1138 r1151 45 45 roar_vio_init_calls(inst); 46 46 inst->sync = driver_oss_sync; 47 inst->ctl = driver_oss_ctl; 47 48 48 49 if ( fh == -1 ) { … … 203 204 } 204 205 206 int driver_oss_ctl(struct roar_vio_calls * vio, int cmd, void * data) { 207 int d; 208 209 if ( vio == NULL ) 210 return -1; 211 212 if ( cmd != ROAR_VIO_CTL_GET_DELAY ) 213 return -1; 214 215 if ( ioctl(roar_vio_get_fh(vio), SNDCTL_DSP_GETODELAY, &d) == -1 ) 216 return -1; 217 218 ROAR_WARN("driver_oss_ctl(*): delay=%i byte", d); 219 220 *(uint_least32_t *)data = d; 221 222 return 0; 223 } 224 205 225 #endif 206 226 //ll -
roard/include/driver_oss.h
r1138 r1151 29 29 int driver_oss_close(DRIVER_USERDATA_T inst); 30 30 int driver_oss_sync(struct roar_vio_calls * vio); 31 int driver_oss_ctl(struct roar_vio_calls * vio, int cmd, void * data); 31 32 32 33 #endif -
roard/req.c
r1142 r1151 496 496 d[7] = ss->delay/1000; 497 497 498 ROAR_WARN("req_on_get_stream_para(*): delay=%i, send delay=%i", ss->delay, d[7]); 499 498 500 for (i = 0; i < mes->datalen/2; i++) { 499 501 d[i] = ROAR_HOST2NET16(d[i]); -
roard/streams.c
r1148 r1151 339 339 int sreams_calc_delay (int id) { 340 340 struct roar_stream_server * ss; 341 struct roar_stream * s; 341 342 register uint_least32_t d = 0; 342 343 uint_least32_t t[1]; 343 344 if ( (ss = g_streams[id]) == NULL ) 344 uint64_t tmp; 345 346 if ( (s = ROAR_STREAM(ss = g_streams[id])) == NULL ) 345 347 return -1; 346 348 … … 349 351 d += *t; 350 352 } 353 354 if ( ss->vio.ctl != NULL ) { 355 if ( roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_GET_DELAY, t) != -1 ) { // *t is in byte 356 ROAR_WARN("sreams_calc_delay(id=%i): VIO delay in byte: %i", id, *t); 357 tmp = *t; 358 tmp *= 1000000; // musec per sec 359 tmp /= s->info.rate * s->info.channels * (s->info.bits/8); 360 ROAR_WARN("sreams_calc_delay(id=%i): VIO delay in musec: %i", id, tmp); 361 362 d += tmp; 363 } 364 } 365 366 ROAR_WARN("sreams_calc_delay(id=%i): delay in musec: %i", id, d); 351 367 352 368 ss->delay = d;
Note: See TracChangeset
for help on using the changeset viewer.