# dmxstat.h File Reference

Go to the source code of this file.

## Defines

#define | DMX_STAT_LENGTH 10
#define | DMX_STAT_INTERVAL 1000
#define | DMX_STAT_BINS 3
#define | DMX_STAT_BIN0 10000
#define | DMX_STAT_BINMULT 100

## Functions

void | dmxStatActivate (const char *interval, const char *displays)
DMXStatInfo * | dmxStatAlloc (void)
void | dmxStatFree (DMXStatInfo *)
void | dmxStatInit (void)
void | dmxStatSync (DMXScreenInfo *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)

## Variables

int | dmxStatInterval

## Detailed Description

Interface for statistic gathering interface.

See also:
  dmxstat.c

## Define Documentation

#define DMX_STAT_BIN0 10000

us for bin[0]

Referenced by dmxStatSync().

#define DMX_STAT_BINMULT 100

multiplier for next bin[]

Referenced by dmxStatSync().

#define DMX_STAT_BINS 3

number of bins

Referenced by dmxStatCallback(), and dmxStatSync().

#define DMX_STAT_INTERVAL 1000

msec between printouts

Referenced by dmxStatCallback().

#define DMX_STAT_LENGTH 10

number of events for moving average

Referenced by dmxStatValue().

## Function Documentation

void dmxStatActivate | ( | const char * | interval,
|  | const char * | displays
| ) |  |

Turn on XSync statistic gathering and printing. Print every interval seconds, with lines for the first displays. If interval is NULL, 1 will be used. If displays is NULL, 0 will be used (meaning a line for every display will be printed). Note that this function takes string arguments because it will usually be called from ddxProcessArgument in dmxinit.c.

References dmxStatDisplays, and dmxStatInterval.

Referenced by ddxProcessArgument().

DMXStatInfo* dmxStatAlloc | ( | void |  | ) |

Allocate a DMXStatInfo structure.

Referenced by dmxConfigAddDisplay().

void dmxStatFree | ( | DMXStatInfo * | pt | ) |

Free the memory used by a DMXStatInfo structure.

Referenced by InitOutput().

void dmxStatInit | ( | void |  | ) |

Try to initialize the statistic gathering and printing routines. Initialization only takes place if dmxStatActivate has already been called. We don't need the same generation protection that we used in dmxSyncInit because our timer is always on a queue -- hence, server generation will always free it.

References dmxStatCallback(), dmxStatInterval, and dmxStatTimer.

Referenced by InitOutput().

void dmxStatSync | ( | DMXScreenInfo * | dmxScreen,
|  | struct timeval * | stop,
|  | struct timeval * | start,
|  | unsigned long | pending
| ) |  |

Note that a XSync() was just done on dmxScreen with the start and stop times (from gettimeofday()) and the number of pending-but-not-yet-processed XSync requests. This routine is called from dmxDoSync in dmxsync.c

References _DMXStatInfo::bins, DMX_STAT_BIN0, DMX_STAT_BINMULT, DMX_STAT_BINS, dmxStatValue(), _DMXStatInfo::pending, _DMXScreenInfo::stat, _DMXStatInfo::syncCount, _DMXStatInfo::usec, and usec().

Referenced by dmxDoSync().

## Variable Documentation

int dmxStatInterval

Only for dmxstat.c and dmxsync.c

Referenced by dmxDoSync(), dmxStatActivate(), dmxStatCallback(), and dmxStatInit().