Beispiel #1
0
bool CVFSEntry::GetDirectory(const CStdString& strPath, CFileItemList& items)
{
  if (!Initialized())
    return false;

  CURL url(strPath);

  VFSCallbacks callbacks;
  callbacks.ctx = this;
  callbacks.GetKeyboardInput = CVFSEntryIDirectoryWrapper::DoGetKeyboardInput;
  callbacks.SetErrorDialog = CVFSEntryIDirectoryWrapper::DoSetErrorDialog;
  callbacks.RequireAuthentication = CVFSEntryIDirectoryWrapper::DoRequireAuthentication;

  VFSDirEntry* entries;
  int num_entries;
  CVFSURLWrapper url2(url);
  void* ctx = m_pStruct->GetDirectory(&url2.url, &entries, &num_entries, &callbacks);
  if (ctx)
  {
    VFSDirEntriesToCFileItemList(num_entries, entries, items);
    m_pStruct->FreeDirectory(ctx);

    return true;
  }

  return false;
}
Beispiel #2
0
bool CVFSEntry::ContainsFiles(const std::string& path, CFileItemList& items)
{
  if (!Initialized())
    return false;

  VFSDirEntry* entries;
  int num_entries;

  CURL url(path);
  CVFSURLWrapper url2(url);
  void* ctx = m_pStruct->ContainsFiles(&url2.url, &entries, &num_entries);
  if (!ctx)
    return false;

  VFSDirEntriesToCFileItemList(num_entries, entries, items);
  m_pStruct->FreeDirectory(ctx);

  return true;
}
Beispiel #3
0
bool CVFSEntry::ContainsFiles(const CURL& url, CFileItemList& items)
{
  if (!m_struct.toAddon.contains_files || !m_struct.toAddon.free_directory)
    return false;

  VFSDirEntry* entries = nullptr;
  int num_entries = 0;

  CVFSURLWrapper url2(url);
  char rootpath[ADDON_STANDARD_STRING_LENGTH];
  rootpath[0] = 0;
  bool ret = m_struct.toAddon.contains_files(&m_struct, &url2.url, &entries, &num_entries, rootpath);
  if (!ret)
    return false;

  VFSDirEntriesToCFileItemList(num_entries, entries, items);
  m_struct.toAddon.free_directory(&m_struct, entries, num_entries);
  if (strlen(rootpath))
    items.SetPath(rootpath);

  return true;
}
Beispiel #4
0
bool CVFSEntry::GetDirectory(const CURL& url, CFileItemList& items,
                             void* ctx)
{
  if (!m_struct.toAddon.get_directory || !m_struct.toAddon.free_directory)
    return false;

  VFSGetDirectoryCallbacks callbacks;
  callbacks.ctx = ctx;
  callbacks.get_keyboard_input = CVFSEntryIDirectoryWrapper::DoGetKeyboardInput;
  callbacks.set_error_dialog = CVFSEntryIDirectoryWrapper::DoSetErrorDialog;
  callbacks.require_authentication = CVFSEntryIDirectoryWrapper::DoRequireAuthentication;

  VFSDirEntry* entries = nullptr;
  int num_entries = 0;
  CVFSURLWrapper url2(url);
  bool ret = m_struct.toAddon.get_directory(&m_struct, &url2.url, &entries, &num_entries, &callbacks);
  if (ret)
  {
    VFSDirEntriesToCFileItemList(num_entries, entries, items);
    m_struct.toAddon.free_directory(&m_struct, entries, num_entries);
  }

  return ret;
}