コード例 #1
0
ファイル: GUIDialogSongInfo.cpp プロジェクト: 0xheart0/xbmc
void CGUIDialogSongInfo::OnInitWindow()
{
  CMusicDatabase db;
  db.Open();

  // no known db info - check if parent dir is an album
  if (m_song->GetMusicInfoTag()->GetDatabaseId() == -1)
  {
    std::string path = URIUtils::GetDirectory(m_song->GetPath());
    m_albumId = db.GetAlbumIdByPath(path);
  }
  else
  {
    CAlbum album;
    db.GetAlbumFromSong(m_song->GetMusicInfoTag()->GetDatabaseId(),album);
    m_albumId = album.idAlbum;
  }
  CONTROL_ENABLE_ON_CONDITION(CONTROL_ALBUMINFO, m_albumId > -1);

  // Disable music user rating button for plugins as they don't have tables to save this
  if (m_song->IsPlugin())
    CONTROL_DISABLE(CONTROL_USERRATING);
  else
    CONTROL_ENABLE(CONTROL_USERRATING);

  SET_CONTROL_HIDDEN(CONTROL_BTN_REFRESH);
  SET_CONTROL_HIDDEN(CONTROL_LIST);
  SET_CONTROL_LABEL(CONTROL_USERRATING, 38023);
  SET_CONTROL_LABEL(CONTROL_BTN_GET_THUMB, 13405);
  SET_CONTROL_LABEL(CONTROL_ALBUMINFO, 10523);

  CGUIDialog::OnInitWindow();
}
コード例 #2
0
ファイル: AudioLibrary.cpp プロジェクト: SunSeosahai/xbmc
bool CAudioLibrary::FillFileItem(const CStdString &strFilename, CFileItem &item)
{
  CMusicDatabase musicdatabase;
  if (strFilename.empty() || !musicdatabase.Open())
    return false;

  if (CDirectory::Exists(strFilename))
  {
    CAlbum album;
    int albumid = musicdatabase.GetAlbumIdByPath(strFilename);
    if (!musicdatabase.GetAlbumInfo(albumid, album, NULL))
      return false;

    item = CFileItem(strFilename, album);
  }
  else
  {
    CSong song;
    if (!musicdatabase.GetSongByFileName(strFilename, song))
      return false;

    item = CFileItem(song);
  }

  return true;
}
コード例 #3
0
ファイル: AudioLibrary.cpp プロジェクト: BigNoid/xbmc
bool CAudioLibrary::FillFileItem(const std::string &strFilename, CFileItemPtr &item, const CVariant &parameterObject /* = CVariant(CVariant::VariantTypeArray) */)
{
  CMusicDatabase musicdatabase;
  if (strFilename.empty())
    return false;

  bool filled = false;
  if (musicdatabase.Open())
  {
    if (CDirectory::Exists(strFilename))
    {
      CAlbum album;
      int albumid = musicdatabase.GetAlbumIdByPath(strFilename);
      if (musicdatabase.GetAlbum(albumid, album, false))
      {
        item->SetFromAlbum(album);
        FillItemArtistIDs(album.GetArtistIDArray(), item);

        CFileItemList items;
        items.Add(item);

        if (GetAdditionalAlbumDetails(parameterObject, items, musicdatabase) == OK)
          filled = true;
      }
    }
    else
    {
      CSong song;
      if (musicdatabase.GetSongByFileName(strFilename, song))
      {
        item->SetFromSong(song);
        FillItemArtistIDs(song.GetArtistIDArray(), item);

        CFileItemList items;
        items.Add(item);
        if (GetAdditionalSongDetails(parameterObject, items, musicdatabase) == OK)
          filled = true;
      }
    }
  }

  if (item->GetLabel().empty())
  {
    item->SetLabel(CUtil::GetTitleFromPath(strFilename, false));
    if (item->GetLabel().empty())
      item->SetLabel(URIUtils::GetFileName(strFilename));
  }

  return filled;
}
コード例 #4
0
ファイル: AudioLibrary.cpp プロジェクト: AFFLUENTSOCIETY/SPMC
bool CAudioLibrary::FillFileItem(const CStdString &strFilename, CFileItemPtr &item, const CVariant &parameterObject /* = CVariant(CVariant::VariantTypeArray) */)
{
  CMusicDatabase musicdatabase;
  if (strFilename.empty() || !musicdatabase.Open())
    return false;

  if (CDirectory::Exists(strFilename))
  {
    CAlbum album;
    int albumid = musicdatabase.GetAlbumIdByPath(strFilename);
    if (!musicdatabase.GetAlbumInfo(albumid, album, NULL))
      return false;

    item->SetFromAlbum(album);

    CFileItemList items;
    items.Add(item);
    if (GetAdditionalAlbumDetails(parameterObject, items, musicdatabase) != OK)
      return false;
  }
  else
  {
    CSong song;
    if (!musicdatabase.GetSongByFileName(strFilename, song))
      return false;

    item->SetFromSong(song);

    CFileItemList items;
    items.Add(item);
    if (GetAdditionalSongDetails(parameterObject, items, musicdatabase) != OK)
      return false;
  }

  if (item->GetLabel().empty())
    item->SetLabel(CUtil::GetTitleFromPath(strFilename, false));
  if (item->GetLabel())
    item->SetLabel(URIUtils::GetFileName(strFilename));

  return true;
}
コード例 #5
0
ファイル: GUIDialogSongInfo.cpp プロジェクト: krattai/sht_tv
void CGUIDialogSongInfo::OnInitWindow()
{
  CMusicDatabase db;
  db.Open();

  // no known db info - check if parent dir is an album
  if (m_song->GetMusicInfoTag()->GetDatabaseId() == -1)
  {
    std::string path = URIUtils::GetDirectory(m_song->GetPath());
    m_albumId = db.GetAlbumIdByPath(path);
  }
  else
  {
    CAlbum album;
    db.GetAlbumFromSong(m_song->GetMusicInfoTag()->GetDatabaseId(),album);
    m_albumId = album.idAlbum;
  }
  CONTROL_ENABLE_ON_CONDITION(CONTROL_ALBUMINFO, m_albumId > -1);

  CGUIDialog::OnInitWindow();
}