wangrong
2025-01-03 2c4b8838f89bebca97615c5f0bac2c58e0349771
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
#include "vp_control_meta.h"
 
namespace vp_objects {
        
    vp_control_meta::vp_control_meta(vp_control_type control_type, int channel_index, std::string control_uid): 
        vp_meta(vp_meta_type::CONTROL, channel_index), control_type(control_type), control_uid(control_uid) {
            if (control_uid.empty()){
                generate_uid();
            }
    }
    
    vp_control_meta::~vp_control_meta() {
 
    }
 
    std::shared_ptr<vp_meta> vp_control_meta::clone() {
        // just call copy constructor and return new pointer
        return std::make_shared<vp_control_meta>(*this);
    }
 
    void vp_control_meta::generate_uid() {
        auto now = std::chrono::system_clock::now();
        auto period = now.time_since_epoch();
 
        // milliseconds since 1970-1-1 00:00:00
        auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(period).count();
 
        control_uid = "vp_control_" + std::to_string(timestamp);
    }
}