Display network name for muxes in webui

This commit is contained in:
Andreas Öman 2008-08-25 20:04:49 +00:00
parent 7596ba043f
commit a0035318b7
4 changed files with 27 additions and 9 deletions

View file

@ -67,6 +67,8 @@ th_dvb_mux_instance_t *dvb_mux_create(th_dvb_adapter_t *tda,
uint16_t tsid, const char *network,
const char *logprefix);
void dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *name);
void dvb_tune_tdmi(th_dvb_mux_instance_t *tdmi, int maylog,
tdmi_state_t state);

View file

@ -525,3 +525,22 @@ dvb_mux_load(th_dvb_adapter_t *tda)
htsmsg_destroy(l);
}
/**
*
*/
void
dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *networkname)
{
htsmsg_t *m = htsmsg_create();
char buf[100];
htsmsg_add_str(m, "id", tdmi->tdmi_identifier);
free((void *)tdmi->tdmi_network);
tdmi->tdmi_network = strdup(networkname);
dvb_mux_save(tdmi);
dvb_mux_nicename(buf, sizeof(buf), tdmi);
htsmsg_add_str(m, "name", buf);
notify_by_msg("dvbmux", m);
}

View file

@ -337,16 +337,17 @@ void
dvb_mux_nicename(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
{
char freq[50];
const char *n = tdmi->tdmi_network;
if(tdmi->tdmi_adapter->tda_type == FE_QPSK) {
nicenum(freq, sizeof(freq), tdmi->tdmi_fe_params.frequency);
snprintf(buf, size, "%s kHz %s port %d", freq,
snprintf(buf, size, "%s%s%s kHz %s port %d",
n?:"", n ? ": ":"", freq,
dvb_polarisation_to_str_long(tdmi->tdmi_polarisation),
tdmi->tdmi_switchport);
} else {
nicenum(freq, sizeof(freq), tdmi->tdmi_fe_params.frequency / 1000);
snprintf(buf, size, "%s kHz", freq);
snprintf(buf, size, "%s%s%s kHz", n?:"", n ? ": ":"", freq);
}
}

View file

@ -640,12 +640,8 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
if(dvb_get_string(networkname, sizeof(networkname), ptr, tlen, "UTF8"))
return;
if(strcmp(tdmi->tdmi_network ?: "", networkname)) {
free((void *)tdmi->tdmi_network);
tdmi->tdmi_network = strdup(networkname);
//notify_tdmi_name_change(tdmi);
dvb_mux_save(tdmi);
}
if(strcmp(tdmi->tdmi_network ?: "", networkname))
dvb_mux_set_networkname(tdmi, networkname);
break;
}