profile_emulation.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef RAZER_PROFILE_EMULATION_H_
  2. #define RAZER_PROFILE_EMULATION_H_
  3. #include "razer_private.h"
  4. #define PROFEMU_NAME_MAX 32
  5. struct razer_mouse_profile_emu_data {
  6. /* Profile name string */
  7. razer_utf16_t name[PROFEMU_NAME_MAX + 1];
  8. /* Frequency selection for this emulated profile */
  9. enum razer_mouse_freq freq;
  10. /* DPI mappings (per axis) for this emulated profile */
  11. struct razer_mouse_dpimapping *dpimappings[3];
  12. unsigned int nr_dpimappings;
  13. /* Button mappings (per physical button) for this emulated profile */
  14. struct razer_button_function *butfuncs[11];
  15. unsigned int nr_butfuncs;
  16. };
  17. struct razer_mouse_profile_emu {
  18. struct razer_mouse *mouse;
  19. /* Emulated profiles */
  20. struct razer_mouse_profile profiles[RAZER_NR_EMULATED_PROFILES];
  21. struct razer_mouse_profile_emu_data data[RAZER_NR_EMULATED_PROFILES];
  22. struct razer_mouse_profile *active_profile;
  23. /* The hardware profile. This is what the driver uses. */
  24. struct razer_mouse_profile *hw_profile;
  25. };
  26. int razer_mouse_init_profile_emulation(struct razer_mouse *m);
  27. void razer_mouse_exit_profile_emulation(struct razer_mouse *m);
  28. #endif /* RAZER_PROFILE_EMULATION_H_ */