Draft implementation of multiple report pixel command.
8 #include "mac_support.h"
12 #include "FutabaVfd.h"
15 // Thanks Microsoft, but I know how to use strncpy().
16 #pragma warning(disable:4996)
19 class MainWindow : public FXMainWindow {
24 ID_FIRST = FXMainWindow::ID_LAST,
28 ID_SEND_OUTPUT_REPORT,
29 ID_SEND_FEATURE_REPORT,
30 ID_GET_FEATURE_REPORT,
34 ID_FUTABA_CLEAR_DISPLAY,
36 ID_FUTABA_DISPLAY_DATA_INPUT,
38 ID_FUTABA_READ_FIRMWARE_REVISION,
39 ID_FUTABA_POWER_SUPPLY_MONITOR,
41 ID_FUTABA_RESET_PIXEL,
42 ID_FUTABA_SET_ALL_PIXELS,
47 size_t getDataFromTextField(FXTextField *tf, char *buf, size_t len);
48 int getLengthFromTextField(FXTextField *tf);
55 virtual void create();
57 long onConnect(FXObject *sender, FXSelector sel, void *ptr);
58 long onDisconnect(FXObject *sender, FXSelector sel, void *ptr);
59 long onScan(FXObject *sender, FXSelector sel, void *ptr);
60 long onSendOutputReport(FXObject *sender, FXSelector sel, void *ptr);
61 long onSendFeatureReport(FXObject *sender, FXSelector sel, void *ptr);
62 long onGetFeatureReport(FXObject *sender, FXSelector sel, void *ptr);
63 long onClear(FXObject *sender, FXSelector sel, void *ptr);
65 long onFutabaClearDisplay(FXObject *sender, FXSelector sel, void *ptr);
66 long onFutabaDimming(FXObject *sender, FXSelector sel, void *ptr);
67 long onFutabaDisplayDataInput(FXObject *sender, FXSelector sel, void *ptr);
68 long onFutabaReadId(FXObject *sender, FXSelector sel, void *ptr);
69 long onFutabaReadFirmwareRevision(FXObject *sender, FXSelector sel, void *ptr);
70 long onFutabaPowerSupplyMonitor(FXObject *sender, FXSelector sel, void *ptr);
71 long onFutabaSetAllPixels(FXObject *sender, FXSelector sel, void *ptr);
72 long onFutabaSetPixel(FXObject *sender, FXSelector sel, void *ptr);
73 long onFutabaResetPixel(FXObject *sender, FXSelector sel, void *ptr);
75 long onSelectFont(FXObject *sender, FXSelector sel, void *ptr);
77 long onTimeout(FXObject *sender, FXSelector sel, void *ptr);
78 long onMacTimeout(FXObject *sender, FXSelector sel, void *ptr);
80 void SetPixel(int aX, int aY, unsigned char aValue);
81 void SetPixelBlock(int aX, int aY, int aHeight, int aSize, unsigned char aValue);
84 void SetConnectedStates();
89 FXButton *connect_button;
90 FXButton *disconnect_button;
91 FXButton *rescan_button;
92 FXButton *output_button;
93 FXLabel *connected_label;
94 FXTextField *output_text;
95 FXTextField *output_len;
96 FXButton *feature_button;
97 FXButton *get_feature_button;
98 FXTextField *feature_text;
99 FXTextField *feature_len;
100 FXTextField *get_feature_text;
104 FXButton *iButtonClearDisplay;
105 FXButton *iButtonDimming;
106 FXButton *iButtonDisplayDataInput;
107 FXButton *iButtonReadId;
108 FXButton *iButtonReadFirmwareRevision;
109 FXButton *iButtonPowerSupplyMonitor;
110 FXTextField *iTextFieldX;
111 FXTextField *iTextFieldY;
112 FXButton *iButtonSetPixel;
113 FXButton *iButtonResetPixel;
114 FXButton *iButtonSetAllPixels;
116 FXButton *iButtonSelectFont;
118 unsigned char* iOutputReportBuffer;
119 unsigned char iBrightness; //Current VFD dimming
120 FXFontDesc iCurrentFontDesc;
121 FXFont* iCurrentFont;
122 FXTGAImage* iFontImage;
124 struct hid_device_info *devices;
125 hid_device *connected_device;