You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							2.2 KiB
						
					
					
				| // License: Apache 2.0. See LICENSE file in root directory.
 | |
| // Copyright(c) 2017 Intel Corporation. All Rights Reserved.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "notifications.h"
 | |
| 
 | |
| 
 | |
| namespace rs2
 | |
| {
 | |
|     class viewer_model;
 | |
| 
 | |
|     int parse_product_line(const std::string& product_line);
 | |
|     std::string get_available_firmware_version(int product_line, const std::string& pid);
 | |
| 
 | |
|     std::vector<uint8_t> get_default_fw_image(int product_line, const std::string& pid);
 | |
|     bool is_upgradeable(const std::string& curr, const std::string& available);
 | |
|     bool is_recommended_fw_available(const std::string& product_line, const std::string& pid);
 | |
| 
 | |
|     class firmware_update_manager : public process_manager
 | |
|     {
 | |
|     public:
 | |
|         firmware_update_manager(std::shared_ptr<notifications_model> not_model, device_model& model, device dev, context ctx, std::vector<uint8_t> fw, bool is_signed)
 | |
|             : process_manager("Firmware Update"), _not_model(not_model), _model(model),
 | |
|               _fw(fw), _is_signed(is_signed), _dev(dev), _ctx(ctx) {}
 | |
| 
 | |
|         const device_model& get_device_model() const { return _model; }
 | |
|         std::shared_ptr<notifications_model> get_protected_notification_model() { return _not_model.lock(); };
 | |
| 
 | |
|     protected:
 | |
|         void process_flow(std::function<void()> cleanup,
 | |
|             invoker invoke) override;
 | |
|         void process_mipi();
 | |
|         bool check_for(
 | |
|             std::function<bool()> action, std::function<void()> cleanup,
 | |
|             std::chrono::system_clock::duration delta);
 | |
| 
 | |
|         std::weak_ptr<notifications_model> _not_model;
 | |
|         device _dev;
 | |
|         context _ctx;
 | |
|         std::vector<uint8_t> _fw;
 | |
|         bool _is_signed;
 | |
|         device_model& _model;
 | |
|         bool _is_d500_device = false;
 | |
|     };
 | |
| 
 | |
|     struct fw_update_notification_model : public process_notification_model
 | |
|     {
 | |
|         fw_update_notification_model(std::string name,
 | |
|             std::shared_ptr<firmware_update_manager> manager, bool expaned);
 | |
| 
 | |
|         void set_color_scheme(float t) const override;
 | |
|         void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override;
 | |
|         void draw_expanded(ux_window& win, std::string& error_message) override;
 | |
|         int calc_height() override;
 | |
|     };
 | |
| }
 |