本文整理汇总了C++中CPVRChannelPtr::ChannelNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ CPVRChannelPtr::ChannelNumber方法的具体用法?C++ CPVRChannelPtr::ChannelNumber怎么用?C++ CPVRChannelPtr::ChannelNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPVRChannelPtr
的用法示例。
在下文中一共展示了CPVRChannelPtr::ChannelNumber方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddToGroup
bool CPVRChannelGroupInternal::AddToGroup(CPVRChannel &channel, int iChannelNumber /* = 0 */)
{
CSingleLock lock(m_critSection);
bool bReturn(false);
/* get the actual channel since this is called from a fileitemlist copy */
CPVRChannelPtr realChannel = GetByChannelID(channel.ChannelID());
if (!realChannel)
return bReturn;
/* switch the hidden flag */
if (realChannel->IsHidden())
{
realChannel->SetHidden(false);
m_iHiddenChannels--;
SortAndRenumber();
}
/* move this channel and persist */
bReturn = (iChannelNumber > 0l) ?
MoveChannel(realChannel->ChannelNumber(), iChannelNumber, true) :
MoveChannel(realChannel->ChannelNumber(), m_members.size() - m_iHiddenChannels, true);
if (m_bLoaded)
realChannel->Persist();
return bReturn;
}
示例2: GetMatch
CFileItemPtr CPVRTimers::GetMatch(const CEpgInfoTag *Epg)
{
CSingleLock lock(m_critSection);
for (map<CDateTime, vector<CPVRTimerInfoTag *>* >::iterator it = m_tags.begin(); it != m_tags.end(); it++)
{
for (unsigned int iTimerPtr = 0; iTimerPtr < it->second->size(); iTimerPtr++)
{
CPVRTimerInfoTag *timer = it->second->at(iTimerPtr);
CPVRChannelPtr channel;
if (Epg)
channel = Epg->ChannelTag();
if (!channel)
continue;
if (timer->ChannelNumber() != channel->ChannelNumber()
|| timer->m_bIsRadio != channel->IsRadio())
continue;
if (timer->StartAsUTC() > Epg->StartAsUTC() || timer->EndAsUTC() < Epg->EndAsUTC())
continue;
CFileItemPtr fileItem(new CFileItem(*timer));
return fileItem;
}
}
CFileItemPtr fileItem;
return fileItem;
}
示例3: HideChannel
bool CPVRGUIActions::HideChannel(const CFileItemPtr &item) const
{
const CPVRChannelPtr channel(item->GetPVRChannelInfoTag());
/* check if the channel tag is valid */
if (!channel || channel->ChannelNumber() <= 0)
return false;
if (!CGUIDialogYesNo::ShowAndGetInput(CVariant{19054}, // "Hide channel"
CVariant{19039}, // "Are you sure you want to hide this channel?"
CVariant{""},
CVariant{channel->ChannelName()}))
return false;
if (!g_PVRChannelGroups->GetGroupAll(channel->IsRadio())->RemoveFromGroup(channel))
return false;
CGUIWindowPVRBase *pvrWindow = dynamic_cast<CGUIWindowPVRBase *>(g_windowManager.GetWindow(g_windowManager.GetActiveWindow()));
if (pvrWindow)
pvrWindow->DoRefresh();
else
CLog::Log(LOGERROR, "CPVRGUIActions - %s - called on non-pvr window. no refresh possible.", __FUNCTION__);
return true;
}
示例4: CreateInstantTimerTag
CPVRTimerInfoTagPtr CPVRTimerInfoTag::CreateInstantTimerTag(const CPVRChannelPtr &channel)
{
if (!channel)
{
CLog::Log(LOGERROR, "%s - no channel set", __FUNCTION__);
return CPVRTimerInfoTagPtr();
}
CEpgInfoTagPtr epgTag(channel->GetEPGNow());
CPVRTimerInfoTagPtr newTimer;
if (epgTag)
newTimer = CreateFromEpg(epgTag);
if (!newTimer)
{
newTimer.reset(new CPVRTimerInfoTag);
newTimer->m_iClientIndex = PVR_TIMER_NO_CLIENT_INDEX;
newTimer->m_iParentClientIndex = PVR_TIMER_NO_PARENT;
newTimer->m_channel = channel;
newTimer->m_strTitle = channel->ChannelName();
newTimer->m_iChannelNumber = channel->ChannelNumber();
newTimer->m_iClientChannelUid = channel->UniqueID();
newTimer->m_iClientId = channel->ClientID();
newTimer->m_bIsRadio = channel->IsRadio();
// timertype: manual one-shot timer for given client
CPVRTimerTypePtr timerType(CPVRTimerType::CreateFromAttributes(
PVR_TIMER_TYPE_IS_MANUAL, PVR_TIMER_TYPE_IS_REPEATING | PVR_TIMER_TYPE_FORBIDS_NEW_INSTANCES, channel->ClientID()));
if (!timerType)
{
CLog::Log(LOGERROR, "%s - unable to create one shot manual timer type", __FUNCTION__);
return CPVRTimerInfoTagPtr();
}
newTimer->SetTimerType(timerType);
}
// no matter the timer was created from an epg tag, set special instant timer start and end times.
CDateTime startTime(0);
newTimer->SetStartFromUTC(startTime);
newTimer->m_iMarginStart = 0; /* set the start margin to 0 for instant timers */
int iDuration = CSettings::GetInstance().GetInt(CSettings::SETTING_PVRRECORD_INSTANTRECORDTIME);
CDateTime endTime = CDateTime::GetUTCDateTime() + CDateTimeSpan(0, 0, iDuration ? iDuration : 120, 0);
newTimer->SetEndFromUTC(endTime);
/* update summary string according to changed start/end time */
newTimer->UpdateSummary();
/* set epg tag at timer & timer at epg tag */
newTimer->UpdateEpgInfoTag();
/* unused only for reference */
newTimer->m_strFileNameAndPath = CPVRTimersPath::PATH_NEW;
return newTimer;
}
示例5: InstantTimer
bool CPVRTimers::InstantTimer(const CPVRChannelPtr &channel)
{
assert(channel.get());
if (!g_PVRManager.CheckParentalLock(channel))
return false;
CEpgInfoTagPtr epgTag(channel->GetEPGNow());
CPVRTimerInfoTagPtr newTimer;
if (epgTag)
newTimer = CPVRTimerInfoTag::CreateFromEpg(epgTag);
if (!newTimer)
{
newTimer.reset(new CPVRTimerInfoTag);
/* set the timer data */
newTimer->m_iClientIndex = -1;
newTimer->m_strTitle = channel->ChannelName();
newTimer->m_strSummary = g_localizeStrings.Get(19056);
newTimer->m_iChannelNumber = channel->ChannelNumber();
newTimer->m_iClientChannelUid = channel->UniqueID();
newTimer->m_iClientId = channel->ClientID();
newTimer->m_bIsRadio = channel->IsRadio();
/* generate summary string */
newTimer->m_strSummary = StringUtils::Format("%s %s %s %s %s",
newTimer->StartAsLocalTime().GetAsLocalizedDate().c_str(),
g_localizeStrings.Get(19159).c_str(),
newTimer->StartAsLocalTime().GetAsLocalizedTime("", false).c_str(),
g_localizeStrings.Get(19160).c_str(),
newTimer->EndAsLocalTime().GetAsLocalizedTime("", false).c_str());
}
CDateTime startTime(0);
newTimer->SetStartFromUTC(startTime);
newTimer->m_iMarginStart = 0; /* set the start margin to 0 for instant timers */
int iDuration = CSettings::GetInstance().GetInt(CSettings::SETTING_PVRRECORD_INSTANTRECORDTIME);
CDateTime endTime = CDateTime::GetUTCDateTime() + CDateTimeSpan(0, 0, iDuration ? iDuration : 120, 0);
newTimer->SetEndFromUTC(endTime);
/* unused only for reference */
newTimer->m_strFileNameAndPath = CPVRTimersPath::PATH_NEW;
bool bReturn = newTimer->AddToClient();
if (!bReturn)
CLog::Log(LOGERROR, "PVRTimers - %s - unable to add an instant timer on the client", __FUNCTION__);
return bReturn;
}
示例6: SelectChannel
bool CDVDInputStreamPVRManager::SelectChannel(const CPVRChannelPtr &channel)
{
assert(channel.get());
PVR_CLIENT client;
if (!SupportsChannelSwitch())
{
CFileItem item(channel);
return CloseAndOpen(item.GetPath().c_str());
}
else if (m_pLiveTV)
{
return m_pLiveTV->SelectChannel(channel->ChannelNumber());
}
return false;
}
示例7: InitializeChannelsList
void CGUIDialogPVRTimerSettings::InitializeChannelsList()
{
m_channelEntries.clear();
CFileItemList channelsList;
g_PVRChannelGroups->GetGroupAll(m_bIsRadio)->GetMembers(channelsList);
for (int i = 0; i < channelsList.Size(); ++i)
{
const CPVRChannelPtr channel(channelsList[i]->GetPVRChannelInfoTag());
std::string channelDescription(
StringUtils::Format("%i %s", channel->ChannelNumber(), channel->ChannelName().c_str()));
m_channelEntries.insert(
std::make_pair(i, ChannelDescriptor(channel->UniqueID(), channel->ClientID(), channelDescription)));
}
// Add special "any channel" entry (used for epg-based repeating timers).
m_channelEntries.insert(
std::make_pair(
ENTRY_ANY_CHANNEL, ChannelDescriptor(PVR_CHANNEL_INVALID_UID, 0, g_localizeStrings.Get(809))));
}
示例8: ActionPlayEpg
bool CGUIWindowPVRCommon::ActionPlayEpg(CFileItem *item)
{
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return false;
CPVRChannelPtr channel = epgTag->ChannelTag();
if (!channel || channel->ChannelNumber() > 0 ||
!g_PVRManager.CheckParentalLock(*channel))
return false;
PlayBackRet ret = g_application.PlayFile(CFileItem(*channel));
if (ret == PLAYBACK_FAIL)
{
CStdString msg;
msg.Format(g_localizeStrings.Get(19035).c_str(), channel->ChannelName().c_str()); // CHANNELNAME could not be played. Check the log for details.
CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0);
}
return ret == PLAYBACK_OK;
}
示例9: ActionPlayEpg
bool CGUIWindowPVRCommon::ActionPlayEpg(CFileItem *item)
{
bool bReturn = false;
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return bReturn;
CPVRChannelPtr channel = epgTag->ChannelTag();
if (!channel || channel->ChannelNumber() > 0 ||
!g_PVRManager.CheckParentalLock(*channel))
return bReturn;
bReturn = g_application.PlayFile(CFileItem(*channel));
if (!bReturn)
{
/* cannot play file */
CGUIDialogOK::ShowAndGetInput(19033,0,19035,0);
}
return bReturn;
}
示例10: OnAction
//.........这里部分代码省略.........
m_bShowCurrentTime = !m_bShowCurrentTime;
if(!m_bShowCurrentTime)
g_infoManager.SetDisplayAfterSeek(0); //Force display off
g_infoManager.SetShowTime(m_bShowCurrentTime);
return true;
break;
case ACTION_SHOW_INFO:
{
CGUIDialogFullScreenInfo* pDialog = (CGUIDialogFullScreenInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog)
{
CFileItem item(g_application.CurrentFileItem());
pDialog->DoModal();
return true;
}
break;
}
case REMOTE_0:
case REMOTE_1:
case REMOTE_2:
case REMOTE_3:
case REMOTE_4:
case REMOTE_5:
case REMOTE_6:
case REMOTE_7:
case REMOTE_8:
case REMOTE_9:
{
if (g_application.CurrentFileItem().IsLiveTV())
{
CPVRChannelPtr channel;
int iChannelNumber = -1;
g_PVRManager.GetCurrentChannel(channel);
if (action.GetID() == REMOTE_0)
{
iChannelNumber = g_PVRManager.GetPreviousChannel();
if (iChannelNumber > 0)
CLog::Log(LOGDEBUG, "switch to channel number %d", iChannelNumber);
else
CLog::Log(LOGDEBUG, "no previous channel number found");
}
else
{
int autoCloseTime = CSettings::Get().GetBool("pvrplayback.confirmchannelswitch") ? 0 : g_advancedSettings.m_iPVRNumericChannelSwitchTimeout;
CStdString strChannel;
strChannel.Format("%i", action.GetID() - REMOTE_0);
if (CGUIDialogNumeric::ShowAndGetNumber(strChannel, g_localizeStrings.Get(19000), autoCloseTime) || autoCloseTime)
iChannelNumber = atoi(strChannel.c_str());
}
if (iChannelNumber > 0 && iChannelNumber != channel->ChannelNumber())
{
CPVRChannelGroupPtr selectedGroup = g_PVRManager.GetPlayingGroup(channel->IsRadio());
CFileItemPtr channel = selectedGroup->GetByChannelNumber(iChannelNumber);
if (!channel || !channel->HasPVRChannelInfoTag())
return false;
OnAction(CAction(ACTION_CHANNEL_SWITCH, (float)iChannelNumber));
}
}
else
{
ChangetheTimeCode(action.GetID());
示例11: OnAction
//.........这里部分代码省略.........
break;
case ACTION_AUDIO_NEXT_LANGUAGE:
{
if (g_application.m_pPlayer->GetAudioStreamCount() == 1)
return true;
if(g_settings.m_currentVideoSettings.m_AudioStream < 0)
g_settings.m_currentVideoSettings.m_AudioStream = g_application.m_pPlayer->GetAudioStream();
g_settings.m_currentVideoSettings.m_AudioStream++;
if (g_settings.m_currentVideoSettings.m_AudioStream >= g_application.m_pPlayer->GetAudioStreamCount())
g_settings.m_currentVideoSettings.m_AudioStream = 0;
g_application.m_pPlayer->SetAudioStream(g_settings.m_currentVideoSettings.m_AudioStream); // Set the audio stream to the one selected
CStdString aud;
g_application.m_pPlayer->GetAudioStreamName(g_settings.m_currentVideoSettings.m_AudioStream,aud);
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(460), aud, DisplTime, false, MsgTime);
return true;
}
break;
case REMOTE_0:
case REMOTE_1:
case REMOTE_2:
case REMOTE_3:
case REMOTE_4:
case REMOTE_5:
case REMOTE_6:
case REMOTE_7:
case REMOTE_8:
case REMOTE_9:
{
if (g_application.CurrentFileItem().IsLiveTV())
{
CPVRChannelPtr channel;
int iChannelNumber = -1;
g_PVRManager.GetCurrentChannel(channel);
if (action.GetID() == REMOTE_0)
{
iChannelNumber = g_PVRManager.GetPreviousChannel();
if (iChannelNumber > 0)
CLog::Log(LOGDEBUG, "switch to channel number %d", iChannelNumber);
else
CLog::Log(LOGDEBUG, "no previous channel number found");
}
else
{
int autoCloseTime = g_guiSettings.GetBool("pvrplayback.switchautoclose") ? 1500 : 0;
CStdString strChannel;
strChannel.Format("%i", action.GetID() - REMOTE_0);
if (CGUIDialogNumeric::ShowAndGetNumber(strChannel, g_localizeStrings.Get(19000), autoCloseTime) || autoCloseTime)
iChannelNumber = atoi(strChannel.c_str());
}
if (iChannelNumber > 0 && iChannelNumber != channel->ChannelNumber())
{
CPVRChannelGroupPtr selectedGroup = g_PVRManager.GetPlayingGroup(channel->IsRadio());
CFileItemPtr channel = selectedGroup->GetByChannelNumber(iChannelNumber);
if (!channel || !channel->HasPVRChannelInfoTag())
return false;
OnAction(CAction(ACTION_CHANNEL_SWITCH, (float)iChannelNumber));
}
}
else
{
ChangetheTimeCode(action.GetID());
示例12: CreateFromEpg
CPVRTimerInfoTagPtr CPVRTimerInfoTag::CreateFromEpg(const CEpgInfoTagPtr &tag)
{
/* create a new timer */
CPVRTimerInfoTagPtr newTag(new CPVRTimerInfoTag());
if (!newTag)
{
CLog::Log(LOGERROR, "%s - couldn't create new timer", __FUNCTION__);
return CPVRTimerInfoTagPtr();
}
/* check if a valid channel is set */
CPVRChannelPtr channel = tag->ChannelTag();
if (!channel)
{
CLog::Log(LOGERROR, "%s - no channel set", __FUNCTION__);
return CPVRTimerInfoTagPtr();
}
/* check if the epg end date is in the future */
if (tag->EndAsLocalTime() < CDateTime::GetCurrentDateTime())
{
CLog::Log(LOGERROR, "%s - end time is in the past", __FUNCTION__);
return CPVRTimerInfoTagPtr();
}
/* set the timer data */
CDateTime newStart = tag->StartAsUTC();
CDateTime newEnd = tag->EndAsUTC();
newTag->m_iClientIndex = -1;
newTag->m_strTitle = tag->Title().empty() ? channel->ChannelName() : tag->Title();
newTag->m_iChannelNumber = channel->ChannelNumber();
newTag->m_iClientChannelUid = channel->UniqueID();
newTag->m_iClientId = channel->ClientID();
newTag->m_bIsRadio = channel->IsRadio();
newTag->m_iGenreType = tag->GenreType();
newTag->m_iGenreSubType = tag->GenreSubType();
newTag->m_channel = channel;
newTag->SetStartFromUTC(newStart);
newTag->SetEndFromUTC(newEnd);
if (tag->Plot().empty())
{
newTag->m_strSummary= StringUtils::Format("%s %s %s %s %s",
newTag->StartAsLocalTime().GetAsLocalizedDate().c_str(),
g_localizeStrings.Get(19159).c_str(),
newTag->StartAsLocalTime().GetAsLocalizedTime("", false).c_str(),
g_localizeStrings.Get(19160).c_str(),
newTag->EndAsLocalTime().GetAsLocalizedTime("", false).c_str());
}
else
{
newTag->m_strSummary = tag->Plot();
}
newTag->m_epgTag = g_EpgContainer.GetById(tag->EpgID())->GetTag(tag->StartAsUTC());
/* unused only for reference */
newTag->m_strFileNameAndPath = "pvr://timers/new";
return newTag;
}
示例13: ChannelNumber
int CPVRTimerInfoTag::ChannelNumber() const
{
CPVRChannelPtr channeltag = ChannelTag();
return channeltag ? channeltag->ChannelNumber() : 0;
}
示例14: Update
void CGUIDialogPVRChannelManager::Update()
{
// lock our display, as this window is rendered from the player thread
g_graphicsContext.Lock();
m_viewControl.SetCurrentView(CONTROL_LIST_CHANNELS);
// empty the lists ready for population
Clear();
CPVRChannelGroupPtr channels = g_PVRChannelGroups->GetGroupAll(m_bIsRadio);
// No channels available, nothing to do.
if(!channels)
return;
std::vector<PVRChannelGroupMember> groupMembers(channels->GetMembers());
CFileItemPtr channelFile;
for (std::vector<PVRChannelGroupMember>::const_iterator it = groupMembers.begin(); it != groupMembers.end(); ++it)
{
channelFile = CFileItemPtr(new CFileItem((*it).channel));
if (!channelFile || !channelFile->HasPVRChannelInfoTag())
continue;
const CPVRChannelPtr channel(channelFile->GetPVRChannelInfoTag());
channelFile->SetProperty("ActiveChannel", !channel->IsHidden());
channelFile->SetProperty("Name", channel->ChannelName());
channelFile->SetProperty("UseEPG", channel->EPGEnabled());
channelFile->SetProperty("Icon", channel->IconPath());
channelFile->SetProperty("EPGSource", (int)0);
channelFile->SetProperty("ParentalLocked", channel->IsLocked());
channelFile->SetProperty("Number", StringUtils::Format("%i", channel->ChannelNumber()));
std::string clientName;
g_PVRClients->GetClientName(channel->ClientID(), clientName);
channelFile->SetProperty("ClientName", clientName);
channelFile->SetProperty("SupportsSettings", g_PVRClients->SupportsChannelSettings(channel->ClientID()));
m_channelItems->Add(channelFile);
}
{
std::vector< std::pair<std::string, int> > labels;
labels.push_back(std::make_pair(g_localizeStrings.Get(19210), 0));
/// TODO: Add Labels for EPG scrapers here
SET_CONTROL_LABELS(SPIN_EPGSOURCE_SELECTION, 0, &labels);
}
m_clientsWithSettingsList = g_PVRClients->GetClientsSupportingChannelSettings(m_bIsRadio);
if (!m_clientsWithSettingsList.empty())
m_bAllowNewChannel = true;
if (m_bAllowNewChannel)
SET_CONTROL_VISIBLE(BUTTON_NEW_CHANNEL);
else
SET_CONTROL_HIDDEN(BUTTON_NEW_CHANNEL);
Renumber();
m_viewControl.SetItems(*m_channelItems);
m_viewControl.SetSelectedItem(m_iSelected);
g_graphicsContext.Unlock();
}
示例15: OnSettingChanged
void CGUIDialogPVRTimerSettings::OnSettingChanged(const CSetting *setting)
{
if (setting == NULL)
return;
CGUIDialogSettingsManualBase::OnSettingChanged(setting);
CPVRTimerInfoTag* tag = m_timerItem->GetPVRTimerInfoTag();
if (tag == NULL)
return;
const std::string &settingId = setting->GetId();
if (settingId == SETTING_TMR_ACTIVE)
m_bTimerActive = static_cast<const CSettingBool*>(setting)->GetValue();
if (settingId == SETTING_TMR_RADIO || settingId == SETTING_TMR_CHNAME_TV || settingId == SETTING_TMR_CHNAME_RADIO)
{
if (settingId == SETTING_TMR_RADIO)
{
tag->m_bIsRadio = static_cast<const CSettingBool*>(setting)->GetValue();
m_selectedChannelEntry = 0;
}
else
m_selectedChannelEntry = static_cast<const CSettingInt*>(setting)->GetValue();
std::map<std::pair<bool, int>, int>::iterator itc = m_channelEntries.find(std::make_pair(tag->m_bIsRadio, m_selectedChannelEntry));
if (itc != m_channelEntries.end())
{
CPVRChannelPtr channel = g_PVRChannelGroups->GetChannelById(itc->second);
if (channel)
{
tag->m_iClientChannelUid = channel->UniqueID();
tag->m_iClientId = channel->ClientID();
tag->m_bIsRadio = channel->IsRadio();
tag->m_iChannelNumber = channel->ChannelNumber();
}
else
{
tag->m_iClientChannelUid = PVR_VIRTUAL_CHANNEL_UID;
tag->m_iClientId = PVR_VIRTUAL_CLIENT_ID;
tag->m_iChannelNumber = 0;
}
// Update channel pointer from above values
tag->UpdateChannel();
}
}
else if (settingId == SETTING_TMR_DAY)
{
m_tmp_day = static_cast<const CSettingInt*>(setting)->GetValue();
if (m_tmp_day <= 10)
SetTimerFromWeekdaySetting(*tag);
else
{
CDateTime time = CDateTime::GetCurrentDateTime();
CDateTime timestart = m_timerStartTime;
CDateTime timestop = m_timerEndTime;
int m_tmp_diff;
// get diffence of timer in days between today and timer start date
tm time_cur; time.GetAsTm(time_cur);
tm time_tmr; timestart.GetAsTm(time_tmr);
m_tmp_diff = time_tmr.tm_yday - time_cur.tm_yday;
if (time_tmr.tm_yday - time_cur.tm_yday < 0)
m_tmp_diff = 365;
CDateTime newStart = timestart + CDateTimeSpan(m_tmp_day - 11 - m_tmp_diff, 0, 0, 0);
CDateTime newEnd = timestop + CDateTimeSpan(m_tmp_day - 11 - m_tmp_diff, 0, 0, 0);
// add a day to end time if end time is before start time
// TODO: this should be removed after separate end date control was added
if (newEnd < newStart)
newEnd += CDateTimeSpan(1, 0, 0, 0);
tag->SetStartFromLocalTime(newStart);
tag->SetEndFromLocalTime(newEnd);
tag->m_bIsRepeating = false;
tag->m_iWeekdays = 0;
}
}
else if (settingId == SETTING_TMR_PRIORITY)
tag->m_iPriority = static_cast<const CSettingInt*>(setting)->GetValue();
else if (settingId == SETTING_TMR_LIFETIME)
tag->m_iLifetime = static_cast<const CSettingInt*>(setting)->GetValue();
else if (settingId == SETTING_TMR_FIRST_DAY)
{
m_tmp_iFirstDay = static_cast<const CSettingInt*>(setting)->GetValue();
CDateTime newFirstDay;
if (m_tmp_iFirstDay > 0)
newFirstDay = CDateTime::GetCurrentDateTime() + CDateTimeSpan(m_tmp_iFirstDay - 1, 0, 0, 0);
tag->SetFirstDayFromLocalTime(newFirstDay);
}
else if (settingId == SETTING_TMR_NAME)
tag->m_strTitle = static_cast<const CSettingString*>(setting)->GetValue();
else if (settingId == SETTING_TMR_DIR)
tag->m_strDirectory = static_cast<const CSettingString*>(setting)->GetValue();
//.........这里部分代码省略.........