mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2026-03-01 01:40:07 -05:00
Fix the build with old glibc
The old systems don't support CLOCK_MONOTONIC although clock_gettime() API itself exists. This causes compile errors.
This commit is contained in:
parent
12944a024f
commit
91726ddf83
3 changed files with 6 additions and 2 deletions
|
|
@ -469,7 +469,7 @@ int snd_pcm_file_open(snd_pcm_t **pcmp, const char *name,
|
||||||
pcm->poll_fd = slave->poll_fd;
|
pcm->poll_fd = slave->poll_fd;
|
||||||
pcm->poll_events = slave->poll_events;
|
pcm->poll_events = slave->poll_events;
|
||||||
pcm->mmap_shadow = 1;
|
pcm->mmap_shadow = 1;
|
||||||
#ifdef HAVE_CLOCK_GETTIME
|
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||||
pcm->monotonic = clock_gettime(CLOCK_MONOTONIC, ×pec) == 0;
|
pcm->monotonic = clock_gettime(CLOCK_MONOTONIC, ×pec) == 0;
|
||||||
#else
|
#else
|
||||||
pcm->monotonic = 0;
|
pcm->monotonic = 0;
|
||||||
|
|
|
||||||
|
|
@ -994,7 +994,7 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp, const char *name,
|
||||||
if (SNDRV_PROTOCOL_INCOMPATIBLE(ver, SNDRV_PCM_VERSION_MAX))
|
if (SNDRV_PROTOCOL_INCOMPATIBLE(ver, SNDRV_PCM_VERSION_MAX))
|
||||||
return -SND_ERROR_INCOMPATIBLE_VERSION;
|
return -SND_ERROR_INCOMPATIBLE_VERSION;
|
||||||
|
|
||||||
#ifdef HAVE_CLOCK_GETTIME
|
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||||
if (SNDRV_PROTOCOL_VERSION(2, 0, 9) <= ver) {
|
if (SNDRV_PROTOCOL_VERSION(2, 0, 9) <= ver) {
|
||||||
struct timespec timespec;
|
struct timespec timespec;
|
||||||
if (clock_gettime(CLOCK_MONOTONIC, ×pec) == 0) {
|
if (clock_gettime(CLOCK_MONOTONIC, ×pec) == 0) {
|
||||||
|
|
|
||||||
|
|
@ -944,13 +944,17 @@ typedef union snd_tmp_double {
|
||||||
/* get the current timestamp */
|
/* get the current timestamp */
|
||||||
static inline void gettimestamp(snd_htimestamp_t *tstamp, int monotonic)
|
static inline void gettimestamp(snd_htimestamp_t *tstamp, int monotonic)
|
||||||
{
|
{
|
||||||
|
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||||
if (monotonic) {
|
if (monotonic) {
|
||||||
clock_gettime(CLOCK_MONOTONIC, tstamp);
|
clock_gettime(CLOCK_MONOTONIC, tstamp);
|
||||||
} else {
|
} else {
|
||||||
|
#endif
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
|
|
||||||
gettimeofday(&tv, 0);
|
gettimeofday(&tv, 0);
|
||||||
tstamp->tv_sec = tv.tv_sec;
|
tstamp->tv_sec = tv.tv_sec;
|
||||||
tstamp->tv_nsec = tv.tv_usec * 1000L;
|
tstamp->tv_nsec = tv.tv_usec * 1000L;
|
||||||
|
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue