chenlh
2025-09-18 ab07ada908b82340e7acd899e85a9802cf8a9057
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * scene.h
 *
 *  Created on: 2025Äê7ÔÂ18ÈÕ
 *      Author: 86189
 */
 
#ifndef TG_SCENE_H_
#define TG_SCENE_H_
 
#include <vector>
#include "../scene.h"
#include "../protocol.h"
#include "module_def.h"
 
#pragma pack (1)
typedef struct {
    unsigned short magic;
    unsigned short nmds;
 
    unsigned short pad1;
    unsigned short  pad2;
    unsigned short  crc[2];
 
    tag_input input;    //1362
 
    tag_module  in1[MAX_INPUT_NUM];    //4352
    tag_module  in2[MAX_INPUT_NUM];
    tag_module  in3[MAX_INPUT_NUM];
    tag_module  in4[MAX_INPUT_NUM];
    tag_module  in5[MAX_INPUT_NUM];
 
    tag_automixer    automixer;    //366
    tag_selector    aec_selector;    //208
    tag_aec            aec;    //4
    tag_selector    ans_selector;    //208
    tag_3a            afc_ns;    //36
    tag_mixer        mixer;    //5242
 
    tag_module      out1[MAX_OUTPUT_NUM];    //4352
//    tag_module    out2[MAX_OUTPUT_NUM];
    tag_module_fir    out2[MAX_OUTPUT_NUM];    //140080
    tag_module      out3[MAX_OUTPUT_NUM];
    tag_module      out4[MAX_OUTPUT_NUM];
    tag_output    output;    //1158
    tag_sysctl    sysctl;    //6
    tag_group    group;    //272
} tag_parameters, *ptag_parameters;
#pragma pack ()
 
class tgScene: public Scene
{
private:
    tag_parameters parameters; //Ô¤Éè²ÎÊýÓÉARMÏ·¢
 
    //¸üж¯Ì¬Ä£¿élevel_numºÍtag. ·Ç¶¯Ì¬Ä£¿éÒѾ­¾²Ì¬¹Ì¶¨.
    s32 update_dynmodule_tag(s32 proc_type,struct proc_field* proc);
public:
    tgScene(hw_adapter_t* adapter);
    void module_def(s32 proc_type, void* param_ptr);
    void tgScene_param_default(ptag_parameters p);
 
    //¸ù¾ÝÄ£¿éÀàÐ͸üÐÂÄ£¿éÐÅÏ¢.
    virtual s32 update_module() override;
 
    virtual s32 set_parameters_content(uvoid* param, s32 size) override;
 
    virtual uvoid* get_module_param_ptr(s32 mType, uvoid *param, s32 fixed) override;
 
//    virtual u32 get_module_id(u32 mid, s32 mtype ,u32 pid) override;
};
 
 
//void param_init(ptag_device_config pDevCfg);
//void preset_init(tag_parameters *p);
 
 
#endif /* TG_SCENE_H_ */