#ifndef H_ED_CHRO_20030519135628
#define H_ED_CHRO_20030519135628

#ifdef __cplusplus
extern "C"
{
#endif

/* ---------------------------------------------------------------------
   (c) ED 2003
   Project      : CHRO
   Function     : chronometer
   Module       : CHRO
   File         : chro.h
   Created      : 19-05-2003
   Modified     : 19-05-2003
   --------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
   Log

   0.0 19-05-2003 Created
   1.0 19-05-2003 Initial version

   --------------------------------------------------------------------- */
#include "ed/inc/types.h"

/* macros ============================================================== */

/* constants =========================================================== */

   typedef enum
   {
      CHRO_OK,

#define ITEM(n_, s_)\
   CHRO_ERR_##n_,

#include "ed/inc/chro_err.itm"

#undef ITEM

      CHRO_ERR_NB
   }
   chro_err_e;

/* types =============================================================== */

   typedef int chro_out_f (void *p_usr, int data);

/* structures ========================================================== */

   typedef struct chro chro_s;

/* functions =========================================================== */

/* Identification */
   char const *chro_sid (void);
   char const *chro_sver (void);

/* Dynamic constructor / destructor */
   chro_s *chro_create (void);
   void chro_delete (chro_s * this);

/* Initialisation */
   chro_err_e chro_init (chro_s * this);
   chro_err_e chro_install_out (chro_s * this, chro_out_f * pf, void *p_data);

/* Input functions */
   chro_err_e chro_in (chro_s * this, int data);
   chro_err_e chro_start (chro_s * this);
   chro_err_e chro_stop (chro_s * this);
   chro_err_e chro_elapsed (chro_s * this, ulong * p_ms);

#ifdef __cplusplus
}
#endif

/* ---------------------------------------------------------------------
   Generated by NEW (c) ED 2.1
   Powered by C-code generator (c) ED 2003 1.0
   --------------------------------------------------------------------- */

#endif                          /* guard */
