00001
00002
00003 #ifndef _KEYPAD_H
00004 #define _KEYPAD_H
00005
00006 #include "Probe.h"
00007 #include "BufferedNode.h"
00008 #include <map>
00009 #include <sys/time.h>
00010
00011 namespace FD {
00012
00013 class KeyPad : public BufferedNode
00014 {
00015
00016
00017
00018 friend gboolean on_KeyPad_key_press_event(GtkWidget *widget,
00019 GdkEventKey *event,
00020 gpointer user_data);
00021
00022 friend void on_button_A_pressed(GtkButton *button,
00023 gpointer user_data);
00024
00025 friend void on_button_released(GtkButton *button,
00026 gpointer user_data);
00027
00028 friend void on_button_B_pressed(GtkButton *button,
00029 gpointer user_data);
00030
00031 friend void on_button_C_pressed(GtkButton *button,
00032 gpointer user_data);
00033
00034 friend void on_button_D_pressed(GtkButton *button,
00035 gpointer user_data);
00036
00037 friend void on_button_E_pressed(GtkButton *button,
00038 gpointer user_data);
00039
00040 friend void on_button_F_pressed(GtkButton *button,
00041 gpointer user_data);
00042
00043 friend void on_button_0_pressed(GtkButton *button,
00044 gpointer user_data);
00045
00046 friend void on_button_1_pressed(GtkButton *button,
00047 gpointer user_data);
00048
00049 friend void on_button_2_pressed(GtkButton *button,
00050 gpointer user_data);
00051
00052 friend void on_button_3_pressed(GtkButton *button,
00053 gpointer user_data);
00054
00055 friend void on_button_4_pressed(GtkButton *button,
00056 gpointer user_data);
00057
00058 friend void on_button_5_pressed(GtkButton *button,
00059 gpointer user_data);
00060
00061 friend void on_button_6_pressed(GtkButton *button,
00062 gpointer user_data);
00063
00064 friend void on_button_7_pressed(GtkButton *button,
00065 gpointer user_data);
00066
00067 friend void on_button_8_pressed(GtkButton *button,
00068 gpointer user_data);
00069
00070 friend void on_button_9_pressed(GtkButton *button,
00071 gpointer user_data);
00072
00073 friend void on_button_dot_pressed(GtkButton *button,
00074 gpointer user_data);
00075
00076 friend void on_button_div_pressed(GtkButton *button,
00077 gpointer user_data);
00078
00079 friend void on_button_mul_pressed(GtkButton *button,
00080 gpointer user_data);
00081
00082 friend void on_button_sub_pressed(GtkButton *button,
00083 gpointer user_data);
00084
00085 friend void on_button_add_pressed(GtkButton *button,
00086 gpointer user_data);
00087
00088 friend void on_button_equa_pressed(GtkButton *button,
00089 gpointer user_data);
00090
00091 private:
00092
00093
00094 int m_outputID;
00095
00096
00097
00098 GtkWidget *window;
00099 GtkWidget *table1;
00100 GtkWidget *table2;
00101 GtkWidget *table3;
00102 GtkWidget *table4;
00103 GtkWidget *table5;
00104 GtkWidget *table6;
00105 GtkWidget *button_A;
00106 GtkWidget *button_B;
00107 GtkWidget *button_C;
00108 GtkWidget *button_D;
00109 GtkWidget *button_E;
00110 GtkWidget *button_F;
00111 GtkWidget *button_0;
00112 GtkWidget *button_1;
00113 GtkWidget *button_2;
00114 GtkWidget *button_3;
00115 GtkWidget *button_4;
00116 GtkWidget *button_5;
00117 GtkWidget *button_6;
00118 GtkWidget *button_7;
00119 GtkWidget *button_8;
00120 GtkWidget *button_9;
00121 GtkWidget *button_dot;
00122 GtkWidget *button_div;
00123 GtkWidget *button_mul;
00124 GtkWidget *button_sub;
00125 GtkWidget *button_add;
00126 GtkWidget *button_equa;
00127
00128 ObjectRef m_key;
00129 timeval m_time;
00130
00131 public:
00132
00133 KeyPad(std::string nodeName, ParameterSet params);
00134
00135 virtual ~KeyPad();
00136
00139 virtual void initialize();
00140
00143 virtual void reset();
00144
00145
00146 void calculate(int output_id, int count, Buffer &out);
00147
00148 void setKeyValue(char keyValue, int timer = -1);
00149 };
00150
00151 }
00152
00153 #endif