xref: /MusicPlayer2/MusicPlayer2/UiMediaLibItemMgr.h (revision ee577835ac757df600bd79e332714ec1ba4bb754)
1*ee577835SZhong Yang #pragma once
2*ee577835SZhong Yang #include <map>
3*ee577835SZhong Yang #include "MediaLibHelper.h"
4*ee577835SZhong Yang 
5*ee577835SZhong Yang class CUiMediaLibItemMgr
6*ee577835SZhong Yang {
7*ee577835SZhong Yang public:
8*ee577835SZhong Yang     ~CUiMediaLibItemMgr();
9*ee577835SZhong Yang     static CUiMediaLibItemMgr& Instance();
10*ee577835SZhong Yang 
11*ee577835SZhong Yang     void Init();
12*ee577835SZhong Yang 
13*ee577835SZhong Yang     int GetItemCount(CMediaClassifier::ClassificationType type) const;
14*ee577835SZhong Yang     std::wstring GetItemDisplayName(CMediaClassifier::ClassificationType type, int index) const;
15*ee577835SZhong Yang     const std::wstring& GetItemName(CMediaClassifier::ClassificationType type, int index) const;
16*ee577835SZhong Yang     void SetCurrentName(CMediaClassifier::ClassificationType type, const std::wstring& name);
17*ee577835SZhong Yang     int GetCurrentIndex(CMediaClassifier::ClassificationType type);
18*ee577835SZhong Yang 
19*ee577835SZhong Yang private:
20*ee577835SZhong Yang     CUiMediaLibItemMgr();
21*ee577835SZhong Yang     void GetClassifiedMeidaLibItemList(CMediaClassifier::ClassificationType type);
22*ee577835SZhong Yang 
23*ee577835SZhong Yang     static CUiMediaLibItemMgr m_instance;
24*ee577835SZhong Yang     std::map<CMediaClassifier::ClassificationType, std::vector<std::wstring>> m_item_map;   //保存媒体库中所有分类的名称列表
25*ee577835SZhong Yang     bool m_loading{};
26*ee577835SZhong Yang     std::map<CMediaClassifier::ClassificationType, int> m_current_index_map;    //保存媒体库模式下每种模式正在播放的曲目
27*ee577835SZhong Yang     std::map<CMediaClassifier::ClassificationType, std::wstring> m_current_name_map;    //保存媒体库模式下每种模式正在播放的曲目
28*ee577835SZhong Yang };
29*ee577835SZhong Yang 
30