本文整理汇总了C++中CDateTimeSpan::GetHours方法的典型用法代码示例。如果您正苦于以下问题:C++ CDateTimeSpan::GetHours方法的具体用法?C++ CDateTimeSpan::GetHours怎么用?C++ CDateTimeSpan::GetHours使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDateTimeSpan
的用法示例。
在下文中一共展示了CDateTimeSpan::GetHours方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTime
int CDVDInputStreamHTSP::GetTime()
{
CDateTimeSpan time;
time = CDateTime::GetUTCDateTime()
- CDateTime((time_t)m_event.start);
return time.GetDays() * 1000 * 60 * 60 * 24
+ time.GetHours() * 1000 * 60 * 60
+ time.GetMinutes() * 1000 * 60
+ time.GetSeconds() * 1000;
}
示例2: Compare
int CPVRTimerInfoTag::Compare(const CPVRTimerInfoTag &timer) const
{
int iTimerDelta = 0;
if (StartAsUTC() != timer.StartAsUTC())
{
CDateTimeSpan timerDelta = StartAsUTC() - timer.StartAsUTC();
iTimerDelta = (timerDelta.GetSeconds() + timerDelta.GetMinutes() * 60 + timerDelta.GetHours() * 3600 + timerDelta.GetDays() * 86400);
}
/* if the start times are equal, compare the priority of the timers */
return iTimerDelta == 0 ?
timer.m_iPriority - m_iPriority :
iTimerDelta;
}
示例3: GetStartTime
int CMythFile::GetStartTime()
{
if(m_program && m_recorder)
{
cmyth_timestamp_t start = m_dll->proginfo_start(m_program);
CDateTimeSpan time;
time = CDateTime::GetCurrentDateTime()
- CDateTime(m_dll->timestamp_to_unixtime(start));
m_dll->ref_release(start);
return time.GetDays() * 1000 * 60 * 60 * 24
+ time.GetHours() * 1000 * 60 * 60
+ time.GetMinutes() * 1000 * 60
+ time.GetSeconds() * 1000;
}
return 0;
}
示例4: GetStartTime
int CPVRGUIInfo::GetStartTime(void) const
{
CSingleLock lock(m_critSection);
if (m_playingEpgTag || m_iTimeshiftStartTime)
{
/* Calculate here the position we have of the running live TV event.
* "position in ms" = ("current UTC" - "event start UTC") * 1000
*/
CDateTime current = m_iTimeshiftPlayTime;
CDateTime start = m_playingEpgTag ? m_playingEpgTag->StartAsUTC() : m_iTimeshiftStartTime;
CDateTimeSpan time = current > start ? current - start : CDateTimeSpan(0, 0, 0, 0);
return (time.GetDays() * 60 * 60 * 24
+ time.GetHours() * 60 * 60
+ time.GetMinutes() * 60
+ time.GetSeconds()) * 1000;
}
else
{
return 0;
}
}
示例5: GetGuideForChannel
bool CMythDirectory::GetGuideForChannel(const CStdString& base, CFileItemList &items, int channelNumber)
{
cmyth_database_t database = m_session->GetDatabase();
if (!database)
{
CLog::Log(LOGERROR, "%s - Could not get database", __FUNCTION__);
return false;
}
time_t now;
time(&now);
time_t end = now + (24 * 60 * 60); // How many seconds of EPG from now we should grab, 24 hours in seconds
cmyth_program_t *program = NULL;
// TODO: See if there is a way to just get the entries for the chosen channel rather than ALL
int count = m_dll->mysql_get_guide(database, &program, now, end);
CLog::Log(LOGDEBUG, "%s - %i entries in guide data", __FUNCTION__, count);
if (count <= 0)
return false;
for (int i = 0; i < count; i++)
{
if (program[i].channum == channelNumber)
{
CFileItemPtr item(new CFileItem("", false)); // No path for guide entries
/*
* Set the FileItem meta data.
*/
CStdString title = program[i].title; // e.g. Mythbusters
CStdString subtitle = program[i].subtitle; // e.g. The Pirate Special
CDateTime localstart;
if (program[i].starttime)
localstart = CTimeUtils::GetLocalTime(program[i].starttime);
item->m_strTitle = StringUtils::Format("%s - %s",
localstart.GetAsLocalizedTime("HH:mm", false).c_str(),
title.c_str()); // e.g. 20:30 - Mythbusters
if (!subtitle.empty())
item->m_strTitle += " - \"" + subtitle + "\""; // e.g. 20:30 - Mythbusters - "The Pirate Special"
item->m_dateTime = localstart;
/*
* Set the VideoInfoTag meta data so it matches the FileItem meta data where possible.
*/
CVideoInfoTag* tag = item->GetVideoInfoTag();
tag->m_strTitle = title;
if (!subtitle.empty())
tag->m_strTitle += " - \"" + subtitle + "\""; // e.g. Mythbusters - "The Pirate Special"
tag->m_strShowTitle = title;
tag->m_strOriginalTitle = title;
tag->m_strPlotOutline = subtitle;
tag->m_strPlot = program[i].description;
// TODO: Strip out the subtitle from the description if it is present at the start?
// TODO: Do we need to add the subtitle to the start of the plot if not already as it used to? Seems strange, should be handled by skin?
tag->m_genre = StringUtils::Split(program[i].category, g_advancedSettings.m_videoItemSeparator); // e.g. Sports
tag->m_strAlbum = program[i].callsign; // e.g. TV3
CDateTime start(program[i].starttime);
CDateTime end(program[i].endtime);
CDateTimeSpan runtime = end - start;
tag->m_duration = runtime.GetSeconds() + runtime.GetMinutes() * 60 + runtime.GetHours() * 3600;
tag->m_iSeason = 0; // So XBMC treats the content as an episode and displays tag information.
tag->m_iEpisode = 0;
items.Add(item);
}
}
/*
* Items are sorted as added to the list (in ascending date order). Specifying sorting by date can
* result in the guide being shown in the wrong order for skins that sort by date in descending
* order by default with no option to change to ascending, e.g. Confluence.
*/
items.AddSortMethod(SortByNone, 552 /* Date */, LABEL_MASKS("%K", "%J")); // Still leave the date label
m_dll->ref_release(program);
return true;
}
示例6: UpdateItem
bool CCMythSession::UpdateItem(CFileItem &item, cmyth_proginfo_t info)
{
if(!info)
return false;
CVideoInfoTag* tag = item.GetVideoInfoTag();
tag->m_strAlbum = GetValue(m_dll->proginfo_chansign(info));
tag->m_strShowTitle = GetValue(m_dll->proginfo_title(info));
tag->m_strPlotOutline = GetValue(m_dll->proginfo_subtitle(info));
tag->m_strPlot = GetValue(m_dll->proginfo_description(info));
tag->m_strGenre = GetValue(m_dll->proginfo_category(info));
if(tag->m_strPlot.Left(tag->m_strPlotOutline.length()) != tag->m_strPlotOutline && !tag->m_strPlotOutline.IsEmpty())
tag->m_strPlot = tag->m_strPlotOutline + '\n' + tag->m_strPlot;
tag->m_strOriginalTitle = tag->m_strShowTitle;
tag->m_strTitle = tag->m_strAlbum;
if(tag->m_strShowTitle.length() > 0)
tag->m_strTitle += " : " + tag->m_strShowTitle;
CDateTimeSpan span = GetValue(m_dll->proginfo_rec_start(info)) - GetValue(m_dll->proginfo_rec_end(info));
StringUtils::SecondsToTimeString(span.GetSeconds() +
span.GetMinutes() * 60 +
span.GetHours() * 3600, tag->m_strRuntime, TIME_FORMAT_GUESS);
tag->m_iSeason = 0; /* set this so xbmc knows it's a tv show */
tag->m_iEpisode = 0;
item.m_strTitle = GetValue(m_dll->proginfo_chanstr(info));
item.m_dateTime = GetValue(m_dll->proginfo_rec_start(info));
item.m_dwSize = m_dll->proginfo_length(info);
if(m_dll->proginfo_rec_status(info) == RS_RECORDING)
{
tag->m_strStatus = "livetv";
CStdString temp;
temp = GetValue(m_dll->proginfo_chanicon(info));
if(temp.length() > 0)
{
CURI url(item.m_strPath);
url.SetFileName("files/channels/" + temp);
temp = url.Get();
item.SetThumbnailImage(temp);
}
temp = GetValue(m_dll->proginfo_chanstr(info));
if(temp.length() > 0)
{
CURI url(item.m_strPath);
url.SetFileName("channels/" + temp + ".ts");
temp = url.Get();
if(item.m_strPath != temp)
item.m_strPath = temp;
}
item.SetCachedVideoThumb();
}
return true;
}
示例7: GetTotalSeconds
static int GetTotalSeconds(const CDateTimeSpan& ts)
{
int hours = ts.GetHours() + ts.GetDays() * 24;
int minutes = ts.GetMinutes() + hours * 60;
return ts.GetSeconds() + minutes * 60;
}
示例8: GetGuideForChannel
bool CCMythDirectory::GetGuideForChannel(const CStdString& base, CFileItemList &items, int channelNumber)
{
cmyth_database_t database = m_session->GetDatabase();
if (!database)
{
CLog::Log(LOGERROR, "%s - Could not get database", __FUNCTION__);
return false;
}
time_t now;
time(&now);
// this sets how many seconds of EPG from now we should grab
time_t end = now + (1 * 24 * 60 * 60);
cmyth_program_t *program = NULL;
int count = m_dll->mysql_get_guide(database, &program, now, end);
CLog::Log(LOGDEBUG, "%s - %i entries of guide data", __FUNCTION__, count);
if (count <= 0)
return false;
for (int i = 0; i < count; i++)
{
if (program[i].channum == channelNumber)
{
CStdString path;
path.Format("%s%s", base.c_str(), program[i].title);
CDateTime starttime(program[i].starttime);
CDateTime endtime(program[i].endtime);
CStdString title;
title.Format("%s - %s", starttime.GetAsLocalizedTime("HH:mm", false), program[i].title);
CFileItemPtr item(new CFileItem(title, false));
item->SetLabel(title);
item->m_dateTime = starttime;
CVideoInfoTag* tag = item->GetVideoInfoTag();
tag->m_strAlbum = GetValue(program[i].callsign);
tag->m_strShowTitle = GetValue(program[i].title);
tag->m_strPlotOutline = GetValue(program[i].subtitle);
tag->m_strPlot = GetValue(program[i].description);
tag->m_strGenre = GetValue(program[i].category);
if(tag->m_strPlot.Left(tag->m_strPlotOutline.length()) != tag->m_strPlotOutline && !tag->m_strPlotOutline.IsEmpty())
tag->m_strPlot = tag->m_strPlotOutline + '\n' + tag->m_strPlot;
tag->m_strOriginalTitle = tag->m_strShowTitle;
tag->m_strTitle = tag->m_strAlbum;
if(tag->m_strShowTitle.length() > 0)
tag->m_strTitle += " : " + tag->m_strShowTitle;
CDateTimeSpan runtime = endtime - starttime;
StringUtils::SecondsToTimeString( runtime.GetSeconds()
+ runtime.GetMinutes() * 60
+ runtime.GetHours() * 3600, tag->m_strRuntime);
tag->m_iSeason = 0; /* set this so xbmc knows it's a tv show */
tag->m_iEpisode = 0;
tag->m_strStatus = program[i].rec_status;
items.Add(item);
}
}
// Sort by date only.
items.AddSortMethod(SORT_METHOD_DATE, 552 /* Date */, LABEL_MASKS("%L", "%J", "%L", ""));
m_dll->ref_release(program);
return true;
}