quartus napisał(a):
Do rozważenia:
1. Jest register. Czy jest (powinien być) unregister?
Wszystko pewnie zależy od aplikacji. W obsłudze zdarzenia jest warunek:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeśli wskaźnik do funkcji jest różny od zera to funkcja się wykona, w przeciwnym wypadku się nie wykona.
Można by to wykorzystać do "wyrejestrowania" funkcji, ale nie mam pewności czy tu nie ma jakichś zagrożeń..
Czy to byłoby potrzebne? Ciężko powiedzieć

quartus napisał(a):
2. Ile razy zamierzasz rejestrować/wyrejestrowywać zdarzenie dla enkodera?
Domyślnie, jak w przykładzie, rejestracja nastąpiła przed funkcją main, więc w tym przypadku raz.
Nie widzę natomiast problemu w zdefiniowaniu kilku funkcji reagujących na enkoder i w zależności od kontekstu rejestrowanie tej właściwej.
Do tego pewnie należałoby znowu skorzystać z mechanizmu zdarzeń, który by właściwe funkcje rejestrował lub wyrejestrowywał.
quartus napisał(a):
3. Czy tylko 1 rodzaj zdarzenia? Np. inc/dec o "1 działkę" czy może także przeskok w jednostce czasu o kilka działek?
Tutaj już można pewnie ostro zamieszać jeśli będzie potrzeba.
quartus napisał(a):
4. Czy do funkcji callback nie powinien trafiać argument? Np. inc/dec, może wartość licznika?
Można tak zrobić, ale w tym wypadku nie był potrzebny, bo funkcja bazuje na funkcji enc_get().
Jak pisałem, póki co, zdarzenia i callbacki są dla mnie tajemnicą więc ciężko powiedzieć czy trafiłem z odpowiedziami

Mam nadzieje, że jakiś bardziej obeznany programista uściśli moje wypowiedzi.