mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2026-03-13 04:39:18 +01:00
extract add_list_value_change and send_active_value_change from dmctx
This commit is contained in:
parent
98c3869a3c
commit
4266617b1b
3 changed files with 14 additions and 11 deletions
|
|
@ -435,11 +435,9 @@ int dm_entry_load_enabled_notify(unsigned int dm_type, unsigned int amd_version,
|
|||
|
||||
dm_ctx_init(&dmctx, dm_type, amd_version, instance_mode);
|
||||
dmctx.in_param = "";
|
||||
dmctx.add_list_value_change = add_list_value_change;
|
||||
dmctx.send_active_value_change = send_active_value_change;
|
||||
|
||||
free_all_list_enabled_lwnotify();
|
||||
dm_entry_enabled_notify_check_value_change(&dmctx);
|
||||
dm_entry_enabled_notify_check_value_change(&dmctx, add_list_value_change, send_active_value_change);
|
||||
dm_entry_enabled_notify(&dmctx);
|
||||
|
||||
dm_ctx_clean(&dmctx);
|
||||
|
|
|
|||
|
|
@ -103,6 +103,9 @@ char dmroot[64] = "Device";
|
|||
int bbfdatamodel_type = BBFDM_BOTH;
|
||||
unsigned int upnp_in_user_mask = DM_SUPERADMIN_MASK;
|
||||
|
||||
void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type) = NULL;
|
||||
void (*api_send_active_value_change)(void) = NULL;
|
||||
|
||||
struct notification notifications[] = {
|
||||
[0] = {"0", "disabled"},
|
||||
[1] = {"1", "passive"},
|
||||
|
|
@ -1827,7 +1830,7 @@ static int enabled_notify_check_param(DMPARAM_ARGS)
|
|||
/*********************
|
||||
* Check enabled notify value change
|
||||
********************/
|
||||
int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx)
|
||||
int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx, void (*add_list_value_change_arg)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change_arg)(void))
|
||||
{
|
||||
DMOBJ *root = dmctx->dm_entryobj;
|
||||
FILE *fp;
|
||||
|
|
@ -1838,6 +1841,8 @@ int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx)
|
|||
if (fp == NULL) {
|
||||
return 0;
|
||||
}
|
||||
api_add_list_value_change = add_list_value_change_arg;
|
||||
api_send_active_value_change = send_active_value_change_arg;
|
||||
|
||||
while (fgets(buf, 512, fp) != NULL) {
|
||||
DMNODE node = {.current_object = ""};
|
||||
|
|
@ -1879,11 +1884,11 @@ static int enabled_notify_check_value_change_param(DMPARAM_ARGS)
|
|||
(get_cmd)(refparam, dmctx, data, instance, &value);
|
||||
|
||||
if (strcmp(value, dmctx->in_value) != 0) {
|
||||
if (dmctx->add_list_value_change) {
|
||||
dmctx->add_list_value_change(refparam, value, DMT_TYPE[type]);
|
||||
if (api_add_list_value_change) {
|
||||
api_add_list_value_change(refparam, value, DMT_TYPE[type]);
|
||||
}
|
||||
if(dmctx->in_notification[0] =='2' && dmctx->send_active_value_change) {
|
||||
dmctx->send_active_value_change();
|
||||
if(dmctx->in_notification[0] =='2' && api_send_active_value_change) {
|
||||
api_send_active_value_change();
|
||||
}
|
||||
}
|
||||
dmfree(refparam);
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ extern struct dm_notif_s DMNONE;
|
|||
extern struct dm_notif_s DMACTIVE;
|
||||
extern struct dm_notif_s DMPASSIVE;
|
||||
|
||||
extern void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type);
|
||||
extern void (*api_send_active_value_change)(void);
|
||||
#define DMPARAM_ARGS \
|
||||
struct dmctx *dmctx, \
|
||||
struct dmnode *node, \
|
||||
|
|
@ -247,8 +249,6 @@ struct dmctx
|
|||
char all_instances[512];
|
||||
char *inst_buf[16];
|
||||
char *instance_wildchar;
|
||||
void (*add_list_value_change)(char *param_name, char *param_data, char *param_type);
|
||||
void (*send_active_value_change)(void);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -560,7 +560,7 @@ int dm_entry_delete_object(struct dmctx *ctx);
|
|||
int dm_entry_set_value(struct dmctx *ctx);
|
||||
int dm_entry_set_notification(struct dmctx *ctx);
|
||||
int dm_entry_enabled_notify(struct dmctx *ctx);
|
||||
int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx);
|
||||
int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx, void (*add_list_value_change_arg)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change_arg)(void));
|
||||
int dm_entry_get_linker(struct dmctx *ctx);
|
||||
int dm_entry_get_linker_value(struct dmctx *ctx);
|
||||
#ifdef BBF_TR064
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue