xbmc
AndroidUtils.h
1 /*
2  * Copyright (C) 2011-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 "settings/lib/ISettingCallback.h"
12 #include "utils/HDRCapabilities.h"
13 #include "windowing/Resolution.h"
14 
15 #include <string>
16 #include <vector>
17 
18 #include <androidjni/Display.h>
19 
21 {
22 public:
23  CAndroidUtils();
24  ~CAndroidUtils() override = default;
25  bool GetNativeResolution(RESOLUTION_INFO* res) const;
26  bool SetNativeResolution(const RESOLUTION_INFO& res);
27  bool ProbeResolutions(std::vector<RESOLUTION_INFO>& resolutions);
28  bool UpdateDisplayModes();
29  bool IsHDRDisplay();
30 
31  // Implementation of ISettingCallback
32  static const std::string SETTING_LIMITGUI;
33  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
34 
35  static bool SupportsMediaCodecMimeType(const std::string& mimeType);
36 
37  // Android specific HDR type mapping
38  // https://developer.android.com/reference/android/view/Display.HdrCapabilities#constants_1
39  enum HDRTypes
40  {
41  DOLBY_VISION = 1,
42  HDR10 = 2,
43  HLG = 3,
44  HDR10_PLUS = 4
45  };
46 
47  static std::vector<int> GetDisplaySupportedHdrTypes();
48  static CHDRCapabilities GetDisplayHDRCapabilities();
49 
50 protected:
51  mutable int m_width;
52  mutable int m_height;
53 
54 private:
55  static void LogDisplaySupportedHdrTypes();
56 };
Definition: ISettingCallback.h:16
Definition: AndroidUtils.h:20
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: AndroidUtils.cpp:360
Provide info of a resolution.
Definition: Resolution.h:66
Definition: HDRCapabilities.h:11