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
32
33
34
35
36
37
38
39
40
41
42
43
 
#include "vp_app_des_node.h"
 
namespace vp_nodes {
        
    vp_app_des_node::vp_app_des_node(std::string node_name, 
                                        int channel_index): 
                                        vp_des_node(node_name, channel_index) {
        this->initialized();
    }
    
    vp_app_des_node::~vp_app_des_node() {
        deinitialized();
    }
    
    // re-implementation, return nullptr.
    std::shared_ptr<vp_objects::vp_meta> 
        vp_app_des_node::handle_frame_meta(std::shared_ptr<vp_objects::vp_frame_meta> meta) {
            VP_DEBUG(vp_utils::string_format("[%s] received frame meta, channel_index=>%d, frame_index=>%d", node_name.c_str(), meta->channel_index, meta->frame_index));
 
            invoke_app_des_result_hooker(meta);
 
            // for general works defined in base class
            return vp_des_node::handle_frame_meta(meta);
    }
 
    // re-implementation, return nullptr.
    std::shared_ptr<vp_objects::vp_meta> 
        vp_app_des_node::handle_control_meta(std::shared_ptr<vp_objects::vp_control_meta> meta) {
            invoke_app_des_result_hooker(meta);
            return vp_des_node::handle_control_meta(meta);
    }
 
    void vp_app_des_node::set_app_des_result_hooker(vp_app_des_result_hooker app_des_result_hooker) {
        this->app_des_result_hooker = app_des_result_hooker;
    }
 
    void vp_app_des_node::invoke_app_des_result_hooker(std::shared_ptr<vp_objects::vp_meta> meta) {
        if (app_des_result_hooker) {
            app_des_result_hooker(node_name, meta);
        }
    }
}