aboutsummaryrefslogtreecommitdiff
path: root/packages/sys-apps/razercfg/files
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sys-apps/razercfg/files')
-rw-r--r--packages/sys-apps/razercfg/files/razercfg-0.17-freq.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/sys-apps/razercfg/files/razercfg-0.17-freq.patch b/packages/sys-apps/razercfg/files/razercfg-0.17-freq.patch
new file mode 100644
index 0000000..c6a2da4
--- /dev/null
+++ b/packages/sys-apps/razercfg/files/razercfg-0.17-freq.patch
@@ -0,0 +1,40 @@
+diff --git a/librazer/librazer.c b/librazer/librazer.c
+index 766972d..ed74dcd 100644
+--- a/librazer/librazer.c
++++ b/librazer/librazer.c
+@@ -425,7 +425,34 @@ static bool mouse_apply_one_config(struct config_file *f,
+ }
+ goto error;
+ } else if (strcasecmp(item, "freq") == 0) {
+- //TODO
++ int profile, freq, i;
++ enum razer_mouse_freq *freqs;
++
++ err = parse_int_int_pair(value, &profile, &freq);
++ if (err == 1) {
++ prof = m->get_active_profile(m);
++ profile = prof->nr + 1;
++ } else if (err)
++ goto error;
++ if (profile < 1 || freq < 1)
++ goto error;
++ prof = find_prof(m, profile - 1);
++ if (!prof)
++ goto error;
++ nr = m->supported_freqs(m, &freqs);
++ if (nr <= 0)
++ goto error;
++ for (i = 0; i < nr; i++) {
++ if (freqs[i] != freq)
++ continue;
++ err = prof->set_freq(prof, freqs[i]);
++ razer_free_freq_list(freqs, nr);
++ if (err)
++ goto error;
++ goto ok;
++ }
++ razer_free_freq_list(freqs, nr);
++ goto error;
+ } else if (strcasecmp(item, "led") == 0) {
+ bool on;
+ struct razer_led *leds, *led;