commit d9f741dce5483157626a854e21bf5fa420aada02 from: Tobias Heider date: Mon Feb 16 02:06:34 2026 UTC Add back rate limit and signal processing commit - 297aa7d188286c22bf8bb1f1fa43db6ea0787075 commit + d9f741dce5483157626a854e21bf5fa420aada02 blob - e3182a332db83397e5c43101d95680106c42fb0b blob + 0b19dfd9b61bdf2cc9abd839cb844107acf17d44 --- ctlitem.c +++ ctlitem.c @@ -159,13 +159,10 @@ _on_scale_value_changed(GObject *o, gpointer user_data { SiomixerCtlItem *item = SIOMIXER_CTL_ITEM(o); -#if 0 /* Rate limit */ if (item->timeout != 0) return; item->timeout = g_timeout_add(150, _on_debounce_timeout, o); -#endif - sioctl_setval(s.hdl, item->desc.addr, item->level); } GtkWidget * @@ -235,6 +232,7 @@ void siomixer_ctl_item_set_level(SiomixerCtlItem *self, int level) { self->level = level; + g_object_notify_by_pspec(G_OBJECT(self), properties[PROP_LEVEL]); } blob - 5b2c3476bf34ad945e8306531f0fd572b8b65631 blob + fe98fd44e9dc4af72d6fa6496fa294448ce850f5 --- siomixer.c +++ siomixer.c @@ -223,30 +223,16 @@ activate (GtkApplication *app, gpointer user_data) void onctl(void *arg, unsigned addr, unsigned val) { -#if 0 - struct info *i; + SiomixerCtlItem *item = NULL; + unsigned i, n_items; - /* Update infolist */ - i = s.infolist; - for (;;) { - if (i == NULL) - return; - if (i->ctladdr == addr) + n_items = g_list_model_get_n_items(G_LIST_MODEL(s.store)); + for (i = 0; i < n_items; i++) { + item = g_list_model_get_item(G_LIST_MODEL(s.store), i); + if (addr == siomixer_ctl_item_get_addr(item)) break; - i = i->next; } - if (i->desc.type == SIOCTL_SEL) { - if (strcmp(i->desc.node0.name, "server") == 0 && - strcmp(i->desc.func, "device") == 0) { - /* XXX: Should update the dropdown status here */ - } - } else { - i->curval = val; - if (i->widget) - gtk_range_set_value(audiowidget_get_gtkrange(i->widget), - i->curval); - } -#endif + siomixer_ctl_item_set_level(item, val); } static gboolean