Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef WACOMINTUOS4LED_H_
00009 #define WACOMINTUOS4LED_H_
00010
00011 #include <string>
00012 #include <map>
00013 #include <libusb-1.0/libusb.h>
00014
00015 using namespace std;
00016
00023 class WacomIntuos4LED {
00024 private:
00025
00031 libusb_context *context;
00032
00039 libusb_device_handle *dev_handle;
00040
00047 map<string,const unsigned char*> icon_table;
00048
00055 void initIconLibrary();
00056
00076 int sendControlMsg(uint8_t bm_request_type, uint8_t b_request,
00077 uint16_t w_value, uint16_t w_index, unsigned char *data,
00078 uint16_t w_length, unsigned int timeout, unsigned int retries);
00079
00087 bool deviceEnabled() const;
00088
00096 bool deviceDisabled() const;
00097
00103 void flipIconVertically(unsigned char *icon) const;
00104
00110 void flipIconHorizontally(unsigned char *icon) const;
00111
00122 int toIndex(int x, int y) const;
00123
00131 unsigned char transformShade(double shade) const;
00132
00142 bool setTransferMode(bool mode);
00143
00156 bool setIcon(unsigned int button, const unsigned char *icon, bool right_handed=true);
00157
00166 bool imageToIcon(const string& file, unsigned char* icon) const;
00167
00168 public:
00172 WacomIntuos4LED();
00173
00177 ~WacomIntuos4LED();
00178
00189 bool init(uint16_t vendor_id, uint16_t product_id);
00190
00196 bool autoDetectTablet();
00197
00205 bool displayPalette(bool right_handed=true);
00206
00220 bool setLibraryIcon(unsigned int button, const string name, bool right_handed=true);
00221
00237 bool setImage(unsigned int button, const string file, bool right_handed=true);
00238
00251 bool dumpImageAsStaticData(const string file, const string name="icon");
00252
00257 void dumpIconAsStaticData(unsigned char *icon, string name="icon") const;
00258
00270 bool clearButton(unsigned int button, bool right_handed=true);
00271
00277 bool clearAllButtons();
00278
00282 void dumpIconNames() const;
00283
00284 };
00285
00286 #endif