WXK
2025-02-05 961c1174bbf1aaae5fa2f672806ed4eaf2f917be
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
/*
 * Copyright (c) 2020-2025 Shanghai Panchip Microelectronics Co.,Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#include "soc_api.h"
#include "app_log.h"
#include "signal_slot_manager.h"
#include <stdlib.h>
 
#define SS_MAX_EVENTS_PAIRED 6
 
ss_manager_t m_ss_manager[SS_MAX_EVENTS_PAIRED];
 
void ss_connect(uint8_t priority, signal_handler_t sig, slot_handler_t slot)
{
    m_ss_manager[priority].sig = sig;
    m_ss_manager[priority].slot = slot;
}
 
void ss_events_handle(void)
{
    for (uint8_t i = 0; i < SS_MAX_EVENTS_PAIRED; i++) {
        if (m_ss_manager[i].sig == NULL) { /*skip this loop, cause the function point equals to zero */
            continue;
        }
 
        if (m_ss_manager[i].sig()) {
            m_ss_manager[i].slot();
        }
    }
}