xbmc
GUIDialogVideoBookmarks.h
1 /*
2  * Copyright (C) 2005-2018 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 "guilib/GUIDialog.h"
12 #include "utils/JobManager.h"
13 #include "video/VideoDatabase.h"
14 #include "view/GUIViewControl.h"
15 
16 class CFileItemList;
17 
19 {
20  typedef std::map<CJob*, unsigned int> MAPJOBSCHAPS;
21 
22 public:
24  ~CGUIDialogVideoBookmarks(void) override;
25  bool OnMessage(CGUIMessage& message) override;
26  void OnWindowLoaded() override;
27  void OnWindowUnload() override;
28  bool OnAction(const CAction &action) override;
29 
37  static bool OnAddBookmark();
38 
48  static bool OnAddEpisodeBookmark();
49 
50 
51  void Update();
52 protected:
53  void GotoBookmark(int iItem);
54  void ClearBookmarks();
55  static bool AddEpisodeBookmark();
56  static bool AddBookmark(CVideoInfoTag *tag=NULL);
57  void Delete(int item);
58  void Clear();
59  void OnRefreshList();
60  void OnPopupMenu(int item);
61  CGUIControl *GetFirstFocusableControl(int id) override;
62 
63  void OnJobComplete(unsigned int jobID, bool success, CJob* job) override;
64 
65  CFileItemList* m_vecItems;
66  CGUIViewControl m_viewControl;
67  VECBOOKMARKS m_bookmarks;
68 
69 private:
70  void UpdateItem(unsigned int chapterIdx);
71 
72  int m_jobsStarted;
73  std::string m_filePath;
74  CCriticalSection m_refreshSection;
75  MAPJOBSCHAPS m_mapJobsChapter;
76 };
Definition: GUIViewControl.h:19
Base class for jobs that are executed asynchronously.
Definition: Job.h:109
Represents a list of files.
Definition: FileItem.h:713
Base class for controls.
Definition: GUIControl.h:75
class encapsulating information regarding a particular user action to be sent to windows and controls...
Definition: Action.h:22
Definition: GUIDialog.h:35
static bool OnAddBookmark()
Creates a bookmark of the currently playing video file.
Definition: GUIDialogVideoBookmarks.cpp:533
static bool OnAddEpisodeBookmark()
Creates an episode bookmark of the currently playing file.
Definition: GUIDialogVideoBookmarks.cpp:549
void OnJobComplete(unsigned int jobID, bool success, CJob *job) override
The callback used when a job completes.
Definition: GUIDialogVideoBookmarks.cpp:575
Definition: GUIMessage.h:365
Definition: GUIDialogVideoBookmarks.h:18
Definition: VideoInfoTag.h:51
Job Queue class to handle a queue of unique jobs to be processed sequentially.
Definition: JobManager.h:63