MythTV  master
playbackbox.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // vim:set sw=4 ts=4 expandtab:
3 #ifndef PLAYBACKBOX_H_
4 #define PLAYBACKBOX_H_
5 
6 // C++ headers
7 #include <cstdint> // for [u]int[32,64]_t
8 #include <deque>
9 #include <utility>
10 #include <vector>
11 using namespace std;
12 
13 #include <QStringList>
14 #include <QDateTime>
15 #include <QMultiMap>
16 #include <QObject>
17 #include <QMutex>
18 #include <QMap>
19 #include <QSet>
20 
21 #include "jobqueue.h"
22 #include "tv_play.h"
23 
24 #include "mythscreentype.h"
25 #include "metadatafactory.h"
26 
27 // mythfrontend
28 #include "schedulecommon.h"
29 #include "programinfocache.h"
30 #include "playbackboxhelper.h"
31 
32 class QKeyEvent;
33 class QEvent;
34 class QTimer;
35 
36 class MythPlayer;
37 class MythMediaBuffer;
38 class ProgramInfo;
39 
40 class MythUIButtonList;
42 class MythUIImage;
43 class MythUIText;
44 class MythUITextEdit;
45 class MythUIButton;
46 class MythDialogBox;
47 class MythMenu;
48 class MythUIBusyDialog;
49 
50 using ProgramMap = QMap<QString,ProgramList>;
51 using Str2StrMap = QMap<QString,QString>;
52 
53 enum {
57 };
58 
60 {
61  Q_OBJECT
62  friend class PlaybackBoxListItem;
63 
64  public:
65  // ViewType values cannot change; they are stored in the database.
66  enum ViewType {
67  TitlesOnly = 0,
68  TitlesCategories = 1,
69  TitlesCategoriesRecGroups = 2,
70  TitlesRecGroups = 3,
71  Categories = 4,
72  CategoriesRecGroups = 5,
73  RecGroups = 6,
74  ViewTypes, // placeholder value, not in database
75  };
76 
77  // Sort function when TitlesOnly. Values are stored in database.
79  TitleSortAlphabetical = 0,
80  TitleSortRecPriority = 1,
81  TitleSortMethods, // placeholder value, not in database
82  };
83 
84  enum ViewMask {
85  VIEW_NONE = 0x0000,
86  VIEW_TITLES = 0x0001,
87  VIEW_CATEGORIES = 0x0002,
88  VIEW_RECGROUPS = 0x0004,
89  VIEW_WATCHLIST = 0x0008,
90  VIEW_SEARCHES = 0x0010,
91  VIEW_LIVETVGRP = 0x0020,
92  // insert new entries above here
93  VIEW_WATCHED = 0x8000
94  };
95 
97  {
101  };
102 
104  {
105  kNoFlags = 0x00,
106  kForgetHistory = 0x01,
107  kForce = 0x02,
108  kIgnore = 0x04,
109  kAllRemaining = 0x08,
110  };
111 
113  {
116  kDone
117  };
118 
119  PlaybackBox(MythScreenStack *parent, const QString& name,
120  TV *player = nullptr, bool showTV = false);
121  ~PlaybackBox(void) override;
122 
123  bool Create(void) override; // MythScreenType
124  void Load(void) override; // MythScreenType
125  void Init(void) override; // MythScreenType
126  bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
127  void customEvent(QEvent *event) override; // ScheduleCommon
128 
129  void setInitialRecGroup(const QString& initialGroup) { m_recGroup = initialGroup; }
130  static void * RunPlaybackBox(void *player, bool showTV);
131 
132  public slots:
133  void displayRecGroup(const QString &newRecGroup = "");
134  void groupSelectorClosed(void);
135 
136  protected slots:
137  void updateRecList(MythUIButtonListItem *sel_item);
139  { UpdateUIListItem(item, true); }
140  void ItemVisible(MythUIButtonListItem *item);
141  void ItemLoaded(MythUIButtonListItem *item);
142  void selected(MythUIButtonListItem *item);
143  void updateRecGroup(MythUIButtonListItem *sel_item);
144  void PlayFromBookmarkOrProgStart(MythUIButtonListItem *item = nullptr);
145  void PlayFromBookmark(MythUIButtonListItem *item = nullptr);
146  void PlayFromBeginning(MythUIButtonListItem *item = nullptr);
147  void PlayFromLastPlayPos(MythUIButtonListItem *item = nullptr);
148  void deleteSelected(MythUIButtonListItem *item);
149  void ClearBookmark();
150  void SwitchList(void);
151 
152  void ShowGroupPopup(void);
153  void StopSelected(void);
154  void showMetadataEditor();
155  void showGroupFilter();
156  void showRecGroupPasswordChanger();
157  MythMenu* createPlayFromMenu();
158  MythMenu* createRecordingMenu();
159  MythMenu* createJobMenu();
160  MythMenu* createTranscodingProfilesMenu();
161  MythMenu* createStorageMenu();
162  MythMenu* createPlaylistMenu();
163  MythMenu* createPlaylistStorageMenu();
164  MythMenu* createPlaylistJobMenu();
165  void changeProfileAndTranscode(int id);
166  void showIconHelp();
167  void ShowRecGroupChangerUsePlaylist(void) { ShowRecGroupChanger(true); }
168  void ShowPlayGroupChangerUsePlaylist(void) { ShowPlayGroupChanger(true); }
169  void ShowRecGroupChanger(bool use_playlist = false);
170  void ShowPlayGroupChanger(bool use_playlist = false);
171 
172  void popupClosed(const QString& which, int result);
173 
174  void doPlayListRandom();
175 
176  void askStop();
177 
178  void doAllowRerecord();
179 
180  void askDelete();
181  void Undelete(void);
182  void Delete(PlaybackBox::DeleteFlags flags = kNoFlags);
183  void DeleteForgetHistory(void) { Delete(kForgetHistory); }
184  void DeleteForce(void) { Delete(kForce); }
185  void DeleteIgnore(void) { Delete(kIgnore); }
187  { Delete((DeleteFlags)((int)kForce |(int)kAllRemaining)); }
189  { Delete((DeleteFlags)((int)kIgnore|(int)kAllRemaining)); }
190 
191  void ShowRecordedEpisodes();
192  void ShowAllRecordings();
193 
194  void toggleWatched();
195  void toggleAutoExpire();
196  void togglePreserveEpisode();
197 
198  void toggleView(PlaybackBox::ViewMask itemMask, bool setOn);
199  void toggleTitleView(bool setOn) { toggleView(VIEW_TITLES, setOn); }
200  void toggleCategoryView(bool setOn) { toggleView(VIEW_CATEGORIES, setOn); }
201  void toggleRecGroupView(bool setOn) { toggleView(VIEW_RECGROUPS, setOn); }
202  void toggleWatchListView(bool setOn) { toggleView(VIEW_WATCHLIST, setOn); }
203  void toggleSearchView(bool setOn) { toggleView(VIEW_SEARCHES, setOn); }
204  void toggleLiveTVView(bool setOn) { toggleView(VIEW_LIVETVGRP, setOn); }
205  void toggleWatchedView(bool setOn) { toggleView(VIEW_WATCHED, setOn); }
206 
207  void setGroupFilter(const QString &newRecGroup);
208  void setRecGroup(QString newRecGroup);
209  void setPlayGroup(QString newPlayGroup);
210 
211  void saveRecMetadata(const QString &newTitle, const QString &newSubtitle,
212  const QString &newDescription, const QString &newInetref,
213  uint season, uint episode);
214 
215  void SetRecGroupPassword(const QString &newPassword);
216 
217  void doJobQueueJob(int jobType, int jobFlags = 0);
218  void doPlaylistJobQueueJob(int jobType, int jobFlags = 0);
219  void stopPlaylistJobQueueJob(int jobType);
220  void doBeginFlagging();
221  void doBeginLookup();
222  void doBeginTranscoding() { doJobQueueJob(JOB_TRANSCODE,
223  JOB_USE_CUTLIST); }
224  void doBeginUserJob1() { doJobQueueJob(JOB_USERJOB1); }
225  void doBeginUserJob2() { doJobQueueJob(JOB_USERJOB2); }
226  void doBeginUserJob3() { doJobQueueJob(JOB_USERJOB3); }
227  void doBeginUserJob4() { doJobQueueJob(JOB_USERJOB4); }
228  void doPlaylistBeginTranscoding() { doPlaylistJobQueueJob(JOB_TRANSCODE,
229  JOB_USE_CUTLIST); }
230  void stopPlaylistTranscoding() { stopPlaylistJobQueueJob(JOB_TRANSCODE);}
231  void doPlaylistBeginFlagging() { doPlaylistJobQueueJob(JOB_COMMFLAG); }
232  void stopPlaylistFlagging() { stopPlaylistJobQueueJob(JOB_COMMFLAG); }
233  void doPlaylistBeginLookup() { doPlaylistJobQueueJob(JOB_METADATA); }
234  void stopPlaylistLookup() { stopPlaylistJobQueueJob(JOB_METADATA); }
235  void doPlaylistBeginUserJob1() { doPlaylistJobQueueJob(JOB_USERJOB1); }
236  void stopPlaylistUserJob1() { stopPlaylistJobQueueJob(JOB_USERJOB1); }
237  void doPlaylistBeginUserJob2() { doPlaylistJobQueueJob(JOB_USERJOB2); }
238  void stopPlaylistUserJob2() { stopPlaylistJobQueueJob(JOB_USERJOB2); }
239  void doPlaylistBeginUserJob3() { doPlaylistJobQueueJob(JOB_USERJOB3); }
240  void stopPlaylistUserJob3() { stopPlaylistJobQueueJob(JOB_USERJOB3); }
241  void doPlaylistBeginUserJob4() { doPlaylistJobQueueJob(JOB_USERJOB4); }
242  void stopPlaylistUserJob4() { stopPlaylistJobQueueJob(JOB_USERJOB4); }
243  void doClearPlaylist();
244  void PlaylistDeleteForgetHistory(void) { PlaylistDelete(true); }
245  void PlaylistDelete(bool forgetHistory = false);
246  void doPlaylistExpireSetting(bool turnOn);
247  void doPlaylistExpireSetOn() { doPlaylistExpireSetting(true); }
248  void doPlaylistExpireSetOff() { doPlaylistExpireSetting(false); }
249  void doPlaylistWatchedSetting(bool turnOn);
250  void doPlaylistWatchedSetOn() { doPlaylistWatchedSetting(true); }
251  void doPlaylistWatchedSetOff() { doPlaylistWatchedSetting(false); }
252  void doPlaylistAllowRerecord();
253  void togglePlayListTitle(void);
254  void togglePlayListItem(void);
255  void playSelectedPlaylist(bool Random);
256  void doPlayList(void);
257  void showViewChanger(void);
258  void saveViewChanges(void);
259 
260  void checkPassword(const QString &password);
261  void passwordClosed(void);
262 
263  void fanartLoad(void);
264  void bannerLoad(void);
265  void coverartLoad(void);
266 
267  private:
268  bool UpdateUILists(void);
269  void UpdateUIGroupList(const QStringList &groupPreferences);
270  void UpdateUIRecGroupList(void);
271  void SelectNextRecGroup(void);
272 
273  void UpdateProgressBar(void);
274 
275  void PlayX(const ProgramInfo &pginfo,
276  bool ignoreBookmark,
277  bool ignoreProgStart,
278  bool ignoreLastPlayPos,
279  bool underNetworkControl);
280 
281  bool Play(const ProgramInfo &rec,
282  bool inPlaylist,
283  bool ignoreBookmark,
284  bool ignoreProgStart,
285  bool ignoreLastPlayPos,
286  bool underNetworkControl);
287 
288  ProgramInfo *GetCurrentProgram(void) const override; // ScheduleCommon
289 
290  void togglePlayListItem(ProgramInfo *pginfo);
291  void randomizePlayList(void);
292 
293  void processNetworkControlCommands(void);
294  void processNetworkControlCommand(const QString &command);
295 
296  ProgramInfo *FindProgramInUILists(const ProgramInfo &pginfo);
297  ProgramInfo *FindProgramInUILists(uint recordingID,
298  const QString& recgroup = "NotLiveTV");
299 
300  void RemoveProgram(uint recordingID,
301  bool forgetHistory, bool forceMetadataDelete);
302  void ShowDeletePopup(DeletePopupType type);
303  static void ShowAvailabilityPopup(const ProgramInfo &pginfo);
304  void ShowActionPopup(const ProgramInfo &pginfo);
305 
306  QString getRecGroupPassword(const QString &recGroup);
307  void fillRecGroupPasswordCache(void);
308 
309  bool IsUsageUIVisible(void) const;
310 
311  void updateIcons(const ProgramInfo *pginfo = nullptr);
312  void UpdateUsageUI(void);
313  void updateGroupInfo(const QString &groupname, const QString &grouplabel);
314 
315  void SetItemIcons(MythUIButtonListItem *item, ProgramInfo* pginfo);
316  void UpdateUIListItem(
317  ProgramInfo *pginfo,
318  bool force_preview_reload);
319  void UpdateUIListItem(MythUIButtonListItem *item, bool is_sel,
320  bool force_preview_reload = true);
321 
322  void HandlePreviewEvent(const QStringList &list);
323  void HandleRecordingRemoveEvent(uint recordingID);
324  void HandleRecordingAddEvent(const ProgramInfo &evinfo);
325  void HandleUpdateProgramInfoEvent(const ProgramInfo &evinfo);
326  void HandleUpdateProgramInfoFileSizeEvent(uint recordingID, uint64_t filesize);
327 
328  void ScheduleUpdateUIList(void);
329  void ShowMenu(void) override; // MythScreenType
330  bool CreatePopupMenu(const QString &title);
331  void DisplayPopupMenu(void);
332  //bool CreatePopupMenu(const QString &title, const ProgramInfo &pginfo)
333  // { return CreatePopupMenu(title + CreateProgramInfoString(pginfo)); }
335 
336  static QString CreateProgramInfoString(const ProgramInfo &pginfo) ;
337 
338  QString extract_job_state(const ProgramInfo &pginfo);
339  QString extract_commflag_state(const ProgramInfo &pginfo);
340 
341 
342  QRegExp m_titleChaff;
343 
344  MythUIButtonList *m_recgroupList {nullptr};
345  MythUIButtonList *m_groupList {nullptr};
346  MythUIButtonList *m_recordingList {nullptr};
347 
348  MythUIText *m_noRecordingsText {nullptr};
349 
350  MythUIImage *m_previewImage {nullptr};
351 
353  constexpr static int kNumArtImages = 3;
354  std::array<MythUIImage*,kNumArtImages> m_artImage {};
355  std::array<QTimer*,kNumArtImages> m_artTimer {};
356 
358 
359  // Settings ///////////////////////////////////////////////////////////////
361  bool m_titleView {false};
363  bool m_useCategories {false};
365  bool m_useRecGroups {false};
367  bool m_watchListStart {false};
369  bool m_watchListAutoExpire {false};
371  int m_watchListMaxAge {60};
373  int m_watchListBlackOut {2};
377  int m_listOrder {1};
378 
379  // Recording Group settings
381  QString m_recGroup;
383  QString m_newRecGroup;
386  ViewMask m_viewMask {VIEW_TITLES};
387 
388  // Popup support //////////////////////////////////////////////////////////
389  // General popup support
390  MythDialogBox *m_menuDialog {nullptr};
391  MythMenu *m_popupMenu {nullptr};
392  MythScreenStack *m_popupStack {nullptr};
393 
394  bool m_doToggleMenu {true};
395 
396  // Recording Group popup support
397  using RecGroup = QPair<QString, QString>;
398  QMap<QString,QString> m_recGroupType;
399  QMap<QString,QString> m_recGroupPwCache;
400 
401  // State Variables ////////////////////////////////////////////////////////
402  // Main Recording List support
403  QStringList m_titleList;
405  int m_progsInDB {0};
406  bool m_isFilling {false};
407 
408  QStringList m_recGroups;
409  mutable QMutex m_recGroupsLock;
410  int m_recGroupIdx {-1};
411 
412  // Other state
414  QStringList m_delList;
416  QString m_currentGroup;
417 
418  // Play List support
419  QList<uint> m_playList;
420  bool m_opOnPlaylist {false};
421  QList<uint> m_playListPlay;
422 
424 
426  bool m_playingSomething {false};
427 
429  bool m_needUpdate {false};
430 
431  // Selection state variables
432  bool m_haveGroupInfoSet {false};
433 
434  // Network Control Variables //////////////////////////////////////////////
435  mutable QMutex m_ncLock;
436  deque<QString> m_networkControlCommands;
437 
438  // Other
439  TV *m_player {nullptr};
444  QSet<QString> m_previewTokens;
445 
446  bool m_firstGroup {true};
447  bool m_usingGroupSelector {false};
448  bool m_groupSelected {false};
449  bool m_passwordEntered {false};
450 
451  // This class caches the contents of the jobqueue table to avoid excessive
452  // DB queries each time the PBB selection changes (currently 4 queries per
453  // displayed item). The cache remains valid for 15 seconds
454  // (kInvalidateTimeMs).
456  {
457  public:
458  PbbJobQueue() { Update(); }
459  bool IsJobQueued(int jobType, uint chanid,
460  const QDateTime &recstartts);
461  bool IsJobRunning(int jobType, uint chanid,
462  const QDateTime &recstartts);
463  bool IsJobQueuedOrRunning(int jobType, uint chanid,
464  const QDateTime &recstartts);
465  private:
466  static const qint64 kInvalidateTimeMs = 15000;
467  void Update();
468  QDateTime m_lastUpdated;
469  // Maps <chanid, recstartts> to a set of JobQueueEntry values.
470  using MapType = QMultiMap<QPair<uint, QDateTime>, JobQueueEntry>;
472  } m_jobQueue;
473 };
474 
476 {
477  Q_OBJECT
478 
479  public:
480  GroupSelector(MythScreenStack *lparent, QString label,
481  QStringList list, QStringList data,
482  QString selected)
483  : MythScreenType(lparent, "groupselector"), m_label(std::move(label)),
484  m_list(std::move(list)), m_data(std::move(data)),
485  m_selected(std::move(selected)) {}
486 
487  bool Create(void) override; // MythScreenType
488 
489  signals:
490  void result(QString);
491 
492  protected slots:
493  void AcceptItem(MythUIButtonListItem *item);
494 
495  private:
496  void loadGroups(void);
497 
498  QString m_label;
499  QStringList m_list;
500  QStringList m_data;
501  QString m_selected;
502 };
503 
505 {
506  Q_OBJECT
507 
508  public:
509  ChangeView(MythScreenStack *lparent, MythScreenType *parentScreen,
510  int viewMask)
511  : MythScreenType(lparent, "changeview"),
512  m_parentScreen(parentScreen), m_viewMask(viewMask) {}
513 
514  bool Create(void) override; // MythScreenType
515 
516  signals:
517  void save();
518 
519  protected slots:
520  void SaveChanges(void);
521 
522  private:
525 };
526 
528 {
529  Q_OBJECT
530 
531  public:
532  PasswordChange(MythScreenStack *lparent, QString oldpassword)
533  : MythScreenType(lparent, "passwordchanger"),
534  m_oldPassword(std::move(oldpassword)){}
535 
536  bool Create(void) override; // MythScreenType
537 
538  signals:
539  void result(const QString &);
540 
541  protected slots:
542  void OldPasswordChanged(void);
543  void SendResult(void);
544 
545  private:
546  MythUITextEdit *m_oldPasswordEdit {nullptr};
547  MythUITextEdit *m_newPasswordEdit {nullptr};
548  MythUIButton *m_okButton {nullptr};
549 
550  QString m_oldPassword;
551 };
552 
554 {
555  Q_OBJECT
556 
557  public:
558  RecMetadataEdit(MythScreenStack *lparent, ProgramInfo *pginfo);
559 
560  bool Create(void) override; // MythScreenType
561 
562  signals:
563  void result(const QString &, const QString &, const QString &,
564  const QString &, uint, uint);
565 
566  protected slots:
567  void SaveChanges(void);
568  void ClearInetref();
569  void PerformQuery(void);
570  void OnSearchListSelection(const RefCountHandler<MetadataLookup>& lookup);
571 
572  private:
573  void customEvent(QEvent *event) override; // MythUIType
574  void QueryComplete(MetadataLookup *lookup);
575 
576  MythUITextEdit *m_titleEdit {nullptr};
577  MythUITextEdit *m_subtitleEdit {nullptr};
578  MythUITextEdit *m_descriptionEdit {nullptr};
579  MythUITextEdit *m_inetrefEdit {nullptr};
580  MythUISpinBox *m_seasonSpin {nullptr};
581  MythUISpinBox *m_episodeSpin {nullptr};
582  MythUIBusyDialog *m_busyPopup {nullptr};
583  MythUIButton *m_queryButton {nullptr};
584 
585  ProgramInfo *m_progInfo {nullptr};
586  MythScreenStack *m_popupStack {nullptr};
587  MetadataFactory *m_metadataFactory {nullptr};
588 };
589 
590 class HelpPopup : public MythScreenType
591 {
592  Q_OBJECT
593 
594  public:
595  explicit HelpPopup(MythScreenStack *lparent)
596  : MythScreenType(lparent, "helppopup") {}
597 
598  bool Create(void) override; // MythScreenType
599 
600  private:
601  void addItem(const QString &state, const QString &text);
602 
603  MythUIButtonList *m_iconList {nullptr};
604 };
605 
606 #endif
607 /* vim: set expandtab tabstop=4 shiftwidth=4: */
PlaybackBox::toggleRecGroupView
void toggleRecGroupView(bool setOn)
Definition: playbackbox.h:201
JOB_USERJOB3
@ JOB_USERJOB3
Definition: jobqueue.h:82
JOB_USERJOB4
@ JOB_USERJOB4
Definition: jobqueue.h:83
PlaybackBox::DeleteForceAllRemaining
void DeleteForceAllRemaining(void)
Definition: playbackbox.h:186
PlaybackBox::stopPlaylistFlagging
void stopPlaylistFlagging()
Definition: playbackbox.h:232
RefCountHandler
Definition: referencecounterlist.h:18
MythUIImage
Image widget, displays a single image or multiple images in sequence.
Definition: mythuiimage.h:98
slots
std::array< unsigned int, 4 > slots
Definition: element.cpp:38
PlaybackBox::PbbJobQueue::m_jobs
MapType m_jobs
Definition: playbackbox.h:471
PlaybackBox::m_currentGroup
QString m_currentGroup
Group currently selected.
Definition: playbackbox.h:416
JobQueueEntry
Definition: jobqueue.h:96
PlaybackBox::setInitialRecGroup
void setInitialRecGroup(const QString &initialGroup)
Definition: playbackbox.h:129
PlaybackBox::m_networkControlCommands
deque< QString > m_networkControlCommands
Definition: playbackbox.h:436
PlaybackBox::doPlaylistBeginUserJob2
void doPlaylistBeginUserJob2()
Definition: playbackbox.h:237
PlaybackBox::killStateType
killStateType
Definition: playbackbox.h:113
PlaybackBox::doPlaylistBeginFlagging
void doPlaylistBeginFlagging()
Definition: playbackbox.h:231
title
QString title
Definition: mythplugins/mytharchive/mytharchivehelper/main.cpp:639
ProgramInfoCache
Definition: programinfocache.h:22
PlaybackBox::PbbJobQueue
Definition: playbackbox.h:456
PlaybackBox::RecGroup
QPair< QString, QString > RecGroup
Definition: playbackbox.h:397
PlaybackBoxListItem
Definition: playbackboxlistitem.h:13
PlaybackBox::m_newRecGroup
QString m_newRecGroup
Definition: playbackbox.h:383
PlaybackBox::stopPlaylistUserJob3
void stopPlaylistUserJob3()
Definition: playbackbox.h:240
PlaybackBox::doBeginTranscoding
void doBeginTranscoding()
Definition: playbackbox.h:222
PlaybackBox::m_playerSelectedNewShow
QStringList m_playerSelectedNewShow
Definition: playbackbox.h:440
HelpPopup
Definition: playbackbox.h:591
JOB_COMMFLAG
@ JOB_COMMFLAG
Definition: jobqueue.h:75
PlaybackBoxHelper
Definition: playbackboxhelper.h:30
JOB_USE_CUTLIST
@ JOB_USE_CUTLIST
Definition: jobqueue.h:56
MythScreenStack
Definition: mythscreenstack.h:16
PlaybackBox::ViewTitleSort
ViewTitleSort
Definition: playbackbox.h:78
PlaybackBox::kNvpToStop
@ kNvpToStop
Definition: playbackbox.h:115
PlaybackBox::UpdateProgressBar
void UpdateProgressBar(void)
MythUIButtonListItem::parent
MythUIButtonList * parent() const
Definition: mythuibuttonlist.cpp:3539
PlaybackBox::toggleCategoryView
void toggleCategoryView(bool setOn)
Definition: playbackbox.h:200
MythUITextEdit
A text entry and edit widget.
Definition: mythuitextedit.h:33
HelpPopup::HelpPopup
HelpPopup(MythScreenStack *lparent)
Definition: playbackbox.h:595
MythMediaBuffer
Definition: mythmediabuffer.h:50
PlaybackBox::doPlaylistWatchedSetOn
void doPlaylistWatchedSetOn()
Definition: playbackbox.h:250
ChangeView
Definition: playbackbox.h:505
PlaybackBox::DeleteForgetHistory
void DeleteForgetHistory(void)
Definition: playbackbox.h:183
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
MythPlayer
Definition: mythplayer.h:128
playbackboxhelper.h
RecMetadataEdit::result
void result(const QString &, const QString &, const QString &, const QString &, uint, uint)
PlaybackBox::DeleteForce
void DeleteForce(void)
Definition: playbackbox.h:184
schedulecommon.h
PlaybackBox::stopPlaylistUserJob2
void stopPlaylistUserJob2()
Definition: playbackbox.h:238
PlaybackBox::randomizePlayList
void randomizePlayList(void)
PasswordChange
Definition: playbackbox.h:528
PlaybackBox::doPlaylistBeginTranscoding
void doPlaylistBeginTranscoding()
Definition: playbackbox.h:228
PlaybackBox::m_currentMap
InfoMap m_currentMap
Definition: playbackbox.h:357
PlaybackBox::m_helper
PlaybackBoxHelper m_helper
Main helper thread.
Definition: playbackbox.h:442
PlaybackBox::m_watchGroupName
QString m_watchGroupName
Definition: playbackbox.h:384
PlaybackBox::stopPlaylistTranscoding
void stopPlaylistTranscoding()
Definition: playbackbox.h:230
JOB_USERJOB2
@ JOB_USERJOB2
Definition: jobqueue.h:81
ChangeView::m_viewMask
int m_viewMask
Definition: playbackbox.h:524
MetadataLookup
Definition: metadatacommon.h:87
PlaybackBox::doBeginUserJob1
void doBeginUserJob1()
Definition: playbackbox.h:224
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
ChangeView::save
void save()
PlaybackBox::DeleteFlags
DeleteFlags
Definition: playbackbox.h:104
MythUIButtonListItem
Definition: mythuibuttonlist.h:28
PlaybackBox::m_recGroups
QStringList m_recGroups
Definition: playbackbox.h:408
PlaybackBox::doPlaylistBeginLookup
void doPlaylistBeginLookup()
Definition: playbackbox.h:233
PlaybackBox::m_watchGroupLabel
QString m_watchGroupLabel
Definition: playbackbox.h:385
PlaybackBox::m_ncLock
QMutex m_ncLock
Definition: playbackbox.h:435
ProgramMap
QMap< QString, ProgramList > ProgramMap
Definition: playbackbox.h:50
PlaybackBox::m_playListPlay
QList< uint > m_playListPlay
list of items being played.
Definition: playbackbox.h:421
PlaybackBox::doPlaylistBeginUserJob3
void doPlaylistBeginUserJob3()
Definition: playbackbox.h:239
PlaybackBox::stopPlaylistLookup
void stopPlaylistLookup()
Definition: playbackbox.h:234
PlaybackBox::toggleWatchedView
void toggleWatchedView(bool setOn)
Definition: playbackbox.h:205
PlaybackBox::ItemSelected
void ItemSelected(MythUIButtonListItem *item)
Definition: playbackbox.h:138
JOB_USERJOB1
@ JOB_USERJOB1
Definition: jobqueue.h:80
PlaybackBox::PbbJobQueue::PbbJobQueue
PbbJobQueue()
Definition: playbackbox.h:458
MythDialogBox
Basic menu dialog, message and a list of options.
Definition: mythdialogbox.h:138
PlaybackBox::ViewType
ViewType
Definition: playbackbox.h:66
GroupSelector::m_selected
QString m_selected
Definition: playbackbox.h:501
PlaybackBox::ShowRecGroupChangerUsePlaylist
void ShowRecGroupChangerUsePlaylist(void)
Definition: playbackbox.h:167
MythUIButton
A single button widget.
Definition: mythuibutton.h:22
PlaybackBox::toggleTitleView
void toggleTitleView(bool setOn)
Definition: playbackbox.h:199
ScheduleCommon
Definition: schedulecommon.h:16
kArtworkCoverTimeout
@ kArtworkCoverTimeout
Definition: playbackbox.h:56
PlaybackBox::kDeleteRecording
@ kDeleteRecording
Definition: playbackbox.h:98
PlaybackBox::DeletePopupType
DeletePopupType
Definition: playbackbox.h:97
PasswordChange::m_oldPassword
QString m_oldPassword
Definition: playbackbox.h:550
PlaybackBox::toggleSearchView
void toggleSearchView(bool setOn)
Definition: playbackbox.h:203
PlaybackBox::PbbJobQueue::m_lastUpdated
QDateTime m_lastUpdated
Definition: playbackbox.h:468
PlaybackBox::DeleteIgnoreAllRemaining
void DeleteIgnoreAllRemaining(void)
Definition: playbackbox.h:188
PlaybackBox::doBeginUserJob4
void doBeginUserJob4()
Definition: playbackbox.h:227
MythUIBusyDialog
Definition: mythprogressdialog.h:37
jobqueue.h
RecMetadataEdit
Definition: playbackbox.h:554
PlaybackBox::kForceDeleteRecording
@ kForceDeleteRecording
Definition: playbackbox.h:100
PlaybackBox::doPlaylistExpireSetOff
void doPlaylistExpireSetOff()
Definition: playbackbox.h:248
uint
unsigned int uint
Definition: compat.h:140
PasswordChange::PasswordChange
PasswordChange(MythScreenStack *lparent, QString oldpassword)
Definition: playbackbox.h:532
PlaybackBox::m_recGroupPwCache
QMap< QString, QString > m_recGroupPwCache
Definition: playbackbox.h:399
PlaybackBox::m_titleList
QStringList m_titleList
list of pages
Definition: playbackbox.h:403
PlaybackBox::kNvpToPlay
@ kNvpToPlay
Definition: playbackbox.h:114
MetadataFactory
Definition: metadatafactory.h:86
PlaybackBox::m_recGroupsLock
QMutex m_recGroupsLock
Definition: playbackbox.h:409
PlaybackBox::doBeginUserJob2
void doBeginUserJob2()
Definition: playbackbox.h:225
PlaybackBox::m_curGroupPassword
QString m_curGroupPassword
Definition: playbackbox.h:382
PlaybackBox::toggleWatchListView
void toggleWatchListView(bool setOn)
Definition: playbackbox.h:202
CreateProgramInfoString
static QString CreateProgramInfoString(const ProgramInfo &pginfo)
Definition: recordingutils.cpp:44
MythMenu
Definition: mythdialogbox.h:93
PlaybackBox
Definition: playbackbox.h:60
kNoFlags
@ kNoFlags
Definition: mythplayer.h:84
programinfocache.h
PlaybackBox::doPlaylistBeginUserJob1
void doPlaylistBeginUserJob1()
Definition: playbackbox.h:235
GroupSelector::result
void result(QString)
ProgramInfo
Holds information on recordings and videos.
Definition: programinfo.h:68
MythUIText
All purpose text widget, displays a text string.
Definition: mythuitext.h:29
PlaybackBox::stopPlaylistUserJob4
void stopPlaylistUserJob4()
Definition: playbackbox.h:242
PlaybackBox::m_previewTokens
QSet< QString > m_previewTokens
Outstanding preview image requests.
Definition: playbackbox.h:444
PlaybackBox::m_playList
QList< uint > m_playList
list of selected items "play list"
Definition: playbackbox.h:419
PlaybackBox::PlaylistDeleteForgetHistory
void PlaylistDeleteForgetHistory(void)
Definition: playbackbox.h:244
PlaybackBox::m_allOrder
int m_allOrder
allOrder controls the ordering of the "All Programs" list
Definition: playbackbox.h:375
PlaybackBox::doBeginUserJob3
void doBeginUserJob3()
Definition: playbackbox.h:226
JOB_METADATA
@ JOB_METADATA
Definition: jobqueue.h:76
PlaybackBox::doPlaylistWatchedSetOff
void doPlaylistWatchedSetOff()
Definition: playbackbox.h:251
GroupSelector::m_label
QString m_label
Definition: playbackbox.h:498
PlaybackBox::m_artHostOverride
QString m_artHostOverride
Definition: playbackbox.h:352
PlaybackBox::kStopRecording
@ kStopRecording
Definition: playbackbox.h:99
PlaybackBox::m_recGroup
QString m_recGroup
Definition: playbackbox.h:381
PlaybackBox::m_delList
QStringList m_delList
Recording[s] currently selected for deletion.
Definition: playbackbox.h:414
PlaybackBox::m_progLists
ProgramMap m_progLists
lists of programs by page
Definition: playbackbox.h:404
PasswordChange::result
void result(const QString &)
metadatafactory.h
Str2StrMap
QMap< QString, QString > Str2StrMap
Definition: playbackbox.h:51
ChangeView::m_parentScreen
MythScreenType * m_parentScreen
Definition: playbackbox.h:523
PlaybackBox::ViewTypes
@ ViewTypes
Definition: playbackbox.h:74
MythUISpinBox
A widget for offering a range of numerical values where only the the bounding values and interval are...
Definition: mythuispinbox.h:17
PlaybackBox::doPlaylistBeginUserJob4
void doPlaylistBeginUserJob4()
Definition: playbackbox.h:241
GroupSelector::m_list
QStringList m_list
Definition: playbackbox.h:499
ChangeView::ChangeView
ChangeView(MythScreenStack *lparent, MythScreenType *parentScreen, int viewMask)
Definition: playbackbox.h:509
PlaybackBox::TitleSortMethods
@ TitleSortMethods
Definition: playbackbox.h:81
PlaybackBox::stopPlaylistUserJob1
void stopPlaylistUserJob1()
Definition: playbackbox.h:236
PlaybackBox::m_programInfoCache
ProgramInfoCache m_programInfoCache
Definition: playbackbox.h:423
PlaybackBox::m_groupDisplayName
QString m_groupDisplayName
Definition: playbackbox.h:380
GroupSelector::loadGroups
void loadGroups(void)
PlaybackBox::CreatePopupMenuPlaylist
bool CreatePopupMenuPlaylist(void)
PlaybackBox::CreatePopupMenu
bool CreatePopupMenu(const QString &title)
kArtworkFanTimeout
@ kArtworkFanTimeout
Definition: playbackbox.h:54
PlaybackBox::m_recGroupType
QMap< QString, QString > m_recGroupType
Definition: playbackbox.h:398
GroupSelector::GroupSelector
GroupSelector(MythScreenStack *lparent, QString label, QStringList list, QStringList data, QString selected)
Definition: playbackbox.h:480
PlaybackBox::toggleLiveTVView
void toggleLiveTVView(bool setOn)
Definition: playbackbox.h:204
MythUIButtonList
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
Definition: mythuibuttonlist.h:144
PlaybackBox::PbbJobQueue::MapType
QMultiMap< QPair< uint, QDateTime >, JobQueueEntry > MapType
Definition: playbackbox.h:470
PlaybackBox::m_titleChaff
QRegExp m_titleChaff
stuff to remove for search rules
Definition: playbackbox.h:342
PlaybackBox::DeleteIgnore
void DeleteIgnore(void)
Definition: playbackbox.h:185
GroupSelector
Definition: playbackbox.h:476
JOB_TRANSCODE
@ JOB_TRANSCODE
Definition: jobqueue.h:74
PlaybackBox::doPlaylistExpireSetOn
void doPlaylistExpireSetOn()
Definition: playbackbox.h:247
GroupSelector::m_data
QStringList m_data
Definition: playbackbox.h:500
mythscreentype.h
PlaybackBox::ShowPlayGroupChangerUsePlaylist
void ShowPlayGroupChangerUsePlaylist(void)
Definition: playbackbox.h:168
tv_play.h
PlaybackBox::ViewMask
ViewMask
Definition: playbackbox.h:84
TV
Control TV playback.
Definition: tv_play.h:281
kArtworkBannerTimeout
@ kArtworkBannerTimeout
Definition: playbackbox.h:55