- add get_max_rate timing API call
[asterisk/asterisk.git] / include / asterisk / timing.h
index b345f21..88f1fc1 100644 (file)
@@ -65,12 +65,14 @@ enum ast_timing_event {
  * public API calls.
  */
 struct ast_timing_functions {
-       int (*timer_open)(unsigned int rate);
+       int (*timer_open)(void);
        void (*timer_close)(int handle);
+       int (*timer_set_rate)(int handle, unsigned int rate);
        void (*timer_ack)(int handle, unsigned int quantity);
        int (*timer_enable_continuous)(int handle);
        int (*timer_disable_continuous)(int handle);
        enum ast_timing_event (*timer_get_event)(int handle);
+       unsigned int (*timer_get_max_rate)(int handle);
 };
 
 /*!
@@ -97,12 +99,10 @@ void ast_uninstall_timing_functions(void *handle);
 /*!
  * \brief Open a timing fd
  *
- * \arg rate number of timer ticks per second
- *
  * \retval -1 error, with errno set
  * \retval >=0 success
  */
-int ast_timer_open(unsigned int rate);
+int ast_timer_open(void);
 
 /*!
  * \brief Close an opened timing handle
@@ -114,6 +114,21 @@ int ast_timer_open(unsigned int rate);
 void ast_timer_close(int handle);
 
 /*!
+ * \brief Set the timing tick rate
+ *
+ * \arg handle timing fd returned from timer_open()
+ * \arg rate ticks per second, 0 turns the ticks off if needed
+ *
+ * Use this function if you want the timing fd to show input at a certain
+ * rate.  The other alternative use of a timing fd, is using the continuous
+ * mode.
+ *
+ * \retval -1 error, with errno set
+ * \retval 0 success
+ */
+int ast_timer_set_rate(int handle, unsigned int rate);
+
+/*!
  * \brief Acknowledge a timer event
  *
  * \arg handle timing fd returned from timer_open()
@@ -147,7 +162,7 @@ int ast_timer_enable_continuous(int handle);
  * \retval -1 failure, with errno set
  * \retval 0 success
  */
-int ast_timer_disable_continous(int handle);
+int ast_timer_disable_continuous(int handle);
 
 /*!
  * \brief Determine timing event
@@ -161,6 +176,15 @@ int ast_timer_disable_continous(int handle);
  */
 enum ast_timing_event ast_timer_get_event(int handle);
 
+/*!
+ * \brief Get maximum rate supported for a timing handle
+ *
+ * \arg handle timing fd returned by timer_open()
+ *
+ * \return maximum rate supported for timing handle
+ */
+unsigned int ast_timer_get_max_rate(int handle);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif