mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Sync
This commit is contained in:
parent
2459a6d1d1
commit
5f5243ef79
1 changed files with 54 additions and 11 deletions
|
|
@ -557,6 +557,9 @@ enum sndrv_timer_slave_class {
|
|||
#define SNDRV_TIMER_GLOBAL_SYSTEM 0
|
||||
#define SNDRV_TIMER_GLOBAL_RTC 1
|
||||
|
||||
/* info flags */
|
||||
#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */
|
||||
|
||||
struct sndrv_timer_id {
|
||||
enum sndrv_timer_class dev_class;
|
||||
enum sndrv_timer_slave_class dev_sclass;
|
||||
|
|
@ -565,36 +568,66 @@ struct sndrv_timer_id {
|
|||
int subdevice;
|
||||
};
|
||||
|
||||
struct sndrv_timer_ginfo {
|
||||
struct sndrv_timer_id tid; /* requested timer ID */
|
||||
unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
|
||||
int card; /* card number */
|
||||
unsigned char id[64]; /* timer identification */
|
||||
unsigned char name[80]; /* timer name */
|
||||
unsigned long ticks; /* maximum ticks between interrupts */
|
||||
unsigned long resolution; /* average period resolution in ns */
|
||||
unsigned long resolution_min; /* minimal period resolution in ns */
|
||||
unsigned long resolution_max; /* maximal period resolution in ns */
|
||||
unsigned int clients; /* active timer clients */
|
||||
unsigned char reserved[32];
|
||||
};
|
||||
|
||||
struct sndrv_timer_gparams {
|
||||
struct sndrv_timer_id tid; /* requested timer ID */
|
||||
unsigned long period; /* requested minimal period in ns */
|
||||
unsigned long period_num; /* requested precise period resolution (in seconds) - numerator */
|
||||
unsigned long period_den; /* requested precise period resolution (in seconds) - denominator */
|
||||
unsigned char reserved[32];
|
||||
};
|
||||
|
||||
struct sndrv_timer_gstatus {
|
||||
struct sndrv_timer_id tid; /* requested timer ID */
|
||||
unsigned long resolution; /* current period resolution in ns */
|
||||
unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */
|
||||
unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */
|
||||
unsigned char reserved[32];
|
||||
};
|
||||
|
||||
struct sndrv_timer_select {
|
||||
struct sndrv_timer_id id; /* bind to timer ID */
|
||||
unsigned char reserved[32]; /* reserved */
|
||||
};
|
||||
|
||||
#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */
|
||||
|
||||
struct sndrv_timer_info {
|
||||
unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
|
||||
int card; /* R: card number */
|
||||
int card; /* card number */
|
||||
unsigned char id[64]; /* timer identificator */
|
||||
unsigned char name[80]; /* timer name */
|
||||
unsigned long ticks; /* maximum ticks */
|
||||
unsigned long resolution; /* average resolution */
|
||||
unsigned long ticks; /* maximum ticks between interrupts */
|
||||
unsigned long resolution; /* average period resolution in ns */
|
||||
unsigned char reserved[64]; /* reserved */
|
||||
};
|
||||
|
||||
#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* supports auto start */
|
||||
#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */
|
||||
#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */
|
||||
|
||||
struct sndrv_timer_params {
|
||||
unsigned int flags; /* flags - SNDRV_MIXER_PSFLG_* */
|
||||
unsigned int ticks; /* requested resolution in ticks */
|
||||
unsigned int queue_size; /* total size of queue (32-1024) */
|
||||
unsigned int reserved0; /* reserved, was: failure locations */
|
||||
unsigned char reserved[64]; /* reserved */
|
||||
unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */
|
||||
unsigned char reserved[60]; /* reserved */
|
||||
};
|
||||
|
||||
struct sndrv_timer_status {
|
||||
struct timespec tstamp; /* Timestamp - last update */
|
||||
unsigned int resolution; /* current resolution in ns */
|
||||
unsigned int resolution; /* current period resolution in ns */
|
||||
unsigned int lost; /* counter of master tick lost */
|
||||
unsigned int overrun; /* count of read queue overruns */
|
||||
unsigned int queue; /* used queue size */
|
||||
|
|
@ -605,13 +638,17 @@ enum {
|
|||
SNDRV_TIMER_IOCTL_PVERSION = _IOR('T', 0x00, int),
|
||||
SNDRV_TIMER_IOCTL_NEXT_DEVICE = _IOWR('T', 0x01, struct sndrv_timer_id),
|
||||
SNDRV_TIMER_IOCTL_TREAD = _IOW('T', 0x02, int),
|
||||
SNDRV_TIMER_IOCTL_GINFO = _IOWR('T', 0x03, struct sndrv_timer_ginfo),
|
||||
SNDRV_TIMER_IOCTL_GPARAMS = _IOW('T', 0x04, struct sndrv_timer_gparams),
|
||||
SNDRV_TIMER_IOCTL_GSTATUS = _IOWR('T', 0x05, struct sndrv_timer_gstatus),
|
||||
SNDRV_TIMER_IOCTL_SELECT = _IOW('T', 0x10, struct sndrv_timer_select),
|
||||
SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info),
|
||||
SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params),
|
||||
SNDRV_TIMER_IOCTL_STATUS = _IOW('T', 0x14, struct sndrv_timer_status),
|
||||
SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status),
|
||||
SNDRV_TIMER_IOCTL_START = _IO('T', 0x20),
|
||||
SNDRV_TIMER_IOCTL_STOP = _IO('T', 0x21),
|
||||
SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0x22),
|
||||
SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0x23),
|
||||
};
|
||||
|
||||
struct sndrv_timer_read {
|
||||
|
|
@ -624,7 +661,13 @@ enum sndrv_timer_event {
|
|||
SNDRV_TIMER_EVENT_TICK, /* val = ticks */
|
||||
SNDRV_TIMER_EVENT_START, /* val = resolution in ns */
|
||||
SNDRV_TIMER_EVENT_STOP, /* val = 0 */
|
||||
SNDRV_TIMER_EVENT_CONTINUE /* val = resolution in ns */
|
||||
SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */
|
||||
SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */
|
||||
/* master timer events for slave timer instances */
|
||||
SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10,
|
||||
SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10,
|
||||
SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10,
|
||||
SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10,
|
||||
};
|
||||
|
||||
struct sndrv_timer_tread {
|
||||
|
|
@ -761,7 +804,7 @@ struct sndrv_ctl_elem_value {
|
|||
} bytes;
|
||||
struct sndrv_aes_iec958 iec958;
|
||||
} value; /* RO */
|
||||
struct timespec timestamp;
|
||||
struct timespec tstamp;
|
||||
unsigned char reserved[128-sizeof(struct timespec)];
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue