Timestamp update (struct timeval -> struct timespec).

This commit is contained in:
Jaroslav Kysela 2003-02-28 17:23:28 +00:00
parent 8bb29f007d
commit cf9e518d51
15 changed files with 91 additions and 36 deletions

View file

@ -106,7 +106,7 @@ typedef struct {
unsigned int channels;
unsigned int *slave_channels;
int drain_silenced;
struct timeval trigger_tstamp;
snd_htimestamp_t trigger_tstamp;
snd_pcm_state_t state;
snd_pcm_uframes_t hw_ptr;
snd_pcm_uframes_t appl_ptr;
@ -890,6 +890,7 @@ static int snd_pcm_share_start(snd_pcm_t *pcm)
snd_pcm_share_t *share = pcm->private_data;
snd_pcm_share_slave_t *slave = share->slave;
snd_pcm_t *spcm = slave->pcm;
struct timeval tv;
int err = 0;
if (share->state != SND_PCM_STATE_PREPARED)
return -EBADFD;
@ -945,7 +946,9 @@ static int snd_pcm_share_start(snd_pcm_t *pcm)
}
slave->running_count++;
_snd_pcm_share_update(pcm);
gettimeofday(&share->trigger_tstamp, 0);
gettimeofday(&tv, 0);
share->trigger_tstamp.tv_sec = tv.tv_sec;
share->trigger_tstamp.tv_nsec = tv.tv_usec * 1000L;
_end:
Pthread_mutex_unlock(&slave->mutex);
return err;
@ -1072,13 +1075,16 @@ static void _snd_pcm_share_stop(snd_pcm_t *pcm, snd_pcm_state_t state)
{
snd_pcm_share_t *share = pcm->private_data;
snd_pcm_share_slave_t *slave = share->slave;
struct timeval tv;
#if 0
if (!pcm->mmap_channels) {
/* PCM closing already begun in the main thread */
return;
}
#endif
gettimeofday(&share->trigger_tstamp, 0);
gettimeofday(&tv, 0);
share->trigger_tstamp.tv_sec = tv.tv_sec;
share->trigger_tstamp.tv_nsec = tv.tv_usec * 1000L;
if (pcm->stream == SND_PCM_STREAM_CAPTURE) {
snd_pcm_areas_copy(pcm->stopped_areas, 0,
pcm->running_areas, 0,