access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
channel_tag_t *ct = (channel_tag_t *)in2;
- ilm = idnode_list_link(in1, &ae->ae_chtags, in2, &ct->ct_accesses, origin);
- if (ilm) {
- ilm->ilm_in1_save = 1;
- return 1;
- }
- return 0;
+ ilm = idnode_list_link(in1, &ae->ae_chtags, in2, &ct->ct_accesses, origin, 1);
+ return ilm ? 1 : 0;
}
static int
access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
dvr_config_t *dvr = (dvr_config_t *)in2;
- ilm = idnode_list_link(in1, &ae->ae_dvr_configs, in2, &dvr->dvr_accesses, origin);
- if (ilm) {
- ilm->ilm_in1_save = 1;
- return 1;
- }
- return 0;
+ ilm = idnode_list_link(in1, &ae->ae_dvr_configs, in2, &dvr->dvr_accesses, origin, 1);
+ return ilm ? 1 : 0;
}
static int
access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
profile_t *pro = (profile_t *)in2;
- ilm = idnode_list_link(in1, &ae->ae_profiles, in2, &pro->pro_accesses, origin);
- if (ilm) {
- ilm->ilm_in1_save = 1;
- return 1;
- }
- return 0;
+ ilm = idnode_list_link(in1, &ae->ae_profiles, in2, &pro->pro_accesses, origin, 1);
+ return ilm ? 1 : 0;
}
static int
ilm = idnode_list_link(&ct->ct_id, &ct->ct_ctms,
&ch->ch_id, &ch->ch_ctms,
- origin);
+ origin, 2);
if (ilm) {
- ilm->ilm_in2_save = 1; /* channel */
if(ct->ct_enabled && !ct->ct_internal) {
htsp_tag_update(ct);
htsp_channel_update(ch);
idnode_list_mapping_t *
idnode_list_link ( idnode_t *in1, idnode_list_head_t *in1_list,
idnode_t *in2, idnode_list_head_t *in2_list,
- void *origin )
+ void *origin, uint32_t savemask )
{
idnode_list_mapping_t *ilm;
ilm->ilm_in2 = in2;
LIST_INSERT_HEAD(in1_list, ilm, ilm_in1_link);
LIST_INSERT_HEAD(in2_list, ilm, ilm_in2_link);
+ ilm->ilm_in1_save = savemask & 1;
+ ilm->ilm_in2_save = (savemask >> 1) & 1;
idnode_list_notify(ilm, origin);
return ilm;
}
idnode_list_mapping_t * idnode_list_link
( idnode_t *in1, idnode_list_head_t *in1_list,
idnode_t *in2, idnode_list_head_t *in2_list,
- void *origin );
+ void *origin, uint32_t savemask );
void idnode_list_unlink ( idnode_list_mapping_t *ilm, void *origin );
void idnode_list_destroy ( idnode_list_head_t *ilh, void *origin );
htsmsg_t * idnode_list_get1 ( idnode_list_head_t *in1_list );
ilm = idnode_list_link(&s->s_id, &s->s_channels,
&c->ch_id, &c->ch_services,
- origin);
+ origin, 2);
if (ilm) {
service_mapped(s);
- ilm->ilm_in2_save = 1; /* channel */
return 1;
}
return 0;