[Windows] Fix driver version detection of AMD RDNA+ GPU on Windows 10
[xbmc.git] / xbmc / music / dialogs / GUIDialogVisualisationPresetList.cpp
blob8d070a1b361661289504b38696fec41d4b9af9fb
1 /*
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.
7 */
9 #include "GUIDialogVisualisationPresetList.h"
11 #include "FileItem.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:
32 ClearVisualisation();
33 break;
35 return CGUIDialogSelect::OnMessage(message);
38 void CGUIDialogVisualisationPresetList::OnSelect(int idx)
40 if (m_viz)
41 m_viz->SetPreset(idx);
44 void CGUIDialogVisualisationPresetList::ClearVisualisation()
46 m_viz = nullptr;
47 Reset();
50 void CGUIDialogVisualisationPresetList::SetVisualisation(CGUIVisualisationControl* vis)
52 m_viz = vis;
53 Reset();
54 if (!m_viz)
55 { // No viz, but show something if this dialog activated
56 SetHeading(CVariant{ 10122 });
57 CFileItem item(g_localizeStrings.Get(13389));
58 Add(item);
60 else
62 SetUseDetails(false);
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();
72 Add(item);
74 SetSelected(m_viz->GetActivePreset());
76 else
77 { // Viz does not have any presets
78 // "There are no presets available for this visualisation"
79 CFileItem item(g_localizeStrings.Get(13389));
80 Add(item);
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)
95 ClearVisualisation();
96 CGUIDialogSelect::OnDeinitWindow(nextWindowID);