static void update_state(plugin_t *pl) { int canInstall = 0; int canUninstall = 0; int canUpgrade = 0; int cantUpgrade = 0; rstr_t *status = NULL; int version_dep_ok = pl->pl_app_min_version == NULL || parse_version_int(pl->pl_app_min_version) <= app_get_version_int(); prop_set(pl->pl_status, "minver", PROP_SET_VOID); pl->pl_new_version_avail = 0; if(pl->pl_installed == 0) { if(!version_dep_ok) { status = _("Not installable"); prop_set(pl->pl_status, "minver", PROP_SET_STRING, pl->pl_app_min_version); } else { status = _("Not installed"); canInstall = 1; } } else if(!strcmp(pl->pl_inst_ver ?: "", pl->pl_repo_ver ?: "")) { status = _("Up to date"); canUninstall = 1; } else {
static htsmsg_t * make_usage_report(void) { extern const char *htsversion_full; htsmsg_t *out = htsmsg_create_map(); htsmsg_add_str(out, "deviceid", gconf.device_id); htsmsg_add_str(out, "version", htsversion_full); htsmsg_add_str(out, "arch", arch_get_system_type()); htsmsg_add_u32(out, "verint", app_get_version_int()); htsmsg_add_u32(out, "generated", time(NULL)); if(gconf.os_info[0]) htsmsg_add_str(out, "os" , gconf.os_info); time_t now = arch_get_ts() / 1000000LL; int runtime = now - usage_time_base; htsmsg_s32_inc(usage_counters, "runtime", runtime); usage_time_base = now; htsmsg_add_msg(out, "counters", usage_counters); usage_counters = htsmsg_create_map(); htsmsg_add_msg(out, "plugincounters", plugin_counters); plugin_counters = htsmsg_create_map(); return out; }