xbmc
DialogGameVolume.h
1 /*
2  * Copyright (C) 2017-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 "dialogs/GUIDialogSlider.h"
12 #include "dialogs/IGUIVolumeBarCallback.h"
13 #include "guilib/ISliderCallback.h"
14 #include "interfaces/IAnnouncer.h"
15 
16 #include <set>
17 
18 namespace KODI
19 {
20 
21 namespace GAME
22 {
23 class CDialogGameVolume : public CGUIDialogSlider, // GUI interface
24  public ISliderCallback, // GUI callback
25  public IGUIVolumeBarCallback, // Volume bar dialog callback
26  public ANNOUNCEMENT::IAnnouncer // Application callback
27 {
28 public:
30  ~CDialogGameVolume() override = default;
31 
32  // implementation of CGUIControl via CGUIDialogSlider
33  bool OnMessage(CGUIMessage& message) override;
34 
35  // implementation of CGUIWindow via CGUIDialogSlider
36  void OnDeinitWindow(int nextWindowID) override;
37 
38  // implementation of ISliderCallback
39  void OnSliderChange(void* data, CGUISliderControl* slider) override;
40 
41  // implementation of IGUIVolumeBarCallback
42  bool IsShown() const override;
43 
44  // implementation of IAnnouncer
45  void Announce(ANNOUNCEMENT::AnnouncementFlag flag,
46  const std::string& sender,
47  const std::string& message,
48  const CVariant& data) override;
49 
50 protected:
51  // implementation of CGUIWindow via CGUIDialogSlider
52  void OnInitWindow() override;
53 
54 private:
58  void OnStateChanged();
59 
65  float GetVolumePercent() const;
66 
70  static std::string GetLabel();
71 
72  // Volume parameters
73  const float VOLUME_MIN = 0.0f;
74  const float VOLUME_DELTA = 10.0f;
75  const float VOLUME_MAX = 100.0f;
76  float m_volumePercent = 100.0f;
77  float m_oldVolumePercent = 100.0f;
78 };
79 } // namespace GAME
80 } // namespace KODI
Interface to expose properties to the volume bar dialog.
Definition: IGUIVolumeBarCallback.h:14
Interface class for callback from the slider dialog.
Definition: ISliderCallback.h:24
void OnInitWindow() override
Called on window open.
Definition: DialogGameVolume.cpp:61
void OnSliderChange(void *data, CGUISliderControl *slider) override
Callback function called whenever the user moves the slider.
Definition: DialogGameVolume.cpp:93
Definition: GUIDialogSlider.h:14
Definition: IAnnouncer.h:70
Definition: Variant.h:29
Controller configuration window.
Definition: AudioDecoder.h:18
bool IsShown() const override
Return true if the callback is active in the GUI.
Definition: DialogGameVolume.cpp:106
Definition: GUIMessage.h:365
Definition: GUISliderControl.h:37
Definition: DialogGameVolume.h:23