Update of /cvsroot/alsa/alsa-lib/src/timer
In directory sc8-pr-cvs1:/tmp/cvs-serv15643/src/timer
Modified Files:
timer.c timer_hw.c timer_local.h timer_query.c
timer_query_hw.c
Log Message:
Updated to new timer API
Index: timer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/timer/timer.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- timer.c 28 Feb 2003 17:23:36 -0000 1.39
+++ timer.c 4 Mar 2003 20:01:08 -0000 1.40
@@ -466,16 +466,6 @@
return info->name;
}
-/**
- * \brief get maximum timer ticks
- * \param info pointer to #snd_timer_info_t structure
- * \return maximum timer ticks
- */
-long snd_timer_info_get_ticks(snd_timer_info_t * info)
-{
- assert(info);
- return info->ticks;
-}
/**
* \brief get timer resolution in us
@@ -576,6 +566,40 @@
}
/**
+ * \brief set timer exclusive use
+ * \param params pointer to #snd_timer_params_t structure
+ */
+#ifndef DOXYGEN
+void INTERNAL(snd_timer_params_set_exclusive)(snd_timer_params_t * params, int
exclusive)
+#else
+void snd_timer_params_set_exclusive(snd_timer_params_t * params, int exclusive)
+#endif
+{
+ assert(params);
+ if (exclusive)
+ params->flags |= SNDRV_TIMER_PSFLG_EXCLUSIVE;
+ else
+ params->flags &= ~SNDRV_TIMER_PSFLG_EXCLUSIVE;
+}
+default_symbol_version(__snd_timer_params_set_exclusive,
snd_timer_params_set_exclusive, ALSA_0.9.0);
+
+/**
+ * \brief determine if timer has exclusive flag
+ * \param params pointer to #snd_timer_params_t structure
+ * \return nonzero if timer has exclusive flag
+ */
+#ifndef DOXYGEN
+int INTERNAL(snd_timer_params_get_exclusive)(snd_timer_params_t * params)
+#else
+int snd_timer_params_get_exclusive(snd_timer_params_t * params)
+#endif
+{
+ assert(params);
+ return params->flags & SNDRV_TIMER_PSFLG_EXCLUSIVE ? 1 : 0;
+}
+default_symbol_version(__snd_timer_params_get_exclusive,
snd_timer_params_get_exclusive, ALSA_0.9.0);
+
+/**
* \brief set timer ticks
* \param params pointer to #snd_timer_params_t structure
*/
@@ -618,6 +642,37 @@
}
/**
+ * \brief set timer event filter
+ * \param params pointer to #snd_timer_params_t structure
+ */
+#ifndef DOXYGEN
+void INTERNAL(snd_timer_params_set_filter)(snd_timer_params_t * params, unsigned int
filter)
+#else
+void snd_timer_params_set_filter(snd_timer_params_t * params, unsigned int filter)
+#endif
+{
+ assert(params);
+ params->filter = filter;
+}
+default_symbol_version(__snd_timer_params_set_filter, snd_timer_params_set_filter,
ALSA_0.9.0);
+
+/**
+ * \brief get timer event filter
+ * \param params pointer to #snd_timer_params_t structure
+ * \return timer event filter
+ */
+#ifndef DOXYGEN
+unsigned int INTERNAL(snd_timer_params_get_filter)(snd_timer_params_t * params)
+#else
+unsigned int snd_timer_params_get_filter(snd_timer_params_t * params)
+#endif
+{
+ assert(params);
+ return params->filter;
+}
+default_symbol_version(__snd_timer_params_get_filter, snd_timer_params_get_filter,
ALSA_0.9.0);
+
+/**
* \brief set parameters for timer handle
* \param timer timer handle
* \param params pointer to a #snd_timer_params_t structure
@@ -796,3 +851,17 @@
assert(buffer || size == 0);
return timer->ops->read(timer, buffer, size);
}
+
+/**
+ * \brief (DEPRECATED) get maximum timer ticks
+ * \param info pointer to #snd_timer_info_t structure
+ * \return maximum timer ticks
+ */
+long snd_timer_info_get_ticks(snd_timer_info_t * info)
+{
+ assert(info);
+ return 1;
+}
+#ifndef DOC_HIDDEN
+link_warning(snd_timer_info_get_ticks, "Warning: snd_timer_info_get_ticks is
deprecated");
+#endif
Index: timer_hw.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/timer/timer_hw.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- timer_hw.c 2 Mar 2003 19:30:52 -0000 1.10
+++ timer_hw.c 4 Mar 2003 20:01:09 -0000 1.11
@@ -233,6 +233,15 @@
close(fd);
return -SND_ERROR_INCOMPATIBLE_VERSION;
}
+ if (mode & SND_TIMER_OPEN_TREAD) {
+ int arg = 1;
+ if (ioctl(fd, SNDRV_TIMER_IOCTL_TREAD, &arg) < 0) {
+ ret = -errno;
+ close(fd);
+ SNDERR("extended read is not supported
(SNDRV_TIMER_IOCTL_TREAD)");
+ return ret;
+ }
+ }
memset(&sel, 0, sizeof(sel));
sel.id.dev_class = dev_class;
sel.id.dev_sclass = dev_sclass;
Index: timer_local.h
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/timer/timer_local.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- timer_local.h 2 Mar 2003 19:30:52 -0000 1.4
+++ timer_local.h 4 Mar 2003 20:01:09 -0000 1.5
@@ -52,6 +52,9 @@
typedef struct {
int (*close)(snd_timer_query_t *timer);
int (*next_device)(snd_timer_query_t *timer, snd_timer_id_t *tid);
+ int (*info)(snd_timer_query_t *timer, snd_timer_ginfo_t *info);
+ int (*params)(snd_timer_query_t *timer, snd_timer_gparams_t *info);
+ int (*status)(snd_timer_query_t *timer, snd_timer_gstatus_t *info);
} snd_timer_query_ops_t;
struct _snd_timer_query {
Index: timer_query.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/timer/timer_query.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- timer_query.c 30 Dec 2001 09:22:56 -0000 1.9
+++ timer_query.c 4 Mar 2003 20:01:10 -0000 1.10
@@ -221,6 +221,56 @@
}
/**
+ * \brief obtain the timer global information
+ * \param timer timer handle
+ * \param info timer information
+ * \return 0 on success otherwise a negative error code
+ */
+#ifndef DOXYGEN
+int INTERNAL(snd_timer_query_info)(snd_timer_query_t *timer, snd_timer_ginfo_t *info)
+#else
+int snd_timer_query_info(snd_timer_query_t *timer, snd_timer_ginfo_t *info)
+#endif
+{
+ assert(timer);
+ assert(info);
+ return timer->ops->info(timer, info);
+}
+default_symbol_version(__snd_timer_query_info, snd_timer_query_info, ALSA_0.9.0);
+
+/**
+ * \brief set the timer global parameters
+ * \param timer timer handle
+ * \param params timer parameters
+ * \return 0 on success otherwise a negative error code
+ */
+#ifndef DOXYGEN
+int INTERNAL(snd_timer_query_params)(snd_timer_query_t *timer, snd_timer_gparams_t
*params)
+#else
+int snd_timer_query_params(snd_timer_query_t *timer, snd_timer_gparams_t *params)
+#endif
+{
+ assert(timer);
+ assert(params);
+ return timer->ops->params(timer, params);
+}
+default_symbol_version(__snd_timer_query_params, snd_timer_query_params, ALSA_0.9.0);
+
+/**
+ * \brief get the timer global status
+ * \param timer timer handle
+ * \param status timer status
+ * \return 0 on success otherwise a negative error code
+ */
+int snd_timer_query_status(snd_timer_query_t *timer, snd_timer_gstatus_t *status)
+{
+ assert(timer);
+ assert(status);
+ return timer->ops->status(timer, status);
+}
+default_symbol_version(__snd_timer_query_status, snd_timer_query_status, ALSA_0.9.0);
+
+/**
* \brief get size of the snd_timer_id_t structure in bytes
* \return size of the snd_timer_id_t structure in bytes
*/
Index: timer_query_hw.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/timer/timer_query_hw.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- timer_query_hw.c 30 Dec 2001 09:22:56 -0000 1.5
+++ timer_query_hw.c 4 Mar 2003 20:01:10 -0000 1.6
@@ -54,9 +54,39 @@
return 0;
}
+static int snd_timer_query_hw_info(snd_timer_query_t *handle, snd_timer_ginfo_t *info)
+{
+ if (!handle || !info)
+ return -EINVAL;
+ if (ioctl(handle->poll_fd, SNDRV_TIMER_IOCTL_GINFO, info) < 0)
+ return -errno;
+ return 0;
+}
+
+static int snd_timer_query_hw_params(snd_timer_query_t *handle, snd_timer_gparams_t
*params)
+{
+ if (!handle || !params)
+ return -EINVAL;
+ if (ioctl(handle->poll_fd, SNDRV_TIMER_IOCTL_GPARAMS, params) < 0)
+ return -errno;
+ return 0;
+}
+
+static int snd_timer_query_hw_status(snd_timer_query_t *handle, snd_timer_gstatus_t
*status)
+{
+ if (!handle || !status)
+ return -EINVAL;
+ if (ioctl(handle->poll_fd, SNDRV_TIMER_IOCTL_GSTATUS, status) < 0)
+ return -errno;
+ return 0;
+}
+
static snd_timer_query_ops_t snd_timer_query_hw_ops = {
close: snd_timer_query_hw_close,
next_device: snd_timer_query_hw_next_device,
+ info: snd_timer_query_hw_info,
+ params: snd_timer_query_hw_params,
+ status: snd_timer_query_hw_status
};
int snd_timer_query_hw_open(snd_timer_query_t **handle, const char *name, int mode)
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger
for complex code. Debugging C/C++ programs can leave you feeling lost and
disoriented. TotalView can help you find your way. Available on major UNIX
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog