diff --git a/CMakeLists.txt b/CMakeLists.txt index aa8fb8c..aed1303 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.14) -project(clightd VERSION 5.5 LANGUAGES C) +project(clightd VERSION 5.6 LANGUAGES C) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") diff --git a/TODO.md b/TODO.md index b96f908..bd79aac 100644 --- a/TODO.md +++ b/TODO.md @@ -1,82 +1,3 @@ -## 5.5 - -### Camera -- [x] Add support for a cropping setting parameter: "x=0.4-0.6,y=0.2-0.8" -- [x] Support crop through crop and selection v4l2 api if available -- [x] fallback at manually skipping pixels - -### Gamma -- [x] return 0 for Wl gamma Get (sway protocol) even if it is not implemented, to avoid breaking clight -- [x] gamma on sway fix: keep connection alive and call dispatch! -- [x] fix segfault -- [x] move free(priv) inside each plugin as sway implementation requires it to be kept alive! - -### Backlight -- [x] Never set current pct to -1 before emitting signals; fixes https://github.com/FedeDP/Clight/issues/225 -- [x] Route old Backlight module to new Backlight2 to avoid api break for now - -### Backlight2 -- [x] Create new object paths for each detected display -- [x] Drop "Set/Get" methods, and add a Set method on each object path -- [x] SetAll will call Set on each object path (and will be renamed to Set); same for GetAll -- [x] Follow Keyboard API -- [x] Create this new interface under org.clightd.clightd.Backlight2 (to avoid api break)? -- [x] Actually implement logic -- [x] Add support for monitor hotplug using new ddcutil 1.2.0 api ddca_redetect_displays() - -- [x] call sd_bus_emit_object_added() sd_bus_emit_object_removed() When object path are created/deleted - -- [x] Better error handling/code -- [x] Drop bl_store_vpcode() and only load vpcode from CLIGHTD_BL_VCP env? -- [x] Add CLIGHTD_BL_VCP Environment variable to systemd script with a comment thus it is simple to update it if needed -- [x] Expose Max and Internal properties -- [x] Update dbus api wiki -- [x] add a page about monitor hotplugging (dep on ddcutil >= 1.2.0 and refresh time!) -- [x] Investigate memleaks (related to ddca_redetect_displays()?) -> see here: https://github.com/rockowitz/ddcutil/issues/202 -- [x] Instead of 30s sleep, use an udev_monitor on drm subsystem? -- [x] Add support for monitor id specific CLIGHTD_BL_VCP env - -### KbdBacklight -- [x] call sd_bus_emit_object_added() sd_bus_emit_object_removed() When object path are created/deleted -- [x] Fix: udev_reference is a snapshot of an udev device at a current time. Wrong! -- [x] Fixed (small) memleak - -### ALS -- [x] Fix: avoid using cached udev_dev reference in loop (thus always returning same ambient brightness read during a Capture request) -- [x] Fixed EIO errors - -### Sensor -- [x] Only emit Sensor.Changed signal for added/removed devices - -### Pipewire -- [x] Support pipewire for Camera sensor? This would allow multiple application sharing camera -- [x] Pipewire run as root needs XDG_RUNTIME_DIR env -> workaround: find the first /run/user folder and use that -- [x] Unify camera settings between camera and pipewire sensors... ? -- [x] Support monitor sensor api for pipewire -- [x] Fix segfault -- [x] Fix subsequent Capture -- [x] Add a CLIGHTD_PW_RUNTIME_DIR env variable (in clightd.service, see CLIGHTD_BL_CODE) that defaults to /run/user/1000/. If the env variable is empty -> disable pipewire. If folder does not exist: disable pipewire. Otherwise: inotify on folder to wait for socket to appear. If socket is already there, immediately start monitoring. -- [x] Document the new env variable! -- [x] Use caller uid instead of defaulting to first found user during Capture! -- [x] Use a map to store list of nodes? -- [x] Free list of nodes upon exit! -- [x] Fix xdg_runtime_dir set to create monitor -- [x] Fix memleaks -- [x] Support crop settings -- [x] Test crop -- [x] Drop crop API support for both pipewire and webcam; they add lots of complexity while giving no real perf improvements considering we are using small frames -- [x] Fix: pipewire capture while webcam is already owned by another app freezes during pw_loop_iterate() - -### Generic -- [x] When built with ddcutil, clightd.service should be started after systemd-modules-load.service -- [x] Show commit hash in version -- [x] All api that require eg Xauth or xdg rutime user, fallback at automatically fetching a default value given the caller: -- [x] test X -- [x] test wl -- [x] Document the new behavior! -- [x] Fix clightd not cleanly exiting when built with DDC or YOCTOLIGHT (most probably libusb or whatever is creating another thread that is stealing the signal!) -- [x] do not use strlen() to only check that strign is not empty - ## 5.x - [ ] Keep it up to date with possible ddcutil api changes