@@ -466,12 +466,30 @@ struct snd_xfern {
};
enum {
+ SNDRV_PCM_TSTAMP_CLASS_SYSTEM = 0,
+ SNDRV_PCM_TSTAMP_CLASS_AUDIO,
+ SNDRV_PCM_TSTAMP_CLASS_LAST = SNDRV_PCM_TSTAMP_CLASS_AUDIO,
+};
+
+enum {
SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, /* monotonic_raw (no NTP) */
SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW,
};
+enum {
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 0,
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK,
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK,
+};
+
+struct snd_start_at {
+ int tstamp_class;
+ int tstamp_type;
+ struct timespec start_time;
+};
+
/* channel positions */
enum {
SNDRV_CHMAP_UNKNOWN = 0,
@@ -550,6 +568,8 @@ enum {
#define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
#define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
#define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
+#define SNDRV_PCM_IOCTL_START_AT _IOW('A', 0x62, struct snd_start_at)
+
/*****************************************************************************
* *
As per Pierre's suggestion, timestamp types are of two types: System, and Audio. Signed-off-by: Tim Cussins <timcussins@eml.cc>