xref: /MusicPlayer2/MusicPlayer2/Playlist.h (revision 3cd2a7a06bd86e1b4312bf6882823d485f36e9a5)
192deac10Szhongyang #pragma once
292deac10Szhongyang #include "SongInfo.h"
3*3cd2a7a0SZhong 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 
13*3cd2a7a0SZhong Yang     CPlaylistFile();
14*3cd2a7a0SZhong 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 
2592deac10Szhongyang private:
26*3cd2a7a0SZhong Yang 	void DisposePlaylistFileLine(const string& str_current_line, bool utf8);
27*3cd2a7a0SZhong Yang 
28*3cd2a7a0SZhong Yang private:
29480ef52eSZhong Yang     vector<SongInfo> m_playlist;
3092deac10Szhongyang };
3192deac10Szhongyang 
32