本文整理汇总了C++中CFileItem::GetMimeType方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItem::GetMimeType方法的具体用法?C++ CFileItem::GetMimeType怎么用?C++ CFileItem::GetMimeType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItem
的用法示例。
在下文中一共展示了CFileItem::GetMimeType方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IsPlaylist
bool CPlayListFactory::IsPlaylist(const CFileItem& item)
{
CStdString strMimeType = item.GetMimeType();
strMimeType.ToLower();
/* These are abit uncertain
if(strMimeType == "video/x-ms-asf"
|| strMimeType == "video/x-ms-asx"
|| strMimeType == "video/x-ms-wmv"
|| strMimeType == "video/x-ms-wma"
|| strMimeType == "video/x-ms-wfs"
|| strMimeType == "video/x-ms-wvx"
|| strMimeType == "video/x-ms-wax"
|| strMimeType == "video/x-ms-asf")
return true;
*/
// online m3u8 files are hls:// -- do not treat as playlist
if (item.IsInternetStream() && item.IsType(".m3u8"))
return false;
if(strMimeType == "audio/x-pn-realaudio"
|| strMimeType == "playlist"
|| strMimeType == "audio/x-mpegurl")
return true;
return IsPlaylist(item.GetPath());
}
示例2: item
bool CGUIMultiImage::CMultiImageJob::DoWork()
{
// check to see if we have a single image or a folder of images
CFileItem item(m_path, false);
item.FillInMimeType();
if (item.IsPicture() || StringUtils::StartsWithNoCase(item.GetMimeType(), "image/"))
{
m_files.push_back(m_path);
}
else
{
// Load in images from the directory specified
// m_path is relative (as are all skin paths)
std::string realPath = CServiceBroker::GetGUI()->GetTextureManager().GetTexturePath(m_path, true);
if (realPath.empty())
return true;
URIUtils::AddSlashAtEnd(realPath);
CFileItemList items;
CDirectory::GetDirectory(realPath, items, CServiceBroker::GetFileExtensionProvider().GetPictureExtensions()+ "|.tbn|.dds", DIR_FLAG_NO_FILE_DIRS | DIR_FLAG_NO_FILE_INFO);
for (int i=0; i < items.Size(); i++)
{
CFileItem* pItem = items[i].get();
if (pItem && (pItem->IsPicture() || StringUtils::StartsWithNoCase(pItem->GetMimeType(), "image/")))
m_files.push_back(pItem->GetPath());
}
}
return true;
}
示例3: item
bool CGUIMultiImage::CMultiImageJob::DoWork()
{
// check to see if we have a single image or a folder of images
CFileItem item(m_path, false);
item.FillInMimeType();
if (item.IsPicture() || item.GetMimeType().Left(6).Equals("image/"))
{
m_files.push_back(m_path);
}
else
{
// Load in images from the directory specified
// m_path is relative (as are all skin paths)
CStdString realPath = g_TextureManager.GetTexturePath(m_path, true);
if (realPath.IsEmpty())
return true;
URIUtils::AddSlashAtEnd(realPath);
CFileItemList items;
CDirectory::GetDirectory(realPath, items, g_advancedSettings.m_pictureExtensions + "|.tbn|.dds", DIR_FLAG_NO_FILE_DIRS | DIR_FLAG_NO_FILE_INFO);
for (int i=0; i < items.Size(); i++)
{
CFileItem* pItem = items[i].get();
if (pItem && (pItem->IsPicture() || pItem->GetMimeType().Left(6).Equals("image/")))
m_files.push_back(pItem->GetPath());
}
}
return true;
}
示例4: Create
bool CAudioDecoder::Create(const CFileItem &file, __int64 seekOffset, unsigned int nBufferSize)
{
Destroy();
CSingleLock lock(m_critSection);
// create our pcm buffer
m_pcmBuffer.Create((int)std::max<unsigned int>(2, nBufferSize) *
INTERNAL_BUFFER_LENGTH);
// reset our playback timing variables
m_eof = false;
// get correct cache size
unsigned int filecache = g_guiSettings.GetInt("cacheaudio.internet");
if ( file.IsHD() )
filecache = g_guiSettings.GetInt("cache.harddisk");
else if ( file.IsOnDVD() )
filecache = g_guiSettings.GetInt("cacheaudio.dvdrom");
else if ( file.IsOnLAN() )
filecache = g_guiSettings.GetInt("cacheaudio.lan");
// create our codec
m_codec=CodecFactory::CreateCodecDemux(file.GetPath(), file.GetMimeType(), filecache * 1024);
if (!m_codec || !m_codec->Init(file.GetPath(), filecache * 1024))
{
CLog::Log(LOGERROR, "CAudioDecoder: Unable to Init Codec while loading file %s", file.GetPath().c_str());
Destroy();
return false;
}
m_blockSize = m_codec->m_Channels * m_codec->m_BitsPerSample / 8;
// set total time from the given tag
if (file.HasMusicInfoTag() && file.GetMusicInfoTag()->GetDuration())
m_codec->SetTotalTime(file.GetMusicInfoTag()->GetDuration());
if (seekOffset)
m_codec->Seek(seekOffset);
m_status = STATUS_QUEUING;
return true;
}
示例5: IsPlaylist
bool CPlayListFactory::IsPlaylist(const CFileItem& item)
{
CStdString strMimeType = item.GetMimeType();
strMimeType.ToLower();
/* These are abit uncertain
if(strMimeType == "video/x-ms-asf"
|| strMimeType == "video/x-ms-asx"
|| strMimeType == "video/x-ms-wmv"
|| strMimeType == "video/x-ms-wma"
|| strMimeType == "video/x-ms-wfs"
|| strMimeType == "video/x-ms-wvx"
|| strMimeType == "video/x-ms-wax"
|| strMimeType == "video/x-ms-asf")
return true;
*/
if(strMimeType == "audio/x-pn-realaudio"
|| strMimeType == "playlist"
|| strMimeType == "audio/x-mpegurl")
return true;
return IsPlaylist(item.m_strPath);
}
示例6: GetPlayers
void CPlayerSelectionRule::GetPlayers(const CFileItem& item, std::vector<std::string>&validPlayers, std::vector<std::string>&players)
{
CLog::Log(LOGDEBUG, "CPlayerSelectionRule::GetPlayers: considering rule: %s", m_name.c_str());
if (m_bStreamDetails && !item.HasVideoInfoTag())
return;
if (m_tAudio >= 0 && (m_tAudio > 0) != item.IsAudio())
return;
if (m_tVideo >= 0 && (m_tVideo > 0) != item.IsVideo())
return;
if (m_tInternetStream >= 0 && (m_tInternetStream > 0) != item.IsInternetStream())
return;
if (m_tRemote >= 0 && (m_tRemote > 0) != item.IsRemote())
return;
if (m_tBD >= 0 && (m_tBD > 0) != (item.IsBDFile() && item.IsOnDVD()))
return;
if (m_tDVD >= 0 && (m_tDVD > 0) != item.IsDVD())
return;
if (m_tDVDFile >= 0 && (m_tDVDFile > 0) != item.IsDVDFile())
return;
if (m_tDVDImage >= 0 && (m_tDVDImage > 0) != item.IsDiscImage())
return;
CRegExp regExp(false, CRegExp::autoUtf8);
if (m_bStreamDetails)
{
if (!item.GetVideoInfoTag()->HasStreamDetails())
{
CLog::Log(LOGDEBUG, "CPlayerSelectionRule::GetPlayers: cannot check rule: %s, no StreamDetails", m_name.c_str());
return;
}
CStreamDetails streamDetails = item.GetVideoInfoTag()->m_streamDetails;
if (CompileRegExp(m_audioCodec, regExp) && !MatchesRegExp(streamDetails.GetAudioCodec(), regExp))
return;
std::stringstream itoa;
itoa << streamDetails.GetAudioChannels();
std::string audioChannelsstr = itoa.str();
if (CompileRegExp(m_audioChannels, regExp) && !MatchesRegExp(audioChannelsstr, regExp))
return;
if (CompileRegExp(m_videoCodec, regExp) && !MatchesRegExp(streamDetails.GetVideoCodec(), regExp))
return;
if (CompileRegExp(m_videoResolution, regExp) &&
!MatchesRegExp(CStreamDetails::VideoDimsToResolutionDescription(streamDetails.GetVideoWidth(), streamDetails.GetVideoHeight()), regExp))
return;
if (CompileRegExp(m_videoAspect, regExp) &&
!MatchesRegExp(CStreamDetails::VideoAspectToAspectDescription(streamDetails.GetVideoAspect()), regExp))
return;
}
CURL url(item.GetPath());
if (CompileRegExp(m_fileTypes, regExp) && !MatchesRegExp(url.GetFileType(), regExp))
return;
if (CompileRegExp(m_protocols, regExp) && !MatchesRegExp(url.GetProtocol(), regExp))
return;
if (CompileRegExp(m_mimeTypes, regExp) && !MatchesRegExp(item.GetMimeType(), regExp))
return;
if (CompileRegExp(m_fileName, regExp) && !MatchesRegExp(item.GetPath(), regExp))
return;
CLog::Log(LOGDEBUG, "CPlayerSelectionRule::GetPlayers: matches rule: %s", m_name.c_str());
for (unsigned int i = 0; i < vecSubRules.size(); i++)
vecSubRules[i]->GetPlayers(item, validPlayers, players);
if (std::find(validPlayers.begin(), validPlayers.end(), m_playerName) != validPlayers.end())
{
CLog::Log(LOGDEBUG, "CPlayerSelectionRule::GetPlayers: adding player: %s for rule: %s", m_playerName.c_str(), m_name.c_str());
players.push_back(m_playerName);
}
}