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(); }
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; }
bool CAudioLibrary::FillFileItem(const std::string &strFilename, CFileItemPtr &item, const CVariant ¶meterObject /* = 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; }
bool CAudioLibrary::FillFileItem(const CStdString &strFilename, CFileItemPtr &item, const CVariant ¶meterObject /* = 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; }
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(); }