xref: /MusicPlayer2/MusicPlayer2/Playlist.h (revision ada8a249c90bf78a3286781e8c85f13f27bd33f7)
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 
25997e6edaSZhong Yang 	static bool IsPlaylistFile(const wstring& file_path);
26*ada8a249SZhong Yang     static bool IsPlaylistExt(wstring ext);
27997e6edaSZhong Yang 
28997e6edaSZhong Yang public:
29997e6edaSZhong Yang     const static vector<wstring> m_surpported_playlist;		//֧�ֵIJ����б��ļ�����չ���б�
30997e6edaSZhong Yang 
3192deac10Szhongyang private:
323cd2a7a0SZhong Yang 	void DisposePlaylistFileLine(const string& str_current_line, bool utf8);
333cd2a7a0SZhong Yang 
343cd2a7a0SZhong Yang private:
35480ef52eSZhong Yang     vector<SongInfo> m_playlist;
3692deac10Szhongyang };
3792deac10Szhongyang 
38