X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.h;h=2b1c05be921676622129bf4e400f919a8a1c2502;hb=6abd9aa12683af559ac1752bc1958e0e0b930280;hp=502fefe1b6573130337bc35fe2902595ca6a34e0;hpb=04ed1c285ff739ad2cd1384e6cfe24aea82cfa7e;p=rrdtool.git diff --git a/src/rrd_graph.h b/src/rrd_graph.h index 502fefe..2b1c05b 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -5,6 +5,7 @@ #define y1 cairo_y1 #define index cairo_index +#include #include #include #include @@ -13,8 +14,6 @@ #include "rrd_tool.h" #include "rrd_rpncalc.h" -#define MAX_VNAME_LEN 255 -#define DEF_NAM_FMT "%255[-_A-Za-z0-9]" #define ALTYGRID 0x01 /* use alternative y grid algorithm */ #define ALTAUTOSCALE 0x02 /* use alternative algorithm to find lower and upper bounds */ @@ -42,15 +41,18 @@ enum grc_en { GRC_CANVAS = 0, GRC_BACK, GRC_SHADEA, GRC_SHADEB, #define GRIDWIDTH 0.4 enum gf_en { GF_PRINT = 0, GF_GPRINT, GF_COMMENT, GF_HRULE, GF_VRULE, GF_LINE, - GF_AREA, GF_STACK, GF_TICK, + GF_AREA, GF_STACK, GF_TICK, GF_TEXTALIGN, GF_DEF, GF_CDEF, GF_VDEF, GF_SHIFT, GF_XPORT }; +enum txa_en { TXA_LEFT = 0, TXA_RIGHT, TXA_CENTER, TXA_JUSTIFIED }; + enum vdef_op_en { VDEF_MAXIMUM = 0 /* like the MAX in (G)PRINT */ , VDEF_MINIMUM /* like the MIN in (G)PRINT */ , VDEF_AVERAGE /* like the AVERAGE in (G)PRINT */ + , VDEF_STDEV /* the standard deviation */ , VDEF_PERCENT /* Nth percentile */ , VDEF_TOTAL /* average multiplied by time */ , VDEF_FIRST /* first non-unknown value and time */ @@ -167,6 +169,14 @@ typedef struct graph_desc_t { rrd_value_t *data; /* the raw data drawn from the rrd */ rrd_value_t *p_data; /* processed data, xsize elments */ double linewidth; /* linewideth */ + + /* dashed line stuff */ + int dash; /* boolean, draw dashed line? */ + double *p_dashes; /* pointer do dash array which keeps the lengths of dashes */ + int ndash; /* number of dash segments */ + double offset; /* dash offset along the line */ + + enum txa_en txtalign; /* change default alignment strategy for text */ } graph_desc_t; typedef struct image_desc_t { @@ -174,7 +184,6 @@ typedef struct image_desc_t { /* configuration of graph */ char graphfile[MAXPATH]; /* filename for graphic */ - FILE *graphhandle; /* FILE to use if filename is "-" */ long xsize, ysize; /* graph area size in pixels */ struct gfx_color_t graph_col[__GRC_END__]; /* real colors for the graph */ text_prop_t text_prop[TEXT_PROP_LAST]; /* text properties */ @@ -206,11 +215,14 @@ typedef struct image_desc_t { existing one is out of date */ int slopemode; /* connect the dots of the curve directly, not using a stair */ int logarithmic; /* scale the yaxis logarithmic */ + double force_scale_min; /* Force a scale--min */ + double force_scale_max; /* Force a scale--max */ /* status information */ - + int with_markup; long xorigin, yorigin; /* where is (0,0) of the graph */ long ximg, yimg; /* total size of the image */ + size_t rendered_image_size; double zoom; double magfact; /* numerical magnitude */ long base; /* 1000 or 1024 depending on what we graph */ @@ -223,6 +235,7 @@ typedef struct image_desc_t { int extra_flags; /* flags for boolean options */ /* data elements */ + unsigned char *rendered_image; long prt_c; /* number of print elements */ long gdes_c; /* number of graphics elements */ graph_desc_t *gdes; /* points to an array of graph elements */ @@ -230,6 +243,9 @@ typedef struct image_desc_t { cairo_t *cr; /* drawin context */ cairo_font_options_t *font_options; /* cairo font options */ cairo_antialias_t graph_antialias; /* antialiasing for the graph */ + + rrd_info_t *grinfo; /* root pointer to extra graph info */ + rrd_info_t *grinfo_current; /* pointing to current entry */ } image_desc_t; /* Prototypes */ @@ -293,8 +309,7 @@ time_t find_next_time( enum tmt_en, long); int print_calc( - image_desc_t *, - char ***); + image_desc_t *); int leg_place( image_desc_t *, int *); @@ -313,8 +328,7 @@ void grid_paint( int lazy_check( image_desc_t *); int graph_paint( - image_desc_t *, - char ***); + image_desc_t *); int gdes_alloc( image_desc_t *); @@ -322,15 +336,6 @@ int scan_for_col( const char *const, int, char *const); -int rrd_graph( - int, - char **, - char ***, - int *, - int *, - FILE *, - double *, - double *); void rrd_graph_init( image_desc_t *); void rrd_graph_options( @@ -360,8 +365,7 @@ int vdef_percent_compar( const void *); int graph_size_location( image_desc_t *, - int - ); + int); /* create a new line */ @@ -446,3 +450,9 @@ void gfx_area_fit( double *y); #endif + +void grinfo_push( + image_desc_t *im, + char *key, + rrd_info_type_t type, + rrd_infoval_t value);