xref: /MusicPlayer2/MusicPlayer2/Playlist.h (revision 997e6eda89e7a6d79aa2e040fe2132c4745dfcb1)
192deac10Szhongyang #pragma once
292deac10Szhongyang #include "SongInfo.h"
33cd2a7a0SZhong Yang class CPlaylistFile
492deac10Szhongyang {
592deac10Szhongyang public:
6ef4ab09dSZhong Yang 	enum Type			//�����б��ʽ
7ef4ab09dSZhong Yang 	{
8ef4ab09dSZhong Yang 		PL_PLAYLIST,	//MusicPlayer2�����б�
9ef4ab09dSZhong Yang 		PL_M3U,			//m3u�����б�
10ef4ab09dSZhong Yang 		PL_M3U8			//m3u8�����б�
11ef4ab09dSZhong Yang 	};
12ef4ab09dSZhong Yang 
133cd2a7a0SZhong Yang     CPlaylistFile();
143cd2a7a0SZhong Yang     ~CPlaylistFile();
1592deac10Szhongyang     void LoadFromFile(const wstring& file_path);
16ef4ab09dSZhong Yang     void SaveToFile(const wstring& file_path, Type type = PL_PLAYLIST) const;
175fca386fSzhongyang     vector<SongInfo> GetPlaylist() const;
1892deac10Szhongyang     void AddFiles(const vector<wstring>& files);
195fca386fSzhongyang     void AddFiles(const vector<SongInfo>& files);
2092deac10Szhongyang     void FromSongList(const vector<SongInfo>& song_list);
2176b3aa86SZhong Yang     void ToSongList(vector<SongInfo>& song_list);
22bb5d4504SZhong Yang     bool IsFileInPlaylist(const SongInfo& file);
23c83d5239SZhong Yang     void RemoveFile(const wstring& file);
2492deac10Szhongyang 
25*997e6edaSZhong Yang 	static bool IsPlaylistFile(const wstring& file_path);
26*997e6edaSZhong Yang 
27*997e6edaSZhong Yang public:
28*997e6edaSZhong Yang     const static vector<wstring> m_surpported_playlist;		//֧�ֵIJ����б��ļ�����չ���б�
29*997e6edaSZhong Yang 
3092deac10Szhongyang private:
313cd2a7a0SZhong Yang 	void DisposePlaylistFileLine(const string& str_current_line, bool utf8);
323cd2a7a0SZhong Yang 
333cd2a7a0SZhong Yang private:
34480ef52eSZhong Yang     vector<SongInfo> m_playlist;
3592deac10Szhongyang };
3692deac10Szhongyang 
37