本文整理汇总了C++中media_detect::CCdInfo类的典型用法代码示例。如果您正苦于以下问题:C++ CCdInfo类的具体用法?C++ CCdInfo怎么用?C++ CCdInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CCdInfo类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: RipCD
bool CCDDARipper::RipCD()
{
// return here if cd is not a CDDA disc
MEDIA_DETECT::CCdInfo* pInfo = g_mediaManager.GetCdInfo();
if (pInfo == NULL || !pInfo->IsAudio(1))
{
CLog::Log(LOGDEBUG, "cddaripper: CD is not an audio cd");
return false;
}
// get cd cdda contents
CFileItemList vecItems;
XFILE::CCDDADirectory directory;
directory.GetDirectory(CURL("cdda://local/"), vecItems);
// get cddb info
for (int i = 0; i < vecItems.Size(); ++i)
{
CFileItemPtr pItem = vecItems[i];
CMusicInfoTagLoaderFactory factory;
std::unique_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(*pItem));
if (NULL != pLoader.get())
{
pLoader->Load(pItem->GetPath(), *pItem->GetMusicInfoTag()); // get tag from file
if (!pItem->GetMusicInfoTag()->Loaded())
break; // No CDDB info available
}
}
// construct directory where the tracks are stored
std::string strDirectory;
int legalType;
if (!CreateAlbumDir(*vecItems[0]->GetMusicInfoTag(), strDirectory, legalType))
return false;
// rip all tracks one by one
const std::shared_ptr<CSettings> settings = CServiceBroker::GetSettingsComponent()->GetSettings();
for (int i = 0; i < vecItems.Size(); i++)
{
CFileItemPtr item = vecItems[i];
// construct filename
std::string strFile = URIUtils::AddFileToFolder(strDirectory, CUtil::MakeLegalFileName(GetTrackName(item.get()), legalType));
// don't rip non cdda items
if (item->GetPath().find(".cdda") == std::string::npos)
continue;
bool eject = settings->GetBool(CSettings::SETTING_AUDIOCDS_EJECTONRIP) && i == vecItems.Size()-1;
AddJob(new CCDDARipJob(item->GetPath(),strFile,
*item->GetMusicInfoTag(),
settings->GetInt(CSettings::SETTING_AUDIOCDS_ENCODER), eject));
}
return true;
}
开发者ID:68foxboris,项目名称:xbmc,代码行数:56,代码来源:CDDARipper.cpp
示例2: RipCD
bool CCDDARipper::RipCD()
{
// return here if cd is not a CDDA disc
MEDIA_DETECT::CCdInfo* pInfo = g_mediaManager.GetCdInfo();
if (pInfo == NULL || !pInfo->IsAudio(1))
{
CLog::Log(LOGDEBUG, "cddaripper: CD is not an audio cd");
return false;
}
// get cd cdda contents
CFileItemList vecItems;
XFILE::CCDDADirectory directory;
directory.GetDirectory("cdda://local/", vecItems);
// get cddb info
for (int i = 0; i < vecItems.Size(); ++i)
{
CFileItemPtr pItem = vecItems[i];
CMusicInfoTagLoaderFactory factory;
auto_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(pItem->GetPath()));
if (NULL != pLoader.get())
{
pLoader->Load(pItem->GetPath(), *pItem->GetMusicInfoTag()); // get tag from file
if (!pItem->GetMusicInfoTag()->Loaded())
break; // No CDDB info available
}
}
// construct directory where the tracks are stored
CStdString strDirectory;
int legalType;
if (!CreateAlbumDir(*vecItems[0]->GetMusicInfoTag(), strDirectory, legalType))
return false;
// rip all tracks one by one
for (int i = 0; i < vecItems.Size(); i++)
{
CFileItemPtr item = vecItems[i];
// construct filename
CStdString strFile = URIUtils::AddFileToFolder(strDirectory, CUtil::MakeLegalFileName(GetTrackName(item.get()), legalType));
// don't rip non cdda items
if (item->GetPath().Find(".cdda") < 0)
continue;
bool eject = CSettings::Get().GetBool("audiocds.ejectonrip") &&
i == vecItems.Size()-1;
AddJob(new CCDDARipJob(item->GetPath(),strFile,
*item->GetMusicInfoTag(),
CSettings::Get().GetInt("audiocds.encoder"), eject));
}
return true;
}
开发者ID:DJMatty,项目名称:xbmc,代码行数:56,代码来源:CDDARipper.cpp
示例3: IsAudio
bool CMediaManager::IsAudio(const std::string& devicePath)
{
#ifdef HAS_DVD_DRIVE
// TODO: switch all ports to use auto sources
MEDIA_DETECT::CCdInfo* pInfo = MEDIA_DETECT::CDetectDVDMedia::GetCdInfo();
if (pInfo != NULL && pInfo->IsAudio(1))
return true;
#endif
return false;
}
开发者ID:MrMC,项目名称:mrmc,代码行数:10,代码来源:MediaManager.cpp
示例4: GetContextButtons
void CGUIWindowMusicBase::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
if (item && !item->GetProperty("pluginreplacecontextitems").asBoolean())
{
if (item && !item->IsParentFolder())
{
if (!m_vecItems->IsPlugin() && (item->IsPlugin() || item->IsScript()))
buttons.Add(CONTEXT_BUTTON_INFO,24003); // Add-on info
if (item->CanQueue() && !item->IsAddonsPath() && !item->IsScript())
{
buttons.Add(CONTEXT_BUTTON_QUEUE_ITEM, 13347); //queue
// allow a folder to be ad-hoc queued and played by the default player
if (item->m_bIsFolder || (item->IsPlayList() &&
!g_advancedSettings.m_playlistAsFolders))
{
buttons.Add(CONTEXT_BUTTON_PLAY_ITEM, 208); // Play
}
else
{ // check what players we have, if we have multiple display play with option
VECPLAYERCORES vecCores;
CPlayerCoreFactory::GetInstance().GetPlayers(*item, vecCores);
if (vecCores.size() >= 1)
buttons.Add(CONTEXT_BUTTON_PLAY_WITH, 15213); // Play With...
}
if (item->IsSmartPlayList())
{
buttons.Add(CONTEXT_BUTTON_PLAY_PARTYMODE, 15216); // Play in Partymode
}
if (item->IsSmartPlayList() || m_vecItems->IsSmartPlayList())
buttons.Add(CONTEXT_BUTTON_EDIT_SMART_PLAYLIST, 586);
else if (item->IsPlayList() || m_vecItems->IsPlayList())
buttons.Add(CONTEXT_BUTTON_EDIT, 586);
}
// Add the scan button(s)
if (g_application.IsMusicScanning())
buttons.Add(CONTEXT_BUTTON_STOP_SCANNING, 13353); // Stop Scanning
else if (!m_vecItems->IsMusicDb() && !m_vecItems->IsInternetStream() &&
!item->IsPath("add") && !item->IsParentFolder() &&
!item->IsPlugin() && !item->IsMusicDb() &&
!item->IsLibraryFolder() &&
!StringUtils::StartsWithNoCase(item->GetPath(), "addons://") &&
(CProfilesManager::GetInstance().GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser))
{
buttons.Add(CONTEXT_BUTTON_SCAN, 13352);
}
#ifdef HAS_DVD_DRIVE
// enable Rip CD Audio or Track button if we have an audio disc
if (g_mediaManager.IsDiscInDrive() && m_vecItems->IsCDDA())
{
// those cds can also include Audio Tracks: CDExtra and MixedMode!
MEDIA_DETECT::CCdInfo *pCdInfo = g_mediaManager.GetCdInfo();
if (pCdInfo->IsAudio(1) || pCdInfo->IsCDExtra(1) || pCdInfo->IsMixedMode(1))
buttons.Add(CONTEXT_BUTTON_RIP_TRACK, 610);
}
#endif
}
// enable CDDB lookup if the current dir is CDDA
if (g_mediaManager.IsDiscInDrive() && m_vecItems->IsCDDA() &&
(CProfilesManager::GetInstance().GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser))
{
buttons.Add(CONTEXT_BUTTON_CDDB, 16002);
}
}
CGUIMediaWindow::GetContextButtons(itemNumber, buttons);
}
开发者ID:pollonamid,项目名称:xbmc,代码行数:72,代码来源:GUIWindowMusicBase.cpp
示例5: GetBool
bool CSystemGUIInfo::GetBool(bool& value, const CGUIListItem *gitem, int contextWindow, const CGUIInfo &info) const
{
switch (info.m_info)
{
///////////////////////////////////////////////////////////////////////////////////////////////
// SYSTEM_*
///////////////////////////////////////////////////////////////////////////////////////////////
case SYSTEM_ALWAYS_TRUE:
value = true;
return true;
case SYSTEM_ALWAYS_FALSE:
value = false;
return true;
case SYSTEM_ETHERNET_LINK_ACTIVE:
// wtf: not implementated - always returns true?!
value = true;
return true;
case SYSTEM_PLATFORM_LINUX:
#if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_WINDOWS:
#ifdef TARGET_WINDOWS
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_UWP:
#ifdef TARGET_WINDOWS_STORE
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_DARWIN:
#ifdef TARGET_DARWIN
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_DARWIN_OSX:
#ifdef TARGET_DARWIN_OSX
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_DARWIN_IOS:
#ifdef TARGET_DARWIN_IOS
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_ANDROID:
#if defined(TARGET_ANDROID)
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_PLATFORM_LINUX_RASPBERRY_PI:
#if defined(TARGET_RASPBERRY_PI)
value = true;
#else
value = false;
#endif
return true;
case SYSTEM_MEDIA_DVD:
value = g_mediaManager.IsDiscInDrive();
return true;
case SYSTEM_MEDIA_AUDIO_CD:
#ifdef HAS_DVD_DRIVE
if (g_mediaManager.IsDiscInDrive())
{
MEDIA_DETECT::CCdInfo *pCdInfo = g_mediaManager.GetCdInfo();
value = pCdInfo && (pCdInfo->IsAudio(1) || pCdInfo->IsCDExtra(1) || pCdInfo->IsMixedMode(1));
}
else
#endif
{
value = false;
}
return true;
#ifdef HAS_DVD_DRIVE
case SYSTEM_DVDREADY:
value = g_mediaManager.GetDriveStatus() != DRIVE_NOT_READY;
return true;
case SYSTEM_TRAYOPEN:
value = g_mediaManager.GetDriveStatus() == DRIVE_OPEN;
return true;
#endif
case SYSTEM_CAN_POWERDOWN:
value = CServiceBroker::GetPowerManager().CanPowerdown();
return true;
//.........这里部分代码省略.........
开发者ID:AlwinEsch,项目名称:kodi,代码行数:101,代码来源:SystemGUIInfo.cpp
示例6: GetContextButtons
void CGUIWindowMusicNav::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
if (item)
{
// are we in the playlists location?
bool inPlaylists = m_vecItems->IsPath(CUtil::MusicPlaylistsLocation()) ||
m_vecItems->IsPath("special://musicplaylists/");
if (m_vecItems->IsPath("sources://music/"))
{
// get the usual music shares, and anything for all media windows
CGUIDialogContextMenu::GetContextButtons("music", item, buttons);
#ifdef HAS_DVD_DRIVE
// enable Rip CD an audio disc
if (g_mediaManager.IsDiscInDrive() && item->IsCDDA())
{
// those cds can also include Audio Tracks: CDExtra and MixedMode!
MEDIA_DETECT::CCdInfo *pCdInfo = g_mediaManager.GetCdInfo();
if (pCdInfo->IsAudio(1) || pCdInfo->IsCDExtra(1) || pCdInfo->IsMixedMode(1))
{
if (CJobManager::GetInstance().IsProcessing("cdrip"))
buttons.Add(CONTEXT_BUTTON_CANCEL_RIP_CD, 14100);
else
buttons.Add(CONTEXT_BUTTON_RIP_CD, 600);
}
}
#endif
// Add the scan button(s)
if (g_application.IsMusicScanning())
buttons.Add(CONTEXT_BUTTON_STOP_SCANNING, 13353); // Stop Scanning
else if (!inPlaylists && !m_vecItems->IsInternetStream() &&
!item->IsPath("add") && !item->IsParentFolder() &&
!item->IsPlugin() &&
!StringUtils::StartsWithNoCase(item->GetPath(), "addons://") &&
(CProfilesManager::GetInstance().GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser))
{
buttons.Add(CONTEXT_BUTTON_SCAN, 13352);
}
CGUIMediaWindow::GetContextButtons(itemNumber, buttons);
}
else
{
CGUIWindowMusicBase::GetContextButtons(itemNumber, buttons);
CMusicDatabaseDirectory dir;
// enable query all albums button only in album view
if (item->IsAlbum() && !dir.IsAllItem(item->GetPath()) &&
item->m_bIsFolder && !item->IsVideoDb() && !item->IsParentFolder() &&
!item->IsPlugin() && !StringUtils::StartsWithNoCase(item->GetPath(), "musicsearch://"))
{
buttons.Add(CONTEXT_BUTTON_INFO_ALL, 20059);
}
// enable query all artist button only in artist view
if (dir.IsArtistDir(item->GetPath()) && !dir.IsAllItem(item->GetPath()) &&
item->m_bIsFolder && !item->IsVideoDb())
{
ADDON::ScraperPtr info;
if(m_musicdatabase.GetScraperForPath(item->GetPath(), info, ADDON::ADDON_SCRAPER_ARTISTS))
{
if (info && info->Supports(CONTENT_ARTISTS))
buttons.Add(CONTEXT_BUTTON_INFO_ALL, 21884);
}
}
//Set default or clear default
NODE_TYPE nodetype = dir.GetDirectoryType(item->GetPath());
if (!item->IsParentFolder() && !inPlaylists &&
(nodetype == NODE_TYPE_ROOT ||
nodetype == NODE_TYPE_OVERVIEW ||
nodetype == NODE_TYPE_TOP100))
{
if (!item->IsPath(CSettings::GetInstance().GetString(CSettings::SETTING_MYMUSIC_DEFAULTLIBVIEW)))
buttons.Add(CONTEXT_BUTTON_SET_DEFAULT, 13335); // set default
if (!CSettings::GetInstance().GetString(CSettings::SETTING_MYMUSIC_DEFAULTLIBVIEW).empty())
buttons.Add(CONTEXT_BUTTON_CLEAR_DEFAULT, 13403); // clear default
}
NODE_TYPE childtype = dir.GetDirectoryChildType(item->GetPath());
if (childtype == NODE_TYPE_ALBUM ||
childtype == NODE_TYPE_ARTIST ||
nodetype == NODE_TYPE_GENRE ||
nodetype == NODE_TYPE_ALBUM ||
nodetype == NODE_TYPE_ALBUM_RECENTLY_ADDED ||
nodetype == NODE_TYPE_ALBUM_COMPILATIONS)
{
// we allow the user to set content for
// 1. general artist and album nodes
// 2. specific per genre
// 3. specific per artist
// 4. specific per album
buttons.Add(CONTEXT_BUTTON_SET_CONTENT, 20195);
}
if (item->HasMusicInfoTag() && !item->GetMusicInfoTag()->GetArtistString().empty())
{
CVideoDatabase database;
database.Open();
//.........这里部分代码省略.........
开发者ID:johnfraney,项目名称:xbmc,代码行数:101,代码来源:GUIWindowMusicNav.cpp
注:本文中的media_detect::CCdInfo类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论