blob: 85682fb8285fc1e75d99f68641e5e5518ded9daf [file] [log] [blame]
/*
** Copyright (c) 2007 by Silicon Laboratories
**
** $Id: si_voice_timer_intf.h 2005 2010-06-03 21:01:04Z nizajerk $
**
** si_voice_timer_intf.h
** System specific functions header file
**
** Author(s):
** laj
**
** Distributed by:
** Silicon Laboratories, Inc
**
** File Description:
** This is the header file for the system specific functions like timer functions.
**
**
*/
#ifndef TIMER_INTF_H
#define TIMER_INTF_H
/** @addtogroup PROSLIC_CUSTOMER_APIS
* @{
* @defgroup PROSLIC_CUSTOMER_TIMER Customer implemented timer functions
* This section has documentation related to timers: delays and timestamps. The void * is a customer
* supplied timer data structure that the user specifies in @ref SiVoice_setControlInterfaceTimerObj.
* These functions need to be associated with the functions documented in @ref SIVOICE_TIMER
*
* @note For the majority of implementations, the only function that is required is the delay function.
*
* @{
*/
/**
* @brief
* System time delay function pointer
*
* @param[in] hTimer - the system timer object
* @param[in] timeInMS - number of mSec to suspend the task/thread executing.
* @retval int - error from @ref errorCodeType @ref RC_NONE indicates no error.
*/
typedef int (*system_delay_fptr) (void *hTimer, int timeInMs);
/**
* @brief
* System time elapsed function pointer
*
* @details
* This function combined with @ref system_getTime_fptr function allow one to determine
* the time elapsed between the two event times.
*
* The example psuedo code below shows how one may see this function used in conjunction with
* the function pointed by @ref system_getTime_fptr to do some processing while waiting
* for a time to expire.
*
* @code
* my_timer_obj time_now;
*
* getTime(my_prosclic_obj->timer_obj_ptr, (void *)(&time_now));
*
* Some events occur here...
*
* do
* {
* time_elapsed(my_proslic_obj->timer_obj_ptr,(void *)(&time_now), &elapsed_time_mSec);
*
* Do something here...
*
* }while(elapsed_time_mSec < Desired delay);
*
* Change state...
*
* @endcode
*
* @param[in] *hTimer - the system timer object
* @param[in] *startTime - the time object returned by @ref system_getTime_fptr - the "start time" of the event.
* @param[out] *timeInMs - the time in mSec between the "start time" and the current time.
* @retval int - error from @ref errorCodeType @ref RC_NONE indicates no error.
* @sa system_getTime_fptr
*/
typedef int (*system_timeElapsed_fptr) (void *hTimer, void *startTime, int *timeInMs);
/**
* @brief
* Retrieve system time in mSec resolution.
*
* @details
* This function combined with @ref system_timeElapsed_fptr function allow one to determine
* the time elapsed between the two event times.
*
* @param[in] *hTimer - the system timer object
* @param[in] *time - the timestamp object needed by @ref system_timeElapsed_fptr
* @retval int - error from @ref errorCodeType @ref RC_NONE indicates no error.
* @sa system_timeElapsed_fptr
*/
typedef int (*system_getTime_fptr) (void *hTimer, void *time);
/** @}
* @} */
#endif