char* Interface_General::get_addon_info(void* kodiBase, const char* id) { CAddonDll* addon = static_cast<CAddonDll*>(kodiBase); if (addon == nullptr || id == nullptr) { CLog::Log(LOGERROR, "Interface_General::%s - invalid data (addon='%p', id='%p')", __FUNCTION__, addon, id); return nullptr; } std::string str; if (strcmpi(id, "author") == 0) str = addon->Author(); else if (strcmpi(id, "changelog") == 0) str = addon->ChangeLog(); else if (strcmpi(id, "description") == 0) str = addon->Description(); else if (strcmpi(id, "disclaimer") == 0) str = addon->Disclaimer(); else if (strcmpi(id, "fanart") == 0) str = addon->FanArt(); else if (strcmpi(id, "icon") == 0) str = addon->Icon(); else if (strcmpi(id, "id") == 0) str = addon->ID(); else if (strcmpi(id, "name") == 0) str = addon->Name(); else if (strcmpi(id, "path") == 0) str = addon->Path(); else if (strcmpi(id, "profile") == 0) str = addon->Profile(); else if (strcmpi(id, "summary") == 0) str = addon->Summary(); else if (strcmpi(id, "type") == 0) str = ADDON::CAddonInfo::TranslateType(addon->Type()); else if (strcmpi(id, "version") == 0) str = addon->Version().asString(); else { CLog::Log(LOGERROR, "Interface_General::%s - add-on '%s' requests invalid id '%s'", __FUNCTION__, addon->Name().c_str(), id); return nullptr; } char* buffer = strdup(str.c_str()); return buffer; }