12c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 22c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2004-2010 NXP Software 32c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2010 The Android Open Source Project 42c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 52c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 62c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * you may not use this file except in compliance with the License. 72c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * You may obtain a copy of the License at 82c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 92c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * http://www.apache.org/licenses/LICENSE-2.0 102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Unless required by applicable law or agreed to in writing, software 122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * See the License for the specific language governing permissions and 152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * limitations under the License. 162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent */ 172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifndef __LVM_TIMER_H__ 192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define __LVM_TIMER_H__ 20d918324d44aa48b3b064ea9b87d0c520c38f15a9Eric Laurent 212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#include "LVM_Types.h" 222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Header file for the LVM_Timer library */ 262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Functionality: */ 282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The timer will count down a number of ms, based on the number of samples it */ 292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* sees and the curent sampling rate. When the timer expires, a registered */ 302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* callback function will be called. */ 312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The maximal number of sampless that can be called by the timer is 2^32, which */ 322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* corresponds to 24.8 hours at a sampling rate of 48 kHz */ 332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The timer currently does not suport changes in sampling rate while timing. */ 342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentextern "C" { 392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* TYPE DEFINITIONS */ 432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 Storage[6]; 482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVM_Timer_Instance_t; 502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 SamplingRate; 542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 TimeInMs; 552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 CallBackParam; 562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent void *pCallBackParams; 572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent void *pCallbackInstance; 582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent void (*pCallBack)(void*,void*,LVM_INT32); 592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVM_Timer_Params_t; 612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION PROTOTYPES */ 642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentvoid LVM_Timer_Init ( LVM_Timer_Instance_t *pInstance, 672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_Timer_Params_t *pParams ); 682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentvoid LVM_Timer ( LVM_Timer_Instance_t *pInstance, 712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 BlockSize ); 722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* END OF HEADER */ 762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} 802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __LVM_TIMER_H__ */ 83