OSDN Git Service

cache
[psychlops/cpp.git] / psychlops / core / devices / psychlops_io_analog.h
1 /*
2  *  psychlops_io_analog.h
3  *  Psychlops Standard Library (Universal)
4  *
5  *  Last Modified 2008/10/05 by Kenchi HOSOKAWA
6  *  (C) 2006 Kenchi HOSOKAWA, Kazushi MARUYA and Takao SATO
7  */
8
9 #ifndef HEADER_PSYCHLOPS_IO_ANALOG
10 #define HEADER_PSYCHLOPS_IO_ANALOG
11
12 #include "../math/psychlops_math.h"
13
14 namespace Psychlops {
15
16         class ITrigger
17         {
18                 public:
19                 virtual ~ITrigger();
20                 virtual void trigger() = 0;
21         };
22
23         class Trigger : public ITrigger
24         {
25                 private:
26                 ITrigger *instance;
27
28                 public:
29                 Trigger();
30                 Trigger(ITrigger *);
31                 Trigger(ITrigger &);
32                 void set(ITrigger *);
33                 void set(ITrigger &);
34                 virtual ~Trigger();
35
36                 virtual void trigger();
37         };
38
39
40         class AnalogInput {
41                 public:
42                 double (*normalize)(double);
43                 virtual ~AnalogInput();
44                 virtual double get() = 0;
45 //              virtual setNormalize(double (*fn)(double)) = 0;
46         };
47
48         class AnalogOutput {
49                 public:
50                 double (*denormalize)(double);
51                 virtual ~AnalogOutput();
52                 virtual void put(double) = 0;
53 //              virtual denormalize(double) = 0;
54         };
55
56 }       /*      <- namespace Psycholops         */
57
58 #endif