kodi
PVRGUIActionsTimers.h
1 /*
2  * Copyright (C) 2016-2022 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "pvr/IPVRComponent.h"
12 #include "pvr/settings/PVRSettings.h"
13 
14 #include <memory>
15 
16 class CFileItem;
17 
18 namespace PVR
19 {
20 class CPVRChannel;
21 class CPVRTimerInfoTag;
22 
24 {
25 public:
27  ~CPVRGUIActionsTimers() override = default;
28 
34  bool AddTimer(bool bRadio) const;
35 
43  bool AddTimer(const CFileItem& item, bool bShowTimerSettings) const;
44 
50  bool AddTimer(const std::shared_ptr<CPVRTimerInfoTag>& item) const;
51 
62  bool AddTimerRule(const CFileItem& item,
63  bool bShowTimerSettings,
64  bool bFallbackToOneShotTimer) const;
65 
71  bool ToggleTimer(const CFileItem& item) const;
72 
78  bool ToggleTimerState(const CFileItem& item) const;
79 
85  bool EditTimer(const CFileItem& item) const;
86 
92  bool EditTimerRule(const CFileItem& item) const;
93 
99  std::shared_ptr<CFileItem> GetTimerRule(const CFileItem& item) const;
100 
106  bool DeleteTimer(const CFileItem& item) const;
107 
113  bool DeleteTimerRule(const CFileItem& item) const;
114 
120 
127  bool SetRecordingOnChannel(const std::shared_ptr<CPVRChannel>& channel, bool bOnOff);
128 
134  bool StopRecording(const CFileItem& item) const;
135 
141  bool AddReminder(const CFileItem& item) const;
142 
146  void AnnounceReminders() const;
147 
148 private:
150  CPVRGUIActionsTimers const& operator=(CPVRGUIActionsTimers const&) = delete;
151 
157  bool ShowTimerSettings(const std::shared_ptr<CPVRTimerInfoTag>& timer) const;
158 
170  bool AddTimer(const CFileItem& item,
171  bool bCreateRule,
172  bool bShowTimerSettings,
173  bool bFallbackToOneShotTimer) const;
174 
185  bool DeleteTimer(const CFileItem& item, bool bIsRecording, bool bDeleteRule) const;
186 
197  bool DeleteTimer(const std::shared_ptr<CPVRTimerInfoTag>& timer,
198  bool bIsRecording,
199  bool bDeleteRule) const;
200 
209  bool ConfirmDeleteTimer(const std::shared_ptr<const CPVRTimerInfoTag>& timer,
210  bool& bDeleteRule) const;
211 
217  bool ConfirmStopRecording(const std::shared_ptr<const CPVRTimerInfoTag>& timer) const;
218 
223  void AnnounceReminder(const std::shared_ptr<CPVRTimerInfoTag>& timer) const;
224 
225  CPVRSettings m_settings;
226  mutable bool m_bReminderAnnouncementRunning{false};
227 };
228 
229 namespace GUI
230 {
231 // pretty scope and name
232 using Timers = CPVRGUIActionsTimers;
233 } // namespace GUI
234 
235 } // namespace PVR
bool EditTimerRule(const CFileItem &item) const
Open the timer settings dialog to edit an existing timer rule.
Definition: PVRGUIActionsTimers.cpp:616
bool DeleteTimerRule(const CFileItem &item) const
Delete a timer rule, always showing a confirmation dialog.
Definition: PVRGUIActionsTimers.cpp:647
bool ToggleRecordingOnPlayingChannel()
Toggle recording on the currently playing channel, if any.
Definition: PVRGUIActionsTimers.cpp:351
Definition: ContextMenuManager.h:24
bool StopRecording(const CFileItem &item) const
Stop a currently active recording, always showing a confirmation dialog.
Definition: PVRGUIActionsTimers.cpp:785
bool ToggleTimer(const CFileItem &item) const
Creates or deletes a timer for the given epg tag.
Definition: PVRGUIActionsTimers.cpp:532
bool SetRecordingOnChannel(const std::shared_ptr< CPVRChannel > &channel, bool bOnOff)
Start or stop recording on a given channel.
Definition: PVRGUIActionsTimers.cpp:362
std::shared_ptr< CFileItem > GetTimerRule(const CFileItem &item) const
Get the timer rule for a given timer.
Definition: PVRGUIActionsTimers.cpp:625
Definition: IPVRComponent.h:13
bool DeleteTimer(const CFileItem &item) const
Delete a timer, always showing a confirmation dialog.
Definition: PVRGUIActionsTimers.cpp:642
bool AddReminder(const CFileItem &item) const
Create a new reminder timer, non-interactive.
Definition: PVRGUIActionsTimers.cpp:79
Definition: PVRGUIActionsTimers.h:23
bool AddTimer(bool bRadio) const
Open the timer settings dialog to create a new tv or radio timer.
Definition: PVRGUIActionsTimers.cpp:107
bool ToggleTimerState(const CFileItem &item) const
Toggles a given timer&#39;s enabled/disabled state.
Definition: PVRGUIActionsTimers.cpp:549
bool EditTimer(const CFileItem &item) const
Open the timer settings dialog to edit an existing timer.
Definition: PVRGUIActionsTimers.cpp:570
Definition: PVRSettings.h:27
bool AddTimerRule(const CFileItem &item, bool bShowTimerSettings, bool bFallbackToOneShotTimer) const
Create a new timer rule, either interactive or non-interactive.
Definition: PVRGUIActionsTimers.cpp:122
Represents a file on a share.
Definition: FileItem.h:102
void AnnounceReminders() const
Announce due reminders, if any.
Definition: PVRGUIActionsTimers.cpp:996