2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "GUIDialogVisualisationPresetList.h"
12 #include "GUIUserMessages.h"
13 #include "ServiceBroker.h"
14 #include "guilib/GUIComponent.h"
15 #include "guilib/GUIVisualisationControl.h"
16 #include "guilib/GUIWindowManager.h"
17 #include "guilib/LocalizeStrings.h"
18 #include "utils/StringUtils.h"
19 #include "utils/Variant.h"
21 CGUIDialogVisualisationPresetList::CGUIDialogVisualisationPresetList()
22 : CGUIDialogSelect(WINDOW_DIALOG_VIS_PRESET_LIST
)
24 m_loadType
= KEEP_IN_MEMORY
;
27 bool CGUIDialogVisualisationPresetList::OnMessage(CGUIMessage
&message
)
29 switch (message
.GetMessage())
31 case GUI_MSG_VISUALISATION_UNLOADING
:
35 return CGUIDialogSelect::OnMessage(message
);
38 void CGUIDialogVisualisationPresetList::OnSelect(int idx
)
41 m_viz
->SetPreset(idx
);
44 void CGUIDialogVisualisationPresetList::ClearVisualisation()
50 void CGUIDialogVisualisationPresetList::SetVisualisation(CGUIVisualisationControl
* vis
)
55 { // No viz, but show something if this dialog activated
56 SetHeading(CVariant
{ 10122 });
57 CFileItem
item(g_localizeStrings
.Get(13389));
63 SetMultiSelection(false);
64 SetHeading(CVariant
{StringUtils::Format(g_localizeStrings
.Get(13407), m_viz
->Name())});
65 std::vector
<std::string
> presets
;
66 if (m_viz
->GetPresetList(presets
))
68 for (const auto& preset
: presets
)
70 CFileItem
item(preset
);
71 item
.RemoveExtension();
74 SetSelected(m_viz
->GetActivePreset());
77 { // Viz does not have any presets
78 // "There are no presets available for this visualisation"
79 CFileItem
item(g_localizeStrings
.Get(13389));
85 void CGUIDialogVisualisationPresetList::OnInitWindow()
87 CGUIMessage
msg(GUI_MSG_GET_VISUALISATION
, 0, 0);
88 CServiceBroker::GetGUI()->GetWindowManager().SendMessage(msg
);
89 SetVisualisation(static_cast<CGUIVisualisationControl
*>(msg
.GetPointer()));
90 CGUIDialogSelect::OnInitWindow();
93 void CGUIDialogVisualisationPresetList::OnDeinitWindow(int nextWindowID
)
96 CGUIDialogSelect::OnDeinitWindow(nextWindowID
);