Changeset 2213:7a2733bb4ae8 in roaraudio
- Timestamp:
- 07/27/09 19:19:33 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_sysclock.c
r2212 r2213 43 43 inst->write = driver_sysclock_write; 44 44 45 self->b sp= (info->bits / 8) * info->channels * info->rate;45 self->bps = (info->bits / 8) * info->channels * info->rate; 46 46 47 if (!self->b sp) {47 if (!self->bps) { 48 48 free(self); 49 49 return -1; … … 61 61 case ROAR_CODEC_MULAW: 62 62 // one byte per sample 63 self->b sp*= 8;64 self->b sp/= info->bits;63 self->bps *= 8; 64 self->bps /= info->bits; 65 65 break; 66 66 default: … … 88 88 ssize_t driver_sysclock_write (struct roar_vio_calls * vio, void *buf, size_t count) { 89 89 struct driver_sysclock * self = vio->inst; 90 return -1; 90 struct timeval now; 91 unsigned long long diff = (1000000 * count / self->bps); 92 unsigned long long ago; 93 94 gettimeofday(&now, NULL); 95 96 ago = now.tv_usec - self->lasttime.tv_usec; 97 ago += 1000000*(now.tv_sec - self->lasttime.tv_sec); 98 99 memcpy(&(self->lasttime), &now, sizeof(now)); 100 101 ROAR_DBG("driver_sysclock_write(*): count=%u, bps=%u, diff=%llu, ago=%llu", count, self->bps, diff, ago); 102 103 if ( diff <= ago ) 104 return count; 105 106 diff -= ago; 107 108 usleep(diff); 109 110 return count; 91 111 } 92 112
Note: See TracChangeset
for help on using the changeset viewer.