Update of /cvsroot/alsa/alsa-kernel/include
In directory sc8-pr-cvs1:/tmp/cvs-serv5376/include

Modified Files:
        asound.h timer.h 
Log Message:
Enhanced timer API (global functions - ginfo, gparams, gstatus).
Added filter for tread.


Index: asound.h
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/include/asound.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- asound.h    1 Mar 2003 19:06:17 -0000       1.23
+++ asound.h    2 Mar 2003 10:44:13 -0000       1.24
@@ -557,6 +557,9 @@
 #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,31 +568,57 @@
        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 resolution in ns */
+       unsigned long resolution_min;   /* minimal resolution in ns */
+       unsigned long resolution_max;   /* maximal resolution in ns */
+       unsigned long resolution_step;  /* resolution step in ns */
+       unsigned int instances;         /* active timer instances */
+       unsigned char reserved[32];
+};
+
+struct sndrv_timer_gparams {
+       struct sndrv_timer_id tid;      /* requested timer ID */
+       unsigned long resolution;       /* requested resolution in ns */
+       unsigned char reserved[32];
+};
+
+struct sndrv_timer_gstatus {
+       struct sndrv_timer_id tid;      /* requested timer ID */
+       unsigned long resolution;       /* current resolution in ns */
+       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 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 */
 
 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 {
@@ -605,10 +634,13 @@
        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),
@@ -628,10 +660,10 @@
        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 + 100,
-       SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 100,
-       SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 100,
-       SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 100,
+       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 {

Index: timer.h
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/include/timer.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- timer.h     1 Mar 2003 18:56:35 -0000       1.11
+++ timer.h     2 Mar 2003 10:44:13 -0000       1.12
@@ -30,6 +30,9 @@
 typedef enum sndrv_timer_slave_class snd_timer_slave_class_t;
 typedef enum sndrv_timer_global snd_timer_global_t;
 typedef struct sndrv_timer_id snd_timer_id_t;
+typedef struct sndrv_timer_ginfo snd_timer_ginfo_t;
+typedef struct sndrv_timer_gparams snd_timer_gparams_t;
+typedef struct sndrv_timer_gstatus snd_timer_gstatus_t;
 typedef struct sndrv_timer_select snd_timer_select_t;
 typedef struct sndrv_timer_info snd_timer_info_t;
 typedef struct sndrv_timer_params snd_timer_params_t;
@@ -68,6 +71,9 @@
        /* -- must be filled with low-level driver */
        unsigned int flags;             /* various flags */
        unsigned long resolution;       /* average timer resolution for one tick in 
nsec */
+       unsigned long resolution_min;   /* minimal resolution */
+       unsigned long resolution_max;   /* maximal resolution */
+       unsigned long resolution_step;  /* step for resolution */
        unsigned long ticks;            /* max timer ticks per interrupt */
        /* -- low-level functions -- */
        int (*open) (snd_timer_t * timer);
@@ -75,6 +81,7 @@
        unsigned long (*c_resolution) (snd_timer_t * timer);
        int (*start) (snd_timer_t * timer);
        int (*stop) (snd_timer_t * timer);
+       int (*set_resolution) (snd_timer_t * timer, unsigned long resolution);
 };
 
 struct _snd_timer {



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to