12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #ifndef CPUTIME_H
- #define CPUTIME_H
- #pragma once
- #include "config.h"
- #include <winpr/wtypes.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- // note: has bug currently!!! i will fix in future!!!
- typedef __int64 cputime_t;
- TOOLKIT_API cputime_t cputime_now();
- TOOLKIT_API cputime_t cputime_per_usec();
- TOOLKIT_API cputime_t cputime_per_msec();
- TOOLKIT_API cputime_t cputime_per_sec();
- TOOLKIT_API unsigned int cputime_usec(cputime_t tm);
- TOOLKIT_API unsigned int cputime_msec(cputime_t tm);
- TOOLKIT_API unsigned int cputime_sec(cputime_t tm);
- TOOLKIT_API unsigned int cputime_as_usec(cputime_t tm);
- TOOLKIT_API unsigned int cputime_as_msec(cputime_t tm);
- TOOLKIT_API unsigned int cputime_as_sec(cputime_t tm);
- TOOLKIT_API cputime_t cputime_advance_msec(cputime_t t, unsigned int val);
- TOOLKIT_API cputime_t cputime_advance_sec(cputime_t t, unsigned int val);
- TOOLKIT_API cputime_t cputime_advance_uec(cputime_t t, unsigned int val);
- typedef struct mmtime_t
- {
- LARGE_INTEGER last_tick;
- UINT resolution;
- }mmtime_t;
- TOOLKIT_API void mmtime_init(mmtime_t *inst, UINT resolution);
- TOOLKIT_API void mmtime_term(mmtime_t *inst);
- /* multimedia timer */
- typedef struct multimedia_timer multimedia_timer;
- /**
- * create multimedia timer object
- * @param the resolution of the timer , in milliseconds
- */
- TOOLKIT_API multimedia_timer *multimedia_timer_create(UINT resolution);
- /**
- * destroy multimedia timer object
- */
- TOOLKIT_API void multimedia_timer_destroy(multimedia_timer *timer);
- /**
- * get the actual resolution of the timer
- */
- TOOLKIT_API UINT multimedia_timer_actual_resolution(multimedia_timer *timer);
- /**
- * do sleep
- * @param delay in milliseconds
- */
- TOOLKIT_API int multimedia_timer_sleep(multimedia_timer *timer, unsigned int delay);
- /**
- * interrupt the sleep
- */
- TOOLKIT_API int multimedia_timer_abort(multimedia_timer *timer);
- /**
- * adaptive sleep initialization
- * @param interval_den use with interval_num, interval is (num / den), in second!!!
- * @param interval_num
- */
- TOOLKIT_API int multimedia_timer_adaptive_sleep_init(multimedia_timer *timer,
- int interval_den,
- int interval_num);
- /**
- * adaptive sleep
- */
- TOOLKIT_API int multimedia_timer_adaptive_sleep(multimedia_timer *timer);
- #ifdef __cplusplus
- } // extern "C" {
- #endif
- #endif // CPUTIME_H
|