foobar2000 SDK  2015-01-14
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
pfc::hires_timer

#include <timers.h>

Public Member Functions

double query () const
 
double query () const
 
double query_reset ()
 
double query_reset ()
 
pfc::string8 queryString (unsigned precision=6)
 
pfc::string8 queryString (unsigned precision=3)
 
void start ()
 
void start ()
 

Private Member Functions

double _query (t_uint64 p_val) const
 

Static Private Member Functions

static t_uint64 g_query ()
 
static t_uint64 g_query_freq ()
 

Private Attributes

t_uint64 m_start
 
double m_start
 

Detailed Description

Definition at line 38 of file timers.h.

Member Function Documentation

double pfc::hires_timer::_query ( t_uint64  p_val) const
inlineprivate

Definition at line 56 of file timers.h.

56  {
57  return (double)( p_val - m_start ) / (double) g_query_freq();
58  }
t_uint64 m_start
Definition: timers.h:69
static t_uint64 g_query_freq()
Definition: timers.h:64
static t_uint64 pfc::hires_timer::g_query ( )
inlinestaticprivate

Definition at line 59 of file timers.h.

59  {
60  LARGE_INTEGER val;
61  if (!QueryPerformanceCounter(&val)) throw pfc::exception_not_implemented();
62  return val.QuadPart;
63  }
static t_uint64 pfc::hires_timer::g_query_freq ( )
inlinestaticprivate

Definition at line 64 of file timers.h.

64  {
65  LARGE_INTEGER val;
66  if (!QueryPerformanceFrequency(&val)) throw pfc::exception_not_implemented();
67  return val.QuadPart;
68  }
double pfc::hires_timer::query ( ) const
inline

Definition at line 43 of file timers.h.

43  {
44  return _query( g_query() );
45  }
double _query(t_uint64 p_val) const
Definition: timers.h:56
static t_uint64 g_query()
Definition: timers.h:59
double pfc::hires_timer::query ( ) const
double pfc::hires_timer::query_reset ( )
inline

Definition at line 46 of file timers.h.

46  {
47  t_uint64 current = g_query();
48  double ret = _query(current);
49  m_start = current;
50  return ret;
51  }
uint64_t t_uint64
Definition: int_types.h:3
double _query(t_uint64 p_val) const
Definition: timers.h:56
t_uint64 m_start
Definition: timers.h:69
static t_uint64 g_query()
Definition: timers.h:59
double pfc::hires_timer::query_reset ( )
pfc::string8 pfc::hires_timer::queryString ( unsigned  precision = 6)
inline

Definition at line 52 of file timers.h.

52  {
53  return pfc::format_time_ex( query(), precision ).get_ptr();
54  }
const char * get_ptr() const
Definition: string_base.h:491
double query() const
Definition: timers.h:43
pfc::string8 pfc::hires_timer::queryString ( unsigned  precision = 3)
void pfc::hires_timer::start ( )
inline

Definition at line 40 of file timers.h.

40  {
41  m_start = g_query();
42  }
t_uint64 m_start
Definition: timers.h:69
static t_uint64 g_query()
Definition: timers.h:59
void pfc::hires_timer::start ( )

Field Documentation

t_uint64 pfc::hires_timer::m_start
private

Definition at line 69 of file timers.h.

double pfc::hires_timer::m_start
private

Definition at line 113 of file timers.h.


The documentation for this class was generated from the following files: