Changeset 2422:23f102fcb3e3 in roaraudio
- Timestamp:
- 08/18/09 22:02:30 (15 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_sysclock.c
r2367 r2422 72 72 gettimeofday(&(self->lasttime), NULL); 73 73 74 self->last_wanted = 0; 75 74 76 return 0; 75 77 } … … 89 91 struct driver_sysclock * self = vio->inst; 90 92 struct timeval now; 91 unsignedlong long diff = (1000000 * count / self->bps);92 unsignedlong long ago;93 long long diff = (1000000 * count / self->bps); 94 long long ago; 93 95 94 96 gettimeofday(&now, NULL); … … 97 99 ago += 1000000*(now.tv_sec - self->lasttime.tv_sec); 98 100 101 ago -= self->last_wanted; 102 99 103 memcpy(&(self->lasttime), &now, sizeof(now)); 100 104 101 105 ROAR_DBG("driver_sysclock_write(*): count=%u, bps=%u, diff=%llu, ago=%llu", count, self->bps, diff, ago); 102 106 103 if ( diff <= ago )104 return count;105 106 107 diff -= ago; 107 108 108 usleep(diff); 109 self->last_wanted = diff; 110 111 if ( diff > 0 ) 112 usleep(diff); 109 113 110 114 return count; -
roard/include/driver_sysclock.h
r2367 r2422 29 29 int bps; 30 30 struct timeval lasttime; 31 long int last_wanted; 31 32 }; 32 33
Note: See TracChangeset
for help on using the changeset viewer.