add `waitingWorker()` to `Custom`
This commit is contained in:
		
							parent
							
								
									7c28ffc856
								
							
						
					
					
						commit
						bf371f70d1
					
				|  | @ -22,6 +22,7 @@ class Custom : public ALabel { | |||
|  private: | ||||
|   void delayWorker(); | ||||
|   void continuousWorker(); | ||||
|   void waitingWorker(); | ||||
|   void parseOutputRaw(); | ||||
|   void parseOutputJson(); | ||||
|   void handleEvent(); | ||||
|  |  | |||
|  | @ -11,11 +11,13 @@ waybar::modules::Custom::Custom(const std::string& name, const std::string& id, | |||
|       fp_(nullptr), | ||||
|       pid_(-1) { | ||||
|   dp.emit(); | ||||
|   if (interval_.count() > 0) { | ||||
|   if (!config_["signal"].empty() && config_["interval"].empty()) { | ||||
|     waitingWorker(); | ||||
|   } else if (interval_.count() > 0) { | ||||
|     delayWorker(); | ||||
|   } else if (config_["exec"].isString()) { | ||||
|     continuousWorker(); | ||||
|   } | ||||
|   }  | ||||
| } | ||||
| 
 | ||||
| waybar::modules::Custom::~Custom() { | ||||
|  | @ -92,6 +94,26 @@ void waybar::modules::Custom::continuousWorker() { | |||
|   }; | ||||
| } | ||||
| 
 | ||||
| void waybar::modules::Custom::waitingWorker() { | ||||
|   thread_ = [this] { | ||||
|     bool can_update = true; | ||||
|     if (config_["exec-if"].isString()) { | ||||
|       output_ = util::command::execNoRead(config_["exec-if"].asString()); | ||||
|       if (output_.exit_code != 0) { | ||||
|         can_update = false; | ||||
|         dp.emit(); | ||||
|       } | ||||
|     } | ||||
|     if (can_update) { | ||||
|       if (config_["exec"].isString()) { | ||||
|         output_ = util::command::exec(config_["exec"].asString()); | ||||
|       } | ||||
|       dp.emit(); | ||||
|     } | ||||
|     thread_.sleep(); | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| void waybar::modules::Custom::refresh(int sig) { | ||||
|   if (sig == SIGRTMIN + config_["signal"].asInt()) { | ||||
|     thread_.wake_up(); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue