Example #1
0
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;
}