mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-01 00:12:42 +01:00 
			
		
		
		
	Merge pull request #199 from ianhattendorf/fix/backlight-disable-not-found
Disable backlight module if no backlights found
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -5,7 +5,7 @@ vgcore.* | ||||
| *.swp | ||||
| packagecache | ||||
| /subprojects/**/ | ||||
| /build | ||||
| /build* | ||||
| /dist | ||||
| /meson.egg-info | ||||
|  | ||||
|   | ||||
| @@ -104,6 +104,18 @@ waybar::modules::Backlight::Backlight(const std::string &name, | ||||
|           config["device"].isString() ? config["device"].asString() : "") { | ||||
|   label_.set_name("backlight"); | ||||
|  | ||||
|   // Get initial state | ||||
|   { | ||||
|     std::unique_ptr<udev, UdevDeleter> udev_check{udev_new()}; | ||||
|     check_nn(udev_check.get(), "Udev check new failed"); | ||||
|     enumerate_devices(devices_.begin(), devices_.end(), | ||||
|                       std::back_inserter(devices_), udev_check.get()); | ||||
|     if (devices_.empty()) { | ||||
|       throw std::runtime_error("No backlight found"); | ||||
|     } | ||||
|     dp.emit(); | ||||
|   } | ||||
|  | ||||
|   udev_thread_ = [this] { | ||||
|     std::unique_ptr<udev, UdevDeleter> udev{udev_new()}; | ||||
|     check_nn(udev.get(), "Udev new failed"); | ||||
| @@ -129,22 +141,6 @@ waybar::modules::Backlight::Backlight(const std::string &name, | ||||
|         "epoll_ctl failed: {}"); | ||||
|     epoll_event events[EPOLL_MAX_EVENTS]; | ||||
|  | ||||
|     // Get initial state | ||||
|     { | ||||
|       decltype(devices_) devices; | ||||
|       { | ||||
|         std::scoped_lock<std::mutex> lock(udev_thread_mutex_); | ||||
|         devices = devices_; | ||||
|       } | ||||
|       enumerate_devices(devices.begin(), devices.end(), | ||||
|                         std::back_inserter(devices), udev.get()); | ||||
|       { | ||||
|         std::scoped_lock<std::mutex> lock(udev_thread_mutex_); | ||||
|         devices_ = devices; | ||||
|       } | ||||
|       dp.emit(); | ||||
|     } | ||||
|  | ||||
|     while (udev_thread_.isRunning()) { | ||||
|       const int event_count = | ||||
|           epoll_wait(epoll_fd.get(), events, EPOLL_MAX_EVENTS, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alex
					Alex