kodi
Rendering.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 "addons/kodi-dev-kit/include/kodi/c-api/gui/controls/rendering.h"
12 #include "guilib/IRenderingCallback.h"
13 
15 
16 extern "C"
17 {
18 
19  struct AddonGlobalInterface;
20 
21  namespace ADDON
22  {
23 
24  class CAddonDll;
25 
35  {
36  static void Init(AddonGlobalInterface* addonInterface);
37  static void DeInit(AddonGlobalInterface* addonInterface);
38 
50  static void set_callbacks(
51  KODI_HANDLE kodiBase,
52  KODI_GUI_CONTROL_HANDLE handle,
53  KODI_GUI_CLIENT_HANDLE clienthandle,
54  bool (*createCB)(KODI_GUI_CLIENT_HANDLE, int, int, int, int, ADDON_HARDWARE_CONTEXT),
55  void (*renderCB)(KODI_GUI_CLIENT_HANDLE),
56  void (*stopCB)(KODI_GUI_CLIENT_HANDLE),
57  bool (*dirtyCB)(KODI_GUI_CLIENT_HANDLE));
58  static void destroy(KODI_HANDLE kodiBase, KODI_GUI_CONTROL_HANDLE handle);
60  };
61 
63  {
65 
66  public:
68  ~CGUIAddonRenderingControl() override = default;
69 
70  bool Create(int x, int y, int w, int h, void* device) override;
71  void Render() override;
72  void Stop() override;
73  bool IsDirty() override;
74  virtual void Delete();
75 
76  protected:
77  bool (*CBCreate)(KODI_GUI_CLIENT_HANDLE cbhdl, int x, int y, int w, int h, void* device) =
78  nullptr;
79  void (*CBRender)(KODI_GUI_CLIENT_HANDLE cbhdl) = nullptr;
80  void (*CBStop)(KODI_GUI_CLIENT_HANDLE cbhdl) = nullptr;
81  bool (*CBDirty)(KODI_GUI_CLIENT_HANDLE cbhdl) = nullptr;
82 
83  KODI_GUI_CLIENT_HANDLE m_clientHandle = nullptr;
84  CAddonDll* m_addon = nullptr;
85  CGUIRenderingControl* m_control;
86  int m_refCount = 1;
87  };
88 
89  } /* namespace ADDON */
90 } /* extern "C" */
Definition: AddonDll.h:51
Definition: Rendering.h:62
static void set_callbacks(KODI_HANDLE kodiBase, KODI_GUI_CONTROL_HANDLE handle, KODI_GUI_CLIENT_HANDLE clienthandle, bool(*createCB)(KODI_GUI_CLIENT_HANDLE, int, int, int, int, ADDON_HARDWARE_CONTEXT), void(*renderCB)(KODI_GUI_CLIENT_HANDLE), void(*stopCB)(KODI_GUI_CLIENT_HANDLE), bool(*dirtyCB)(KODI_GUI_CLIENT_HANDLE))
callback functions from add-on to kodi
Definition: Rendering.cpp:34
Definition: GUIRenderingControl.h:15
Main structure passed from kodi to addon with basic information needed to create add-on.
Definition: addon_base.h:378
Definition: IRenderingCallback.h:11
Global gui Add-on to Kodi callback functions.
Definition: Rendering.h:34
Definition: Addon.cpp:39