Use new CPU-neutral program-memory API.
[bertos.git] / mware / charts.h
index 8dec2c60e48fd11bbc11a383687688a792bab975..ca55259cef83a703aa3ad646d0efca9a2dd602d0 100755 (executable)
@@ -8,35 +8,38 @@
  *
  * \brief Simple charts on top of mware/gfx routines (interface).
  *
+ * Configuration:
+ *  - \c CONFIG_CHART_TYPE_X: type for the input dataset of X-coordinates
+ *  - \c CONFIG_CHART_TYPE_Y: type for the input dataset of Y-coordinates
+ *
  * \version $Id$
  * \author Bernardo Innocenti <bernie@develer.com>
  */
 
-/*
- * $Log$
- * Revision 1.1  2004/08/04 03:16:30  bernie
- * Import simple chart drawing code.
- *
- */
+/*#*
+ *#* $Log$
+ *#* Revision 1.5  2004/09/14 20:56:39  bernie
+ *#* Make more generic and adapt to new gfx functions.
+ *#*
+ *#* Revision 1.3  2004/08/11 19:39:12  bernie
+ *#* Use chart_x_t and chart_y_t for the input dataset.
+ *#*
+ *#* Revision 1.1  2004/08/04 03:16:30  bernie
+ *#* Import simple chart drawing code.
+ *#*
+ *#*/
 #ifndef MWARE_CHARTS_H
 #define MWARE_CHARTS_H
 
-#include <gfx.h> /* vcoord_t */
-
-/*!
- * \name Width/height of the chart bitmap in pixels
- * \{
- */
-#define BM_WIDTH       PRT_HRES
-#define BM_HEIGHT      120
-/*\}*/
+#include <mware/gfx.h> /* vcoord_t */
+#include <config.h> /* CONFIG_ stuff */
 
 /*!
  * \name Width/height of the small ticks drawn over the axes
  * \{
  */
 #define TICKS_HEIGHT     2
-#define TICKS_WIDTH      3
+#define TICKS_WIDTH      2
 /*\}*/
 
 /*!
  * \{
  */
 #define CHART_BORDERTOP       0
-#define CHART_BORDERBOTTOM    TICKS_HEIGHT
-#define CHART_BORDERLEFT      TICKS_WIDTH
+#define CHART_BORDERBOTTOM    0
+#define CHART_BORDERLEFT      0
 #define CHART_BORDERRIGHT     0
 /*\}*/
 
-/*!
- * \name Chart size in pixels
- * \{
- */
-#define CHART_WIDTH     (BM_WIDTH - CHART_BORDERLEFT - CHART_BORDERRIGHT)
-#define CHART_HEIGHT    (BM_HEIGHT  - CHART_BORDERTOP - CHART_BORDERBOTTOM)
-/*\}*/
+#ifndef CONFIG_CHART_TYPE_X
+#define CONFIG_CHART_TYPE_X vcoord_t
+#endif
+#ifndef CONFIG_CHART_TYPE_Y
+#define CONFIG_CHART_TYPE_Y vcoord_t
+#endif
+
+
+typedef CONFIG_CHART_TYPE_X chart_x_t;
+typedef CONFIG_CHART_TYPE_Y chart_y_t;
 
 
 /* Public function protos */
-extern BitMap *chart_init(vcoord_t xmin, vcoord_t ymin, float xmax, float ymax);
-extern void chart_drawAxis(BitMap *bm);
-extern void chart_drawCurve(BitMap *bm, const vcoord_t *curve_y, int curve_cnt);
-extern void chart_drawDots(BitMap *bm, const vcoord_t *dotsx, const float *dotsy, int cnt);
+void chart_init(Bitmap *bm, coord_t xmin, coord_t ymin, coord_t xmax, coord_t ymax);
+void chart_setScale(Bitmap *bm, chart_x_t xmin, chart_y_t ymin, chart_x_t xmax, chart_y_t ymax);
+void chart_drawAxis(Bitmap *bm);
+void chart_drawCurve(Bitmap *bm, const chart_y_t *curve_y, int curve_cnt);
+void chart_drawDots(Bitmap *bm, const chart_x_t *dots_x, const chart_y_t *dots_y, int cnt);
 
 #endif /* MWARE_CHARTS_H */