pcm_get_htimestamp can now use CLOCK_MONOTONIC

Previously the timebase was not documented.  Now a new pcm_open flag
can be used to specify the clock.  If flag PCM_MONOTONIC is specified,
then pcm_open uses SNDRV_PCM_IOCTL_TTSTAMP with parameter
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC to request timestamps in CLOCK_MONOTONIC.

Change-Id: I40ce359cb38d686cbb2521fb0602a8a17ab4f925
diff --git a/pcm.c b/pcm.c
index 3006d6b..b7aba00 100644
--- a/pcm.c
+++ b/pcm.c
@@ -736,6 +736,17 @@
         goto fail;
     }
 
+#ifdef SNDRV_PCM_IOCTL_TTSTAMP
+    if (pcm->flags & PCM_MONOTONIC) {
+        int arg = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC;
+        rc = ioctl(pcm->fd, SNDRV_PCM_IOCTL_TTSTAMP, &arg);
+        if (rc < 0) {
+            oops(pcm, rc, "cannot set timestamp type");
+            goto fail;
+        }
+    }
+#endif
+
     pcm->underruns = 0;
     return pcm;