xbmc
GUIWindowVideoBase.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 "playlists/PlayListTypes.h"
12 #include "video/VideoDatabase.h"
13 #include "video/VideoThumbLoader.h"
14 #include "windows/GUIMediaWindow.h"
15 
16 enum VideoSelectAction
17 {
18  SELECT_ACTION_CHOOSE = 0,
19  SELECT_ACTION_PLAY_OR_RESUME,
20  SELECT_ACTION_RESUME,
21  SELECT_ACTION_INFO,
22  SELECT_ACTION_MORE,
23  SELECT_ACTION_PLAY,
24  SELECT_ACTION_PLAYPART,
25  SELECT_ACTION_QUEUE
26 };
27 
29 {
30 public:
31  CGUIWindowVideoBase(int id, const std::string &xmlFile);
32  ~CGUIWindowVideoBase(void) override;
33  bool OnMessage(CGUIMessage& message) override;
34  bool OnAction(const CAction &action) override;
35 
36  void PlayMovie(const CFileItem* item, const std::string& player = "");
37 
38  virtual void OnItemInfo(const CFileItem& fileItem, ADDON::ScraperPtr& scraper);
39 
40 
49  static bool ShowResumeMenu(CFileItem &item);
50 
59  static void AppendAndClearSearchItems(CFileItemList &searchItems, const std::string &prependLabel, CFileItemList &results);
60 
66  static void OnAssignContent(const std::string &path);
67 
72  static std::string GetResumeString(const CFileItem &item);
73 
74 protected:
75  void OnScan(const std::string& strPath, bool scanAll = false);
76  bool Update(const std::string &strDirectory, bool updateFilterPath = true) override;
77  bool GetDirectory(const std::string &strDirectory, CFileItemList &items) override;
78  void OnItemLoaded(CFileItem* pItem) override {};
79  void GetGroupedItems(CFileItemList &items) override;
80 
81  bool CheckFilterAdvanced(CFileItemList &items) const override;
82  bool CanContainFilter(const std::string &strDirectory) const override;
83 
84  void GetContextButtons(int itemNumber, CContextButtons &buttons) override;
85  bool OnContextButton(int itemNumber, CONTEXT_BUTTON button) override;
86  virtual void OnQueueItem(int iItem, bool first = false);
87  virtual void OnDeleteItem(const CFileItemPtr& pItem);
88  void OnDeleteItem(int iItem) override;
89  virtual void DoSearch(const std::string& strSearch, CFileItemList& items) {}
90  std::string GetStartFolder(const std::string &dir) override;
91 
92  bool OnClick(int iItem, const std::string &player = "") override;
93  bool OnSelect(int iItem) override;
98  bool OnItemInfo(int item);
104  bool OnFileAction(int item, int action, const std::string& player);
105 
106  void OnRestartItem(int iItem, const std::string &player = "");
107  bool OnResumeItem(int iItem, const std::string &player = "");
108  void PlayItem(int iItem, const std::string &player = "");
109  bool OnPlayMedia(int iItem, const std::string &player = "") override;
110  bool OnPlayAndQueueMedia(const CFileItemPtr& item, const std::string& player = "") override;
111  using CGUIMediaWindow::LoadPlayList;
112  void LoadPlayList(const std::string& strPlayList, PLAYLIST::Id playlistId = PLAYLIST::TYPE_VIDEO);
113 
114  bool ShowIMDB(CFileItemPtr item, const ADDON::ScraperPtr& content, bool fromDB);
115 
116  void OnSearch();
117  void OnSearchItemFound(const CFileItem* pSelItem);
118  int GetScraperForItem(CFileItem *item, ADDON::ScraperPtr &info, VIDEO::SScanSettings& settings);
119 
120  static bool OnUnAssignContent(const std::string &path, int header, int text);
121 
122  static bool StackingAvailable(const CFileItemList &items);
123 
124  bool OnPlayStackPart(int item);
125 
126  CGUIDialogProgress* m_dlgProgress;
127  CVideoDatabase m_database;
128 
129  CVideoThumbLoader m_thumbLoader;
130  bool m_stackingAvailable;
131 };
Definition: VideoInfoScanner.h:28
static bool ShowResumeMenu(CFileItem &item)
Show the resume menu for this item (if it has a resume bookmark) If a resume bookmark is found...
Definition: GUIWindowVideoBase.cpp:666
Definition: VideoThumbLoader.h:59
void OnSearch()
Search the current directory for a string got from the virtual keyboard.
Definition: GUIWindowVideoBase.cpp:1276
bool OnPlayMedia(int iItem, const std::string &player="") override
On media play.
Definition: GUIWindowVideoBase.cpp:979
bool OnFileAction(int item, int action, const std::string &player)
perform a given action on a file
Definition: GUIWindowVideoBase.cpp:488
Represents a list of files.
Definition: FileItem.h:713
static void OnAssignContent(const std::string &path)
Prompt the user for assigning content to a path. Based on changes, we then call OnUnassignContent, update or refresh scraper information in the database and optionally start a scan.
Definition: GUIWindowVideoBase.cpp:1460
Definition: BackgroundInfoLoader.h:22
Definition: scraper.py:1
void OnSearchItemFound(const CFileItem *pSelItem)
React on the selected search item.
Definition: GUIWindowVideoBase.cpp:1326
Definition: VideoDatabase.h:393
bool GetDirectory(const std::string &strDirectory, CFileItemList &items) override
Overwrite to fill fileitems from a source.
Definition: GUIWindowVideoBase.cpp:1167
class encapsulating information regarding a particular user action to be sent to windows and controls...
Definition: Action.h:22
bool CheckFilterAdvanced(CFileItemList &items) const override
Check if the given list can be advance filtered or not.
Definition: GUIWindowVideoBase.cpp:1257
bool Update(const std::string &strDirectory, bool updateFilterPath=true) override
Retrieves the items from the given path and updates the list.
Definition: GUIWindowVideoBase.cpp:1152
static std::string GetResumeString(const CFileItem &item)
checks the database for a resume position and puts together a string
Definition: GUIWindowVideoBase.cpp:638
bool OnClick(int iItem, const std::string &player="") override
On click.
Definition: GUIWindowVideoBase.cpp:465
std::string GetStartFolder(const std::string &dir) override
Translate the folder to start in from the given quick path.
Definition: GUIWindowVideoBase.cpp:1409
Definition: settings.py:1
Definition: GUIWindowVideoBase.h:28
Definition: GUIMessage.h:365
bool CanContainFilter(const std::string &strDirectory) const override
Check if the given path can contain a "filter" parameter.
Definition: GUIWindowVideoBase.cpp:1270
static void AppendAndClearSearchItems(CFileItemList &searchItems, const std::string &prependLabel, CFileItemList &results)
Append a set of search items to a results list using a specific prepend label Sorts the search items ...
Definition: GUIWindowVideoBase.cpp:1419
Definition: GUIDialogProgress.h:16
Definition: GUIMediaWindow.h:28
bool OnPlayAndQueueMedia(const CFileItemPtr &item, const std::string &player="") override
On play and media queue.
Definition: GUIWindowVideoBase.cpp:1015
Definition: GUIDialogContextMenu.h:95
Represents a file on a share.
Definition: FileItem.h:102